     ;; Missing this stuff?  Make it anonymous.
     (or (nil? schema-name) (nil? schema-ns))
     ;; The challenge here is nested schemas that may have names. Currently that will blow up.
-    [swagger-object {:schema (map->swagger-schema swagger-options schema)}]
-
+    (let [[so' new-schema] (map->swagger-schema swagger-options swagger-object schema)]
+      [so' {:schema new-schema}])
 
     ;; Avoid forward slash in the swagger name, as that's problematic.
     [swagger-name (str schema-ns \: schema-name)

    (some? swagger-schema)
    [swagger-object swagger-reference]

    [new-schema (map->swagger-schema swagger-options schema)
     swagger-object' (assoc-in swagger-object [:definitions swagger-name] new-schema)]

    :else
    [swagger-object' swagger-reference]))

(defn default-body-params-injector
  "Uses the :body-schema metadata to identify the body params."


(defn- simple->swagger-schema
  "Converts a simple (non-object) Schema into an inline Swagger Schema, with keys :type and perhaps :format, etc."
  [swagger-options swagger-object schema]
  (cond-let
    [data-type-mappings (:data-type-mappings swagger-options)
     data (get data-type-mappings schema)]

    (some? data)
    [swagger-object data]

    (instance? EnumSchema schema)
    [swagger-object {:type :string                          ; an assumption
                     :enum (unwrap-schema schema)}]

    (instance? Maybe schema)
    (let [[swagger-object' swagger-schema] (simple->swagger-schema swagger-options swagger-object (unwrap-schema schema))]
      [swagger-object' (assoc swagger-schema :allowEmptyValue true)])

    ;; The i.a.r.schema/with-description macro often turns bare classes into an IsInstance
    (instance? IsInstance schema)
    (recur swagger-options swagger-object (unwrap-schema schema))

    ;; TODO: arrays

