       (is (= 1 @counter)))))
 
 (defmutation 'call/op
-  {}
+  {::pc/output [:user/id]}
   (fn [env input]
     {:user/id 1}))
 

(def parser
  (p/parser {:mutate pc/mutate
             ::p/plugins
             [(p/env-wrap-plugin #(assoc % ::pc/indexes @base-indexes))
              (p/env-plugin {::p/reader             [{:cache (comp deref ::p/request-cache)}
                                                     p/map-reader
                                                     {::env #(p/join % %)}
                                                     pc/all-readers
                                                     (p/placeholder-reader ">")]
                             ::pc/resolver-dispatch resolver-fn
                             ::pc/mutate-dispatch   mutate-fn})
              p/request-cache-plugin]}))

(deftest test-reader
  (testing "reading root entity"

                                        {:async-thing-value "b"}
                                        {:async-thing-value "c"}]}))
         (is (= 1 @counter))))))

#?(:clj
   (deftest test-mutate-async
     (testing "call mutation and parse response"
       (is (= (<!! (async-parser {} [{'(call/op {}) [:user/id :user/name]}]))
              {'call/op {:user/id 1, :user/name "Mel"}})))))

(def index
  #::pc{:index-io {#{:customer/id}                                         #:customer{:external-ids  {}
