Canonical UI projection contract returned by the stepwise engine.
The projection provides all information needed for a UI layer to render a wizard step and submit events without understanding workflow logic.
Summary
Types
@type t() :: %Mobus.Stepwise.Projection{ artifacts: map(), available_events: [atom() | String.t()], blocked_reasons: map(), breakpoint_hits: list(), current_state: atom() | String.t() | nil, errors: [map()], execution_id: Mobus.Stepwise.Types.execution_id(), extensions: map(), profile: Mobus.Stepwise.Types.profile(), subscriptions: [String.t()], trace: list(), ui: ui_descriptor() | nil }