Draft
^{:clay {:quarto {:draft true}}}
(ns civitas.explorer.validator
  (:require [clojure.spec.alpha :as s]))
(s/def ::level #{0 1 2 3})
:user/level
(s/def ::format #{:reference :interactive-book :video :library-docs :problem-set :community})
:user/format
(s/def ::topic #{:core :web :data-sci :concurrency :tooling :testing :performance})
:user/topic
(s/def ::resource
  (s/keys :req-un [::id ::title ::url ::format ::topics ::level]
          :opt-un [::depends-on ::description]))
:user/resource
(defn validate-db [db]
  (s/valid? ::resources (:resources db)))
source: src/civitas/explorer/validator.clj