Something like clj spec, but described in data:
Looks like
malli
already meets most of these criteria, except thecue
-like additivity.
- similar
cue
, but defined in EDN + AERO - rdf-style
definitions
like inclj.spec
, (i.e., namespaced keywords) rather than structure based like incue
definitions
can then be assembled intoconstructs
likes/keys
in clojure-spec- both
definitions
andconstructs
can be combined like incue
. (They're both Monoids I guess, but except that order doesn't matter) - a
spec
is a map containing- just the rdf-style defs? (i.e. no aggregates?)
- both definitions and constructs?
coercers + inference
untyped
-> typed
coercers
(for each "source" type, only one can exist)- inferencers (in a lattice, with priority? in a tree? can just have one per node in cuelang-talk))
- generate avro schemas, json schemas, swagger docs, etc from it
- clojure-spec-provider but that outputs spekiri-ready schema + possible multiple ones a la cuelang
🎨 Prior art
- malli (Data driven schemas for clojure/cljs)
- cue
- Clojure spec