    (s/optional-key "options")           operation-object
    (s/optional-key "head")              operation-object
    (s/optional-key "patch")             operation-object
-   (s/optional-key "parameters")        [(s/either parameter-object reference-object)]
+   (s/optional-key "parameters")        [(s/if ref? reference-object parameter-object)]
    (s/optional-key (s/pred extension?)) s/Any})
 
 (def paths-object


(defn extension? [^String k]
  (.startsWith "x-" k))

(def primitives
  {"integer" s-long

   (s/optional-key "externalDocs")      external-documentation-object
   (s/optional-key "consumes")          [s-string]
   (s/optional-key "produces")          [s-string]
   (s/optional-key "parameters")        [(s/if ref? reference-object parameter-object)]
   (s/optional-key "schemes")           [s-string]
   (s/optional-key "deprecated")        s-boolean
   (s/optional-key "security")          [security-requirement-object]
