Fields
Track normalization.
Tracks are currently represented as normalized strings on tips and runners, with provider IDs preserved when available.
Current model
trackHuman-readable track name used by public API filters.track_idProvider track identifier on runner rows when PFAPI supplies it.meeting_idProvider meeting identifier used for traceability and future joins.race_idProvider race identifier on each runner row when supplied.Recommended key
date + track + race_number is the public lookup key.
Provider IDs
Keep meeting_id, track_id, and race_id for debugging joins.
Future endpoint
/v1/tracks can be added once we need canonical aliases.
Agent fallback
When track names differ, use horse name and race number, then report uncertainty.