Mobus.Stepwise.Projection (mobus_stepwise v0.2.0)

Copy Markdown View Source

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

t()

@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
}

ui_descriptor()

@type ui_descriptor() :: %{:key => atom() | String.t(), optional(:assigns) => map()}