Canonical UI projection contract returned by the stem runtime.
The projector layer in the host application must be able to render a workflow step and submit events without understanding workflow logic.
Summary
Types
@type t() :: %WorkflowStem.Projection{ artifacts: map(), available_events: [atom() | String.t()], blocked_reasons: map(), breakpoint_hits: list(), current_state: atom() | String.t() | nil, errors: [map()], execution_id: WorkflowStem.Types.execution_id(), extensions: map(), profile: WorkflowStem.Types.profile(), subscriptions: [String.t()], trace: list(), ui: ui_descriptor() | nil }