Layered, then sealed

Layered, then sealedFour plates stacked on one resource: declared by the owner, contributed by alters, narrowed by refinement, and access for this account; the sealed data surface on top; the form, HTTP and OpenAPI, and the tool read it, and the React page, MCP and ECA walk through them. One resource id plugin theme region settings Declared: the owner module_b.key_d module_b.key_e Contributed: alters at their mounts key_d: fewer max 100 theme's regions Narrowed: static stated, live marked key_e: locked a key left out Access: for this account the data surface Sealed: the data surface After the seal it is only read, and nothing widens. Made before the seal, each contribution under its own module's name. Every door reads the top Form HTTP and OpenAPI React page Tool MCP ECA Indented: through the door above. Layered, then sealedThe doors read the sealed data surface on top; below it, access for this account, narrowed by refinement, contributed by alters and declared by the owner, on one resource.Every door reads the top Through the tool: MCP and ECA. Through HTTP: the React page. Form HTTP and OpenAPI Tool the data surface Sealed: the data surface After the seal it is only read, and nothing widens. Access: for this account key_e: locked a key left out Narrowed: static stated, live marked key_d: fewer max 100 theme's regions Contributed: alters at their mounts module_b.key_d module_b.key_e Declared: the owner id plugin theme region settings One resource Each layer is made before the seal, every contribution under its own module's name.

The owner declares its keys and rules; other modules contribute at their own mounts and may narrow the owner's keys but never widen them; refinement narrows, stating static answers and marking live ones; and access locks keys or leaves them out for the account. The build seals the result, and every door reads that one sealed data surface and nothing else. They agree because every contribution is made under its own name before the seal, and after the seal nothing widens.

Read more Surface API, The pattern, Refinement and contributions. Decisions An alter attaches at its own mount, Static by default, runtime by declaration, Access is static or runtime, read from its cacheability.

Part of Surface API; see the full explainer.