- Replace all `any` types with proper types or `unknown` across ~20 files
- Add typed socket payload interfaces in draft route and useDraftSocket
- Use any[] with eslint-disable for socket.io callbacks (legitimate escape hatch)
- Bump all tsconfigs from ES2022 → ES2023 to support toSorted/toReversed
- Fix cascading type errors uncovered by removing any: Map.get narrowing,
participant relation types, ChartDataPoint, Partial<NewSeason> indexing
- Add ParticipantResultWithParticipant type to participant-result model
- Fix test fixtures to match updated interfaces (DraftCell, ParticipantResult)
- Fix duplicate getQPStandings import in sportsSeasonId.server.ts
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add scoringPattern and eventType enums for 4 scoring patterns
(single_elimination_playoff, page_playoff, season_standings, qualifying_points)
- Add 8 placement point fields to seasons table (1st-8th) with defaults
- Add scoring pattern fields to sportsSeasons table (scoringPattern, totalMajors, etc.)
- Create 10 new tables:
- scoring_events: Individual games, tournaments, races
- event_results: Participant results per event
- playoff_matches: Bracket tracking for playoffs
- participant_qualifying_totals: QP aggregation for golf/tennis
- qualifying_point_config: Configurable QP values per sport
- team_sport_scores: Aggregated scores per sport
- team_standings: Current standings with tiebreakers
- team_standings_snapshots: Daily snapshots for 7-day tracking
- participant_expected_values: EV calculations per league
- participant_season_results: F1 current points tracking
- Add all necessary relations for new tables
- Update test fixtures with new required scoring fields