Session 7j: Soccer intelligence - 9 leagues, 11 signals, 6 traps, poller, prefetch, 131 new tests (1173 total)

This commit is contained in:
Kev
2026-06-10 14:50:13 -04:00
parent b9084408bf
commit ad5ea8d5a8
28 changed files with 3175 additions and 49 deletions
+14
View File
@@ -3,6 +3,7 @@ const { getAbbreviation } = require('./teamMap');
const ALLOWED_BOOKS = new Set(['draftkings', 'fanduel', 'betmgm', 'caesars', 'fanatics', 'bet365', 'hardrockbet', 'pointsbet', 'betrivers']);
const MARKET_MAP = {
// NBA / WNBA props
player_points: 'points',
player_rebounds: 'rebounds',
player_assists: 'assists',
@@ -11,6 +12,19 @@ const MARKET_MAP = {
player_steals: 'steals',
player_points_rebounds_assists: 'pra',
player_turnovers: 'turnovers',
// Soccer props — World Cup 2026 + permanent league support.
// odds-api keys verified against soccer_fifa_world_cup market list.
// 'assists' is shared with NBA — sport context discriminates downstream.
player_goals: 'goals',
player_shots_on_target: 'shots_on_target',
player_shots: 'shots',
player_tackles: 'tackles',
player_cards: 'cards',
player_corners: 'corners',
player_saves: 'saves',
player_goals_conceded: 'goals_conceded',
player_passes: 'passes',
team_clean_sheet: 'clean_sheet',
};
function normalizeProps(eventsWithOdds) {