A concrete, revision-fenced request to execute one staged effect.
Invocations describe work without embedding executable clients or callbacks.
A direct Runtime caller returns the descriptor to Spectre.Runtime.resume/3.
A Spectre.Instance instead retains the owning Run, dispatches the work
outside its mailbox, and accepts only a correlated internal receipt before
applying the returned continuation.
Summary
Types
@type t() :: %Spectre.Invocation{ attempt: pos_integer(), id: String.t(), idempotency_key: String.t(), kind: :effect, metadata: map(), operation: {atom(), atom() | String.t() | nil}, owner: module() | nil, ref: Spectre.Run.Ref.t(), run_id: String.t(), run_revision: non_neg_integer(), scope: Spectre.Definition.scope() | nil, status: :pending, subject_id: String.t() }