The kinds, declared once: the tag type, its alias, its spellings, and
its slot in the allocator and the id union. A macro because these five
must agree per kind and nothing weaker than generation makes them
unable to drift.
Per-kind high-water marks: the largest id of each kind the
document has ever held, minted or folded. Never stored — a
loaded document derives them from its own content — so there is
no durable counter to run backwards and no invariant for the
fold to police.
One reference to anything an op can touch — the id union that a
note’s anchor, the spotlight’s footprints, and every “what did
this op target” question share, so the entity kinds are never
enumerated twice.
The supertraits are the tag’s, not the id’s: Id<K> derives Copy,
Ord and Hash, and without them every generic bound would have to
restate what a compile-time tag trivially satisfies.