Rebuildable projection over durable dispatch journal entries.
The projection is deliberately pure. Storage adapters can rebuild it from Jido thread journals, backend lease lifecycle signals, or from a single append-only Jizoku journal table without changing the runtime invariants.
Summary
Types
@type continuation_abort_reason() :: :predecessor_changed | :predecessor_terminal
@type t() :: %Jizoku.Runtime.DispatchProtocol.Projection{ anomalies: [anomaly()], attempts: %{ optional(String.t()) => Jizoku.Runtime.DispatchProtocol.ActionAttempt.t() }, continuation_aborts: %{optional(String.t()) => map()}, continuation_fences: %{optional(String.t()) => map()}, continuation_repairs: %{optional(String.t()) => map()}, queued_run_ids: string_set(), terminal_runs: string_set() }