The five step/handle outcomes from the spec §3, with shape validation.
{:next, step, state} # transition, runnable, attempt := 0
{:replay, state, delay_ms} # same step, runnable, attempt += 1, eligible_at += delay
{:await, names, next_step, state} # park; on any of `names`, run next_step (ctx.awaited)
{:done, result} # terminal, done
{:stop, reason} # terminal, failedStep names and signal names are normalized to strings. :await accepts a single
name or a list of names; both normalize to a list.
Summary
Functions
The outcome's tag, for telemetry/metadata.