   "Uses the :responses metadata to identify possible responses."
   [swagger-options swagger-object routing-entry paths-key]
   (let [responses (-> routing-entry :meta :responses)
+        decorator (:response-decorator swagger-options)
         reducer   (fn [so [status-code schema]]
                     (t/track
                       #(format "Describing %d response." status-code)

                                            ;; description is required in the Response Object, so we need some default here.
                                            "Documentation not provided.")
                            [so' schema-reference] (->swagger-schema swagger-options so schema)
                            response    (remove-nil-vals {:description description
                                                          :schema      schema-reference})]
                        (assoc-in so' (concat paths-key [:responses status-code]) response))))]
    (reduce reducer swagger-object responses)))

(defn default-path-item-object-injector
  "Injects a PathItemObject based on a routing entry.

  The paths-key is a coordinate into the swagger-object where the PathItemObject should be created.

  Returns the modified swagger-object."
  [swagger-options swagger-object routing-entry paths-key]
  (let [{endpoint-meta :meta} routing-entry
        swagger-meta          (:swagger endpoint-meta)
        description           (or (:description swagger-meta)
                                  (:doc endpoint-meta))
        summary               (:summary swagger-meta)
        path-params-injector  (:path-params-injector swagger-options)
        query-params-injector (:query-params-injector swagger-options)
        body-params-injector  (:body-params-injector swagger-options)
        responses-injector    (:responses-injector swagger-options)
        params-key            (concat paths-key ["parameters"])]
    (as-> swagger-object %
          (assoc-in % paths-key
                    (remove-nil-vals {:description     description
                                      :summary         summary
                                      ;; This is required inside a Operation object:
                                      :responses       (sorted-map)
                                      :x-rook-endpoint (:function endpoint-meta)}))
          (path-params-injector swagger-options % routing-entry params-key)
          (query-params-injector swagger-options % routing-entry params-key)
          (body-params-injector swagger-options % routing-entry params-key)
          (responses-injector swagger-options % routing-entry paths-key))))

(defn default-route-injector
  "The default route converter.  The swagger-options may contain an override of this function.


  nil or s/Any returns nil.

  Typically, the result of this is wrapped inside map with key :schema."
  [swagger-options swagger-object schema]
  (cond-let
