sui-spec 0.1.21

Declarative Lisp-authored specs for CppNix-parity behaviors. Rust types are the hard boundary; Lisp forms are the free-middle authoring surface. Both engines (tree-walker + VM) drive the same spec, so they cannot drift.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
;; sui-spec/specs/lock_file.lisp — typed border for flake.lock.

(deflock-file-format
  :name            "cppnix-flake-lock-v7"
  :version         7
  :encoding        JsonText
  :required-fields ("version" "root" "nodes")
  :node-fields     ("inputs" "locked" "original" "flake")
  :phases ((:kind ParseJson)
           (:kind ValidateVersion)
           (:kind ValidateNodeGraph)
           (:kind ResolveTransitiveInputs)
           (:kind EmitCanonicalJson)))