pub fn ledger_map(
rows: &[LedgerRow],
tier: LedgerTier,
) -> BTreeMap<(String, String, usize), String>Expand description
rows of one tier, collected into the (scenario, kind, statement) -> cause map that tier’s
lock compares what it found against. Panics on a duplicate key WITHIN the tier — two tiers’
rows sharing a scenario/kind/statement are not a collision, since each lock reads only its own.