Immutable result of one validated lifecycle transition.
It carries both state snapshots and the affected entities so persistence, journaling, and host dispatch can reason about a transition without reconstructing it from mutable-looking structs.
Summary
Types
@type t() :: %Spectre.Transition{ awaitable: Spectre.Awaitable.t() | nil, effect: Spectre.Effect.t() | nil, entity_id: term(), event: atom(), from: Spectre.State.t(), metadata: map(), replayed?: boolean(), to: Spectre.State.t() }