A copy, for the same reason as state.
The custom actions dispatched so far, in order, as plain data. Hosts and the conformance harness read it; nothing about the view can be changed through it.
The document's metadata section, verbatim and untyped: producer
annotations reach host code without a side channel.
The resolved tree: a new object identity after every re-resolution.
A copy: the engine's own state is never handed out to be edited.
The host's signal that the view has come on screen: accepted while
not appeared, ignored otherwise, and after teardown. An accepted
signal dispatches the document's appear bindings, if any.
Installs the context source's cancellation, once, at build. Calling it again is a no-op: the first subscription is the view's.
Internal completion path; the async funnel lands here, and the conformance harness drives it directly.
The host's signal that the view has left the screen; the mirror of appear.
A renderer emission. Undeclared events and mis-typed payloads are dropped and reported before reaching dispatch; declared events with no binding are dropped and reported.
Replaces the document the view is bound to (state and actions spec,
Document replacement): the new document passes the gate under the
surface's configuration, state whose declaration is unchanged carries
over, the provider supplies the rest, and the swap lands on the
dispatcher, serialized with dispatch. Throws what build() throws; on
a throw the view is exactly as it was. Ignored after teardown.
Notifies after every re-resolution; the React binding subscribes here.
The view ceases to participate: completions arriving afterwards drop their follow-ups and report.
Reports a widget interaction to the engine's user-interaction stream, for signals the document does not model as events. Never touches dispatch or state.
A built view, bound to one document at a time. Everything mutable runs through the view's dispatcher and its work queue, so an update never lands mid-action-list.