@huukhanhnguyen/model / functionRegistry/catalog/runtime
functionRegistry/catalog/runtime
RUNTIME_CONTEXTS
constRUNTIME_CONTEXTS: {Material: readonly ["root","flat","component"];Scene: readonly ["root"];Table: readonly ["root","flat"]; }
WHERE each runtime namespace is actually injected. A runtime entry closes over model state, so — unlike the compute namespaces, which are bound once per registry and visible everywhere — it only appears when the enclosing scope wires the matching hook.
rootroot parameters/operations expressions (their arg nodes climb the parent chain to the same ModelScope).flata sheet's ad hoc operations / a flat component resolve (Model._flatLaneExtras).componenta components[] body (Model._componentScopeExtras wires imageUrlOf + resolveMaterial only — a component is a lite model and does not read host tables; see CLAUDE.md's COMPONENT LAW).texturea texture chain's own parameters — isolated, no hooks at all (Table.get was cut 2026-07-26, see textureResolve.ts).
SSOT for the tooltips above and for tests/functionRegistryDrift.test.ts, which builds each of those contexts for real and asserts they agree.
Material
readonlyMaterial: readonly ["root","flat","component"]
Scene
readonlyScene: readonly ["root"]
Table
readonlyTable: readonly ["root","flat"]
RUNTIME_ENTRIES
constRUNTIME_ENTRIES:FunctionRegistryEntry[]