f2944ed402
Phase 3. She can now log and resolve identity at the table: - add_read gains a `descriptor` param — a read on an unnamed player resolves to an existing descriptor villain (confident match) or opens a new one, so reads on "neck tattoo guy" accumulate and reuse across the night. - name_villain(descriptor, name): attach a real name once caught (history carries). - link_villains(a, b, same): merge on confirmed same-person, or mark distinct so she stops asking. Refuses to act on a vague reference — never merges on a guess. - Cash card PLAYERS guidance: log nameless villains by distinctive descriptor, cite the SCOUTING DESK note, ask before assuming a callback, confirm before merge. 4 tests. Full suite 150 green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>