Expand description
In-memory DAG structure with parent/descendant traversal.
The EventDag indexes events by their content-addressed hash for efficient
parent lookup, descendant traversal, and topological iteration.
§Construction
The DAG is built incrementally via EventDag::insert. Events can be
inserted in any order; parent/child links are resolved lazily as events
arrive. This supports both full replay and incremental appending.
§Deduplication
Duplicate events (same hash) are silently skipped on insert. This is inherent to content-addressed design and supports scenarios like git merges that bring both sides of a branch.