b6fb635ef4
Per sub-project-2 plan Task 2 / spec §3. Purely additive to hef.catalog; no existing symbol changes. validate_catalog runs per-record validate() then asserts id uniqueness; index_by_id gives by-id lookup the player also wants. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>