AIM: Translate a clojure.spec form into what we call a "pull spec" which is based on graphql / datomic pull-api spec.
(s/def :props/PROJ_CONTACT
(s/keys :req-un [:PROJ_CONTACT/NAME
:PROJ_CONTACT/PHONE
:PROJ_CONTACT/EMAIL]))
(s/def :props/PROJ_CATEGORY
(s/keys :req-un [:PROJ_CATEGORY/CATEGORY_TITLE]))
(s/def :props/PROJ_CONTACTs
(s/coll-of :props/PROJ_CONTACT))
(s/def :props/PROJ_PROJECT
(s/keys :req-un [:PROJ_PROJECT/TITLE
:props/PROJ_CATEGORY
:PROJ_PROJECT/DESCRIPTION
:props/PROJ_CONTACTs]))
(clojure.pprint/pprint
(pull-step (s/form :props/PROJ_PROJECT)))
#{"DESCRIPTION" "TITLE" {"PROJ_CONTACTs" ["NAME" "PHONE" "EMAIL"]}
{"PROJ_CATEGORY" #{"CATEGORY_TITLE"}}}