ReadonlypreviewThe preview row to read before firing — its previewField says how much would move.
ReadonlypreviewThe array field on the preview row's state whose length is "how much would move".
ReadonlysettingThe boolean field on the settings row — true asks first, false fires unconditionally.
ReadonlysettingThe settings row holding the operator's sign-off.
Readonlytransition
A gate whose ASK is decided by two rows — read before honouring its transition, keyed by the gated row's own path template (
2026-08-22-osc-surface.md§"Confirm-gated operations").A whole-state apply (a channel config landing on a channel, a factory instrument template) can MOVE what the channel holds, and the operator's own sign-off decides whether that needs asking first —
useApplyWarning's rule on the web UI, restated here so a client with no dialog (a remote OSC surface, a future MIDI one) can honour the SAME policy instead of growing a second one. Every field here names another row this client must already know how to read — a preview and a settings row — never a value: the fire itself decides nothing, it only says WHERE to ask.