 
 
 (defmethod jsc/accept-spec 'com.sixsq.slipstream.ssclj.util.spec/constrained-map [_ spec children _]
-  #_(log/error "monkey constrainted-map")
-  (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))
-        required (map impl/qualified-name req)
-        required-un (map name req-un)
-        all-required (not-empty (concat required required-un))]
-    (#'jsc/maybe-with-title
-      (merge
-        {:type       "object"
-         :properties (zipmap (concat names names-un) children)}
-        (when all-required
-          {:required (vec all-required)}))
-      spec)))
+  (#'jsc/maybe-with-title {:type "object", :additionalProperties (impl/unwrap children)} spec))
 
 
 ;;

;;

(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))



  (st-parse/parse-form 'clojure.spec.alpha/keys (transform-form form)))


(defn transform-as-every
  [[spec-name key-spec value-spec & _]]
  [[spec-name key-spec value-spec]])


(defmethod st-parse/parse-form 'com.sixsq.slipstream.ssclj.util.spec/constrained-map [dispatch form]
  (st-parse/parse-form 'clojure.spec.alpha/every (transform-as-every form)))


;;
