                                 (.state custard)
                                 c/work-items)
                        [])]
-    {:value (mapv #(select-keys % query) work-items)}))
+    {:value (mapv #(select-keys % (extract-keys query))
+                  work-items)}))
 
 (defmethod readf :tags
   [{:keys [custard query]} _ {:keys [state]}]

                                (.state custard)
                                c/components)
                         [])]
    {:value (mapv #(select-keys % query) components)}))

(defmethod readf :work-items
  [{:keys [custard query]} _ {:keys [state]}]

(defmethod readf :states
  [{:keys [custard query]} _ _]
  {:value (into []
                (map #(select-keys % (extract-keys query)))
                (.states custard))})

(defmethod readf :state
  [{:keys [custard query]} _ {:keys [state]}]
  (let [state (.state custard (second state))]
    {:value (when state (select-keys state (extract-keys query)))}))

(defmethod readf :project
  [{:keys [custard query]} _ {:keys [state]}]
  (let [project (some->> state
                         second
                         (.state custard)
                         c/project)]
    {:value (when project
              (select-keys project (extract-keys query)))}))

(defmethod readf :requirements
  [{:keys [custard query]} _ {:keys [state]}]
