Mode / state-machine framework

Gap capability: a first-class lifecycle for the runtime — distinct from item lifecycle — that captures the operational modes typical of PLC programs.

Feature: Mode / state-machine framework FEAT_0019
status: open
satisfies: FEAT_0010
is satisfied by: REQ_0080, REQ_0081, REQ_0082, REQ_0083

A first-class lifecycle for the runtime — distinct from item lifecycle — that captures the operational modes typical of PLC programs.

Requirement: Mode lifecycle REQ_0080
status: open
satisfies: FEAT_0019

The runtime shall support an explicit mode lifecycle of at least {init, ready, running, fault, stopping, stopped} and shall expose the current mode through a query API.

Requirement: Mode transition triggers REQ_0081
status: open
satisfies: FEAT_0019

Mode transitions shall be triggered both programmatically (caller-driven) and as a consequence of configured events (executor-wide deadline overrun, item error, signal-driven stop).

Requirement: Per-mode task gating REQ_0082
status: open
satisfies: FEAT_0019

Each registered task shall declare which modes it is enabled in; the runtime shall not dispatch a task while it is disabled by the current mode.

Requirement: Mode change observability REQ_0083
status: open
satisfies: FEAT_0019

Mode transitions shall be visible to the configured Observer via a dedicated callback that reports the previous mode, the new mode, and the reason for the transition.