StatechartResult:
    | { kind: "ok"; next: unknown }
    | { kind: "forbidden"; reason: ForbiddenStatechartTransition }

Discriminated result returned by BackendEngine.evaluateStatechart.

Mirrors the TS reducers' TransitionResult<S> DU. The ok arm carries the next state structurally (typed as unknown here because the BackendEngine seam is region-agnostic; callers narrow by region tag on input); the forbidden arm carries enough metadata for the wiring shell to construct the appropriate typed error. The method never throws — exception-based control flow does not translate cleanly to a future Rust port where the natural shape is Result<State, ForbiddenTransition>.