Optional Readonly__ReadonlydefsThe registry for bindings and forms. TYPE-complete (every field,
function-defined ones included, so typedFields/<Field> know every
key); at RUNTIME it holds the static defs only — resolution always passes
the freshly computed def, so nothing reads the runtime entries for
function fields.
ReadonlyeffectsAttach rules as a PLAIN MAP keyed by the trigger field: a rule fires when
its key is in a patch, reads the pre-patch state, and returns keys to add
to the patch. Everything is typed from the graph — no generics, no
wrapper. A pre-built unit carrying a reconciler (a field kit's rules,
another graph's effects) is also accepted.
The server entry point: boundary schemas -> resolve -> output validation.
Best-effort parse: valid fields plus the errors, no throw.
Mount another graph (or hub) at this point in the chain. The child is an
ordinary defineGraph whose Ext declares what it NEEDS from upstream —
at resolve time it receives the parent's ext with the ctx-so-far merged
over it, so a need is satisfied by a prior field or by the parent's own
ext. Its fields, registry, and effects join the chain.
The function form is plain application — use(fn) IS fn(this) — for
transforms a standalone graph can't express (e.g. key prefixing).
PHANTOM — never set at runtime. Carries the wire map in the type so composition sites (
.use, hub members) can INFER it; without a member mentioning W, inference has no site and falls back to the constraint, whosekeyofisstring— which would Omit every key from DataOf.