'resolved' — single high-confidence match; playerAthleteId is set,
leg is eligible for auto-grading.
'ambiguous' — multiple plausible candidates; user needs to pick one.
candidates is populated. playerAthleteId is null.
'unmatched' — no candidate cleared the confidence floor. The user
can search and pick from the confirmation screen.
'pending' — resolver hasn't run yet (e.g. manual-entry leg before
the user finished typing). UI treats this like 'unmatched'
but suppresses the warning chrome until first resolution.
'manual' — user explicitly bypassed the resolver (typed an
athleteId override). Eligible for auto-grading.
Linkage status for a parsed leg's player.
candidatesis populated.playerAthleteIdis null.