chappi-syntax
chappi-syntax provides Chappi v1's span-carrying generic S-expression parser,
deterministic canonical serializer, and canonical SHA-256 hashing.
The parser accepts at most 256 nested lists and reports structured diagnostics
for invalid input. Canonical output is UTF-8, NFC-normalized, LF-only, ordered,
and, for a non-empty Document, terminated by exactly one newline. An empty
Document canonicalizes to empty bytes. Valid snapshots contain a header, so
their canonical output is always non-empty and newline-terminated.
The public API includes parse_document, canonicalize, canonical_hash,
Document, Form, Atom, Span, and Diagnostic. API documentation is
available on docs.rs.
Chappi stores explicit resumable semantic state; it is not a format for hidden chain-of-thought.