 
 (def person-spec
   (st/coll-spec
-   ::person
-   {::id clojure.core/integer?
-    :age ::age
-    :name clojure.core/string?
-    :likes {clojure.core/string? clojure.core/boolean?}
-    (st/req :languages) #{clojure.core/keyword?}
-    (st/opt :address) {:street clojure.core/string?
-                       :zip clojure.core/string?}}))
+    ::person
+    {::id clojure.core/integer?
+     :age ::age
+     :name clojure.core/string?
+     :likes {clojure.core/string? clojure.core/boolean?}
+     (st/req :languages) #{clojure.core/keyword?}
+     (st/opt :address) {:street clojure.core/string?
+                        :zip clojure.core/string?}}))
 
 (deftest readme-test
   (is (= {:type "object"

(ns spec-tools.json-schema-test
  (:require  [clojure.test :refer [deftest testing is]]
             [clojure.spec :as s]
             [clojure.spec.test :as stest]
             [com.gfredericks.test.chuck.clojure-test :refer [checking]]
             #?(:clj [scjsv.core :as scjsv])
             [spec-tools.core :as st]
             [spec-tools.impl :as impl]
             [spec-tools.json-schema :as jsc]))

(s/def ::int int?)
(s/def ::string string?)
(s/def ::set #{1 2 3})


  (testing "primitive predicates"
    ;; You're intented to call jsc/to-json with a registered spec, but to avoid
    ;; boilerplate, we do inline specization here.
    (is (= (jsc/to-json (s/spec int?)) {:type "integer" :format "int64"}))
    (is (= (jsc/to-json (s/spec integer?)) {:type "integer"}))
    (is (= (jsc/to-json (s/spec float?)) {:type "number"}))
    (is (= (jsc/to-json (s/spec double?)) {:type "number"}))
