   (s/cat :name ::command-name
          :forms
          (s/spec (s/cat :description (s/? ::command-description)
+                        :spec (s/? ::command-spec-form)
                         :query (s/? ::command-query-form)
-                        :spec (s/? ::command-spec-form)
+                        :auth-query (s/? ::command-auth-query-form)
+                        :auth (s/? ::command-auth-form)
                         :forms (s/* ::command-form)
                         :emit ::command-emit-form))
          :env (s/? any?)))

  (s/spec (s/cat :form-name ::command-form-name
                 :form-body ::command-form-body)))

(s/def ::command-query-form
  (s/spec (s/cat :form-name #{'query}
                 :form-body :workflo.macros.specs.query/query)))

(s/def ::command-spec-form
  (s/spec (s/cat :form-name #{'spec}
                 :form-body ::command-spec)))

(s/def ::command-emit-form
  (s/spec (s/cat :form-name #{'emit}

(s/def ::command-form-name
  (s/with-gen
    (s/and symbol?
           #(not (some #{%} '[description
                              spec
                              query
                              auth-query
                              auth
                              emit]))
           #(not (some #{\/} (str %))))
    #(s/gen '#{foo bar foo-bar})))

