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 Squidie journal table without changing the runtime invariants.
Summary
Types
@type t() :: %Squidie.Runtime.DispatchProtocol.Projection{ anomalies: [anomaly()], attempts: %{ optional(String.t()) => Squidie.Runtime.DispatchProtocol.ActionAttempt.t() }, queued_run_ids: string_set(), terminal_runs: string_set() }