Build a roster — athletes as canonical records

Add an athlete to a team roster:
1. Roster tab → pick team → "+ Add athlete"
2. **Find athlete** — search by name, email, or phone. Hits resolve via the platform identity graph.
- If the athlete already has a Turtini account → roster slot binds via `linkedUserId`
- If not → invite by email or phone; once they accept, their account gets the linkage automatically
3. **Position(s)**, jersey number, depth-chart rank
4. **Joined date** + optional exit conditions (graduation, draft eligibility, transfer)
5. Save

What this does (vs. the old way):
- The roster slot is a CONTAINER, not a record. Athlete data (DOB, medical, contact, prior teams) lives on the user doc.
- Coaches see what they're granted to see per scope (basic, full, medical). Default scopes per tier — youth limits coaches to basic + parent-mediated; pro grants full + medical.
- When the athlete graduates from this team, you don't delete anything. You set an exit date on the slot. The athlete's dossier is untouched; the team simply no longer has read on it.

Bulk import: `sports_importGameChangerCsv` ingests a GameChanger or Hudl roster export and creates/links accordingly.