DecisionSurfaceInterface
The human decision surface for a gated process state: a `milpa/live` component ({@see ComponentDefinitionInterface}) whose {@see self::options()} MUST equal — 1:1, order-insensitive — the names of the transitions the gate it renders offers. {@see PendingDecision}'s constructor enforces that invariant for every `DecisionSurfaceInterface` this package builds a {@see PendingDecision} around, so a mismatch (a stale artifact after a process definition renamed, added, or removed a gated transition) fails loudly at construction rather than silently offering stale actions. This package ships only the contract and that invariant — the concrete rendering (what a gate's decision surface actually LOOKS like: a blog post under review, an invoice awaiting sign-off, ...) is domain, supplied by a consumer's {@see DecisionSurfaceFactoryInterface} implementation.
DecisionSurfaceInterface::options()
abstract public function options(): arrayThe transition names this surface offers as decisions — MUST equal the gate's transition names 1:1, order-insensitive (enforced by {@see PendingDecision}'s constructor).