 
 
 (defmethod visitor/visit-spec 'com.sixsq.slipstream.ssclj.util.spec/constrained-map [spec accept options]
-  (let [keys (impl/extract-keys (transform-form (impl/extract-form spec)))]
-    (accept 'com.sixsq.slipstream.ssclj.util.spec/constrained-map spec (mapv #(visitor/visit % accept options) keys) options)))
+  (let [[_ inner-spec] (transform-as-every (impl/extract-form spec))]
+    (accept 'com.sixsq.slipstream.ssclj.util.spec/constrained-map spec [(visitor/visit inner-spec accept options)] options)))
 
 
 ;; accept-spec monkey patches
 
 (defmethod jsc/accept-spec 'com.sixsq.slipstream.ssclj.util.spec/only-keys [dispatch spec children arg]
-  #_(log/error "monkey only-keys")
   (jsc/accept-spec 'clojure.spec.alpha/keys spec children arg))
 
 
 (defmethod jsc/accept-spec 'com.sixsq.slipstream.ssclj.util.spec/only-keys-maps [_ spec children _]
-  #_(log/error "monkey only-keys-maps")
   (let [{:keys [req req-un opt opt-un]} (impl/parse-keys (transform-form (impl/extract-form spec)))
         names-un (map name (concat req-un opt-un))
         names (map impl/qualified-name (concat req opt))

;;

(defmethod st-parse/parse-form 'com.sixsq.slipstream.ssclj.util.spec/only-keys [dispatch form]
  #_(log/error "DEBUX X" form)
  (st-parse/parse-form 'clojure.spec.alpha/keys form))





(defmethod jsc/accept-spec 'com.sixsq.slipstream.ssclj.util.spec/constrained-map [_ spec children _]
  (#'jsc/maybe-with-title {:type "object", :additionalProperties (impl/unwrap children)} spec))


;;
