pub fn read(base: &Path) -> Vec<(String, String)>
The ledger as (id, title) pairs sorted by number. Prefers _retired.md; falls back to the legacy plaintext ledger (ids only, empty titles). A missing ledger reads as empty.
(id, title)
_retired.md