noggin

Core data model

The pure-data shapes noggin is built on. The JSON schema validates them, the serializers convert them to/from YAML or JSON, providers load and save them, and every verb-returned view is derived from them.

Immutability

All accessors on a live Noggin return deep-frozen values — the same Item[] reference across two noggin.items reads (until the next mutation) so subscribers can memoise on identity. Consumers must not mutate the values they receive; the freeze is enforced, but the pattern is a design rule regardless.