The step/handle outcomes, with shape validation.
{:next, step, state} # transition, runnable, attempt := 0
{:next, step, state, opts} # …with per-transition opts: rate_limit, weight
{:retry, 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. :next accepts an optional 4th
keyword opts (rate_limit:, weight:); it is normalized to a next_opts map and
the outcome to the 4-tuple {:next, step, state, opts_map}.
Summary
Functions
The outcome's tag, for telemetry/metadata.