Appearance
block-instance schema
One block INSTANCE inside a page (instanceId/blockType/properties/events) — same shape validate-page-properties.mjs checks.
Pull the full JSON Schema: erp schema pull block-instance · MCP: erp_get_schema {"name":"block-instance"}
Top-level properties
| Property | Type | Required | Notes |
|---|---|---|---|
contractVersion | — | yes | |
instanceId | string | yes | The block's instance identity - also its Phase 4 block-scope scopeKey. |
blockType | string | yes | |
blockVersion | string | yes | The version this instance was authored against (the pin, W1-05). |
properties | object | yes | |
events | object | ||
outputs | object | Optional output redirection: where each output port writes. Defaults to the block's own block-scope entry named after the port. | |
children | object | Container-class blocks only: slot name to nested instance configs. | |
a11yLabelKey | string | W10 (additive, 2026-07-16): the authored label's translation key for this placed instance (a Phase 6 field's labelKey), resolved through the runtime i18n resolver into the node's accessible name; takes precedence over the block definition's labelFrom default. | |
name | string | 2026-07-18: an author-facing display name (e.g. "Header block"), never read at render/runtime — a Studio authoring aid only. | |
className | string | 2026-07-17: a framework-specific class name applied to the rendered root, the universal escape hatch alongside style. | |
style | object | 2026-07-17: raw inline style properties applied to the rendered root, the universal escape hatch alongside className. |
Named sub-definitions
boundKey, propertyValue, eventWiring