Canonical source output now uses reference-safe-v1: authored references are validated before sorting, and each sortable scope emits its smallest eligible decoded key. List, tuple and node-child positions are unchanged. Invalid authored references fail rather than being repaired by sorting; canonicalization is not GP or schema approval.
Generic arguments must be datatype descriptors, not bare numbers or strings. Numeric clarifiers follow value-number normalization without host-number rounding; TypeScript and pure-Python parser ASTs retain NumberLiteral nodes. GP and radix consumers validate bases exactly, including metadata and tag-head claims.
Stored canonical bytes must retain their original contract. Library callers can explicitly select lexical-v1 for historical source output; integrity event hashing and receipt verification keep their separate historical assignment projection. Source canonicalization, portable AES hashing and integrity event bytes are not interchangeable.
Independent providers remain SANSA 0.14.2 and AES Telex 0.3.1. The TypeScript Film surface remains reader-only, with logical depth accounting aligned to the shared AES contract.