メインコンテンツへスキップ

ARC 2.0.0-beta.25

Nodes, events, and messages

Use a small semantic node contract; keep authoring semantics distinct from renderer transport details.

This reference describes the AUP tree contract that an author can intentionally write against. It does not make every internal session message a long-term authoring API.

Node fields

An AUP node has a required id and type. The current public node shape also has these optional fields:

FieldAuthoring roleBoundary
propsStatic presentation/input propertiesIts valid keys depend on type
srcA read-oriented data sourceIt does not itself grant write access
bindA normal read/write binding for a supported input flowThe receiving node and target still decide what they support
propBindServer-managed binding for a dotted property path to an AFS pathUse only where the owning component declares it
stateApplication state supplied with the nodeDo not treat renderer-local transient UI as universally persistent state
eventsNamed interactions and their actionsThe event name is defined by the node/renderer contract
childrenNested semantic nodesA type may constrain its child shape
testIdStable test-oriented identifierIt is not reader-facing copy or routing identity

type names a semantic capability, not a particular HTML tag or native widget. See Primitive taxonomy and evidence before documenting a capability as cross-device.

Events and navigation

For current DSL authoring, -> is the click shorthand for button and action. Other nodes use an explicit on <event> -> form. A page change uses the canonical root-state update:

text
button open "Open" primary -> page details

which compiles to a target of "_root" with set.page. The earlier top-level page: shape is a compatibility form, not the preferred contract for new source.

Messages: use the right level of abstraction

Interactive delivery begins with a rendered tree and may subsequently use tree-versioned patches. Those messages let a session keep a target surface synchronized; authors normally express them through nodes, state, and events rather than constructing patch transport by hand. A static Web Device page can render a supported tree without opening that interactive session.

Read Events, state, and bindings for task-oriented examples and Patches, scenes, and capabilities for the update boundary.