This commit is contained in:
Trey t
2026-01-19 22:52:42 -06:00
parent a8b0491571
commit 6cddf601e3
15 changed files with 554 additions and 296 deletions

View File

@@ -29,3 +29,26 @@ read docs/TEST_PLAN.md in full
Do not write code until this summary is complete.
```
# Claude Code “Decision OS” — Usage Guide
This guide explains **how to actually use** your Claude Code command set in real-world product and engineering work.
Its written for **shipping software**, not prompt theory.
If you follow this process, you will:
- Catch bad assumptions early
- Avoid rework
- Get clearer designs, safer rollouts, and better tests
- Stop Claude from jumping straight to mediocre solutions
---
## Core Mental Model (Read Once)
Every command enforces the same lifecycle:
1. **Phase 1 — Interview (Questions Only)**
Claude asks clarifying questions. No code. No designs. No solutions.
2. **START Gate**
You explicitly unlock execution by typing:

View File

@@ -16,7 +16,8 @@
"Bash(ls:*)",
"Bash(xargs basename:*)",
"Bash(python -m sportstime_parser:*)",
"Bash(python -m py_compile:*)"
"Bash(python -m py_compile:*)",
"WebFetch(domain:en.wikipedia.org)"
]
}
}

View File

@@ -92,14 +92,15 @@ class Game:
utc_dt = local_dt.astimezone(ZoneInfo("UTC"))
# Format season as string (e.g., 2025 -> "2025-26" for NBA/NHL, "2025" for MLB)
if self.sport in ("nba", "nhl"):
sport_lower = self.sport.lower()
if sport_lower in ("nba", "nhl"):
season_str = f"{self.season}-{str(self.season + 1)[-2:]}"
else:
season_str = str(self.season)
return {
"canonical_id": self.id,
"sport": self.sport,
"sport": self.sport.upper(), # iOS Sport enum expects uppercase (e.g., "NFL")
"season": season_str,
"game_datetime_utc": utc_dt.strftime("%Y-%m-%dT%H:%M:%SZ"),
"home_team_canonical_id": self.home_team_id,

View File

@@ -78,7 +78,7 @@ class Stadium:
"latitude": self.latitude,
"longitude": self.longitude,
"capacity": self.capacity if self.capacity is not None else 0,
"sport": self.sport,
"sport": self.sport.upper(), # iOS Sport enum expects uppercase (e.g., "NFL")
"primary_team_abbrevs": primary_team_abbrevs or [],
"year_opened": self.opened_year,
}

View File

@@ -64,7 +64,7 @@ class Team:
"canonical_id": self.id,
"name": self.name,
"abbreviation": self.abbreviation,
"sport": self.sport,
"sport": self.sport.upper(), # iOS Sport enum expects uppercase (e.g., "NFL")
"city": self.city,
"stadium_canonical_id": self.stadium_id or "",
"conference_id": self.conference,

View File

@@ -111,6 +111,30 @@ STADIUM_MAPPINGS: dict[str, dict[str, StadiumInfo]] = {
"stadium_mlb_globe_life_field": StadiumInfo("stadium_mlb_globe_life_field", "Globe Life Field", "Arlington", "TX", "USA", "mlb", 32.7473, -97.0845),
"stadium_mlb_rogers_centre": StadiumInfo("stadium_mlb_rogers_centre", "Rogers Centre", "Toronto", "ON", "Canada", "mlb", 43.6414, -79.3894),
"stadium_mlb_nationals_park": StadiumInfo("stadium_mlb_nationals_park", "Nationals Park", "Washington", "DC", "USA", "mlb", 38.8730, -77.0074),
# Spring Training - Cactus League (Arizona)
"stadium_mlb_spring_salt_river_fields": StadiumInfo("stadium_mlb_spring_salt_river_fields", "Salt River Fields at Talking Stick", "Scottsdale", "AZ", "USA", "mlb", 33.5412, -111.8847, "America/Phoenix"),
"stadium_mlb_spring_sloan_park": StadiumInfo("stadium_mlb_spring_sloan_park", "Sloan Park", "Mesa", "AZ", "USA", "mlb", 33.4312, -111.8821, "America/Phoenix"),
"stadium_mlb_spring_hohokam_stadium": StadiumInfo("stadium_mlb_spring_hohokam_stadium", "Hohokam Stadium", "Mesa", "AZ", "USA", "mlb", 33.4385, -111.8295, "America/Phoenix"),
"stadium_mlb_spring_camelback_ranch": StadiumInfo("stadium_mlb_spring_camelback_ranch", "Camelback Ranch", "Glendale", "AZ", "USA", "mlb", 33.509, -112.272, "America/Phoenix"),
"stadium_mlb_spring_goodyear_ballpark": StadiumInfo("stadium_mlb_spring_goodyear_ballpark", "Goodyear Ballpark", "Goodyear", "AZ", "USA", "mlb", 33.4286, -112.3908, "America/Phoenix"),
"stadium_mlb_spring_tempe_diablo_stadium": StadiumInfo("stadium_mlb_spring_tempe_diablo_stadium", "Tempe Diablo Stadium", "Tempe", "AZ", "USA", "mlb", 33.4003, -111.9685, "America/Phoenix"),
"stadium_mlb_spring_scottsdale_stadium": StadiumInfo("stadium_mlb_spring_scottsdale_stadium", "Scottsdale Stadium", "Scottsdale", "AZ", "USA", "mlb", 33.4881, -111.9210, "America/Phoenix"),
"stadium_mlb_spring_american_family_fields": StadiumInfo("stadium_mlb_spring_american_family_fields", "American Family Fields of Phoenix", "Phoenix", "AZ", "USA", "mlb", 33.4916, -112.1733, "America/Phoenix"),
"stadium_mlb_spring_peoria_sports_complex": StadiumInfo("stadium_mlb_spring_peoria_sports_complex", "Peoria Sports Complex", "Peoria", "AZ", "USA", "mlb", 33.6224, -112.2274, "America/Phoenix"),
"stadium_mlb_spring_surprise_stadium": StadiumInfo("stadium_mlb_spring_surprise_stadium", "Surprise Stadium", "Surprise", "AZ", "USA", "mlb", 33.6306, -112.3332, "America/Phoenix"),
# Spring Training - Grapefruit League (Florida)
"stadium_mlb_spring_jetblue_park": StadiumInfo("stadium_mlb_spring_jetblue_park", "JetBlue Park", "Fort Myers", "FL", "USA", "mlb", 26.5511, -81.7620),
"stadium_mlb_spring_roger_dean_stadium": StadiumInfo("stadium_mlb_spring_roger_dean_stadium", "Roger Dean Chevrolet Stadium", "Jupiter", "FL", "USA", "mlb", 26.8910, -80.1166),
"stadium_mlb_spring_ed_smith_stadium": StadiumInfo("stadium_mlb_spring_ed_smith_stadium", "Ed Smith Stadium", "Sarasota", "FL", "USA", "mlb", 27.3482, -82.5176),
"stadium_mlb_spring_steinbrenner_field": StadiumInfo("stadium_mlb_spring_steinbrenner_field", "George M. Steinbrenner Field", "Tampa", "FL", "USA", "mlb", 27.9748, -82.5040),
"stadium_mlb_spring_td_ballpark": StadiumInfo("stadium_mlb_spring_td_ballpark", "TD Ballpark", "Dunedin", "FL", "USA", "mlb", 28.0039, -82.7867),
"stadium_mlb_spring_cooltoday_park": StadiumInfo("stadium_mlb_spring_cooltoday_park", "CoolToday Park", "North Port", "FL", "USA", "mlb", 27.0219, -82.2358),
"stadium_mlb_spring_hammond_stadium": StadiumInfo("stadium_mlb_spring_hammond_stadium", "Hammond Stadium", "Fort Myers", "FL", "USA", "mlb", 26.5363, -81.8385),
"stadium_mlb_spring_clover_park": StadiumInfo("stadium_mlb_spring_clover_park", "Clover Park", "Port St. Lucie", "FL", "USA", "mlb", 27.2900, -80.4100),
"stadium_mlb_spring_baycare_ballpark": StadiumInfo("stadium_mlb_spring_baycare_ballpark", "BayCare Ballpark", "Clearwater", "FL", "USA", "mlb", 27.9697, -82.7257),
"stadium_mlb_spring_lecom_park": StadiumInfo("stadium_mlb_spring_lecom_park", "LECOM Park", "Bradenton", "FL", "USA", "mlb", 27.4939, -82.5753),
"stadium_mlb_spring_charlotte_sports_park": StadiumInfo("stadium_mlb_spring_charlotte_sports_park", "Charlotte Sports Park", "Port Charlotte", "FL", "USA", "mlb", 26.9992, -82.1817),
"stadium_mlb_spring_cacti_park": StadiumInfo("stadium_mlb_spring_cacti_park", "CACTI Park of the Palm Beaches", "West Palm Beach", "FL", "USA", "mlb", 26.7697, -80.1014),
},
"nfl": {
"stadium_nfl_state_farm_stadium": StadiumInfo("stadium_nfl_state_farm_stadium", "State Farm Stadium", "Glendale", "AZ", "USA", "nfl", 33.5276, -112.2626),

View File

@@ -34,239 +34,239 @@ class TeamResolveResult:
# Hardcoded team mappings for each sport
# Format: {sport: {abbreviation: (canonical_id, full_name, city)}}
TEAM_MAPPINGS: dict[str, dict[str, tuple[str, str, str]]] = {
# Format: {sport: {abbreviation: (canonical_id, full_name, city, stadium_id)}}
TEAM_MAPPINGS: dict[str, dict[str, tuple[str, str, str, str]]] = {
"nba": {
"ATL": ("team_nba_atl", "Atlanta Hawks", "Atlanta"),
"BOS": ("team_nba_bos", "Boston Celtics", "Boston"),
"BKN": ("team_nba_brk", "Brooklyn Nets", "Brooklyn"),
"BRK": ("team_nba_brk", "Brooklyn Nets", "Brooklyn"),
"CHA": ("team_nba_cho", "Charlotte Hornets", "Charlotte"),
"CHO": ("team_nba_cho", "Charlotte Hornets", "Charlotte"),
"CHI": ("team_nba_chi", "Chicago Bulls", "Chicago"),
"CLE": ("team_nba_cle", "Cleveland Cavaliers", "Cleveland"),
"DAL": ("team_nba_dal", "Dallas Mavericks", "Dallas"),
"DEN": ("team_nba_den", "Denver Nuggets", "Denver"),
"DET": ("team_nba_det", "Detroit Pistons", "Detroit"),
"GSW": ("team_nba_gsw", "Golden State Warriors", "Golden State"),
"GS": ("team_nba_gsw", "Golden State Warriors", "Golden State"),
"HOU": ("team_nba_hou", "Houston Rockets", "Houston"),
"IND": ("team_nba_ind", "Indiana Pacers", "Indiana"),
"LAC": ("team_nba_lac", "Los Angeles Clippers", "Los Angeles"),
"LAL": ("team_nba_lal", "Los Angeles Lakers", "Los Angeles"),
"MEM": ("team_nba_mem", "Memphis Grizzlies", "Memphis"),
"MIA": ("team_nba_mia", "Miami Heat", "Miami"),
"MIL": ("team_nba_mil", "Milwaukee Bucks", "Milwaukee"),
"MIN": ("team_nba_min", "Minnesota Timberwolves", "Minnesota"),
"NOP": ("team_nba_nop", "New Orleans Pelicans", "New Orleans"),
"NO": ("team_nba_nop", "New Orleans Pelicans", "New Orleans"),
"NYK": ("team_nba_nyk", "New York Knicks", "New York"),
"NY": ("team_nba_nyk", "New York Knicks", "New York"),
"OKC": ("team_nba_okc", "Oklahoma City Thunder", "Oklahoma City"),
"ORL": ("team_nba_orl", "Orlando Magic", "Orlando"),
"PHI": ("team_nba_phi", "Philadelphia 76ers", "Philadelphia"),
"PHX": ("team_nba_phx", "Phoenix Suns", "Phoenix"),
"PHO": ("team_nba_phx", "Phoenix Suns", "Phoenix"),
"POR": ("team_nba_por", "Portland Trail Blazers", "Portland"),
"SAC": ("team_nba_sac", "Sacramento Kings", "Sacramento"),
"SAS": ("team_nba_sas", "San Antonio Spurs", "San Antonio"),
"SA": ("team_nba_sas", "San Antonio Spurs", "San Antonio"),
"TOR": ("team_nba_tor", "Toronto Raptors", "Toronto"),
"UTA": ("team_nba_uta", "Utah Jazz", "Utah"),
"WAS": ("team_nba_was", "Washington Wizards", "Washington"),
"WSH": ("team_nba_was", "Washington Wizards", "Washington"),
"ATL": ("team_nba_atl", "Atlanta Hawks", "Atlanta", "stadium_nba_state_farm_arena"),
"BOS": ("team_nba_bos", "Boston Celtics", "Boston", "stadium_nba_td_garden"),
"BKN": ("team_nba_brk", "Brooklyn Nets", "Brooklyn", "stadium_nba_barclays_center"),
"BRK": ("team_nba_brk", "Brooklyn Nets", "Brooklyn", "stadium_nba_barclays_center"),
"CHA": ("team_nba_cho", "Charlotte Hornets", "Charlotte", "stadium_nba_spectrum_center"),
"CHO": ("team_nba_cho", "Charlotte Hornets", "Charlotte", "stadium_nba_spectrum_center"),
"CHI": ("team_nba_chi", "Chicago Bulls", "Chicago", "stadium_nba_united_center"),
"CLE": ("team_nba_cle", "Cleveland Cavaliers", "Cleveland", "stadium_nba_rocket_mortgage_fieldhouse"),
"DAL": ("team_nba_dal", "Dallas Mavericks", "Dallas", "stadium_nba_american_airlines_center"),
"DEN": ("team_nba_den", "Denver Nuggets", "Denver", "stadium_nba_ball_arena"),
"DET": ("team_nba_det", "Detroit Pistons", "Detroit", "stadium_nba_little_caesars_arena"),
"GSW": ("team_nba_gsw", "Golden State Warriors", "Golden State", "stadium_nba_chase_center"),
"GS": ("team_nba_gsw", "Golden State Warriors", "Golden State", "stadium_nba_chase_center"),
"HOU": ("team_nba_hou", "Houston Rockets", "Houston", "stadium_nba_toyota_center"),
"IND": ("team_nba_ind", "Indiana Pacers", "Indiana", "stadium_nba_gainbridge_fieldhouse"),
"LAC": ("team_nba_lac", "Los Angeles Clippers", "Los Angeles", "stadium_nba_intuit_dome"),
"LAL": ("team_nba_lal", "Los Angeles Lakers", "Los Angeles", "stadium_nba_cryptocom_arena"),
"MEM": ("team_nba_mem", "Memphis Grizzlies", "Memphis", "stadium_nba_fedexforum"),
"MIA": ("team_nba_mia", "Miami Heat", "Miami", "stadium_nba_kaseya_center"),
"MIL": ("team_nba_mil", "Milwaukee Bucks", "Milwaukee", "stadium_nba_fiserv_forum"),
"MIN": ("team_nba_min", "Minnesota Timberwolves", "Minnesota", "stadium_nba_target_center"),
"NOP": ("team_nba_nop", "New Orleans Pelicans", "New Orleans", "stadium_nba_smoothie_king_center"),
"NO": ("team_nba_nop", "New Orleans Pelicans", "New Orleans", "stadium_nba_smoothie_king_center"),
"NYK": ("team_nba_nyk", "New York Knicks", "New York", "stadium_nba_madison_square_garden"),
"NY": ("team_nba_nyk", "New York Knicks", "New York", "stadium_nba_madison_square_garden"),
"OKC": ("team_nba_okc", "Oklahoma City Thunder", "Oklahoma City", "stadium_nba_paycom_center"),
"ORL": ("team_nba_orl", "Orlando Magic", "Orlando", "stadium_nba_kia_center"),
"PHI": ("team_nba_phi", "Philadelphia 76ers", "Philadelphia", "stadium_nba_wells_fargo_center"),
"PHX": ("team_nba_phx", "Phoenix Suns", "Phoenix", "stadium_nba_footprint_center"),
"PHO": ("team_nba_phx", "Phoenix Suns", "Phoenix", "stadium_nba_footprint_center"),
"POR": ("team_nba_por", "Portland Trail Blazers", "Portland", "stadium_nba_moda_center"),
"SAC": ("team_nba_sac", "Sacramento Kings", "Sacramento", "stadium_nba_golden_1_center"),
"SAS": ("team_nba_sas", "San Antonio Spurs", "San Antonio", "stadium_nba_frost_bank_center"),
"SA": ("team_nba_sas", "San Antonio Spurs", "San Antonio", "stadium_nba_frost_bank_center"),
"TOR": ("team_nba_tor", "Toronto Raptors", "Toronto", "stadium_nba_scotiabank_arena"),
"UTA": ("team_nba_uta", "Utah Jazz", "Utah", "stadium_nba_delta_center"),
"WAS": ("team_nba_was", "Washington Wizards", "Washington", "stadium_nba_capital_one_arena"),
"WSH": ("team_nba_was", "Washington Wizards", "Washington", "stadium_nba_capital_one_arena"),
},
"mlb": {
"ARI": ("team_mlb_ari", "Arizona Diamondbacks", "Arizona"),
"ATL": ("team_mlb_atl", "Atlanta Braves", "Atlanta"),
"BAL": ("team_mlb_bal", "Baltimore Orioles", "Baltimore"),
"BOS": ("team_mlb_bos", "Boston Red Sox", "Boston"),
"CHC": ("team_mlb_chc", "Chicago Cubs", "Chicago"),
"CHW": ("team_mlb_chw", "Chicago White Sox", "Chicago"),
"CWS": ("team_mlb_chw", "Chicago White Sox", "Chicago"),
"CIN": ("team_mlb_cin", "Cincinnati Reds", "Cincinnati"),
"CLE": ("team_mlb_cle", "Cleveland Guardians", "Cleveland"),
"COL": ("team_mlb_col", "Colorado Rockies", "Colorado"),
"DET": ("team_mlb_det", "Detroit Tigers", "Detroit"),
"HOU": ("team_mlb_hou", "Houston Astros", "Houston"),
"KC": ("team_mlb_kc", "Kansas City Royals", "Kansas City"),
"KCR": ("team_mlb_kc", "Kansas City Royals", "Kansas City"),
"LAA": ("team_mlb_laa", "Los Angeles Angels", "Los Angeles"),
"ANA": ("team_mlb_laa", "Los Angeles Angels", "Anaheim"),
"LAD": ("team_mlb_lad", "Los Angeles Dodgers", "Los Angeles"),
"MIA": ("team_mlb_mia", "Miami Marlins", "Miami"),
"FLA": ("team_mlb_mia", "Miami Marlins", "Florida"),
"MIL": ("team_mlb_mil", "Milwaukee Brewers", "Milwaukee"),
"MIN": ("team_mlb_min", "Minnesota Twins", "Minnesota"),
"NYM": ("team_mlb_nym", "New York Mets", "New York"),
"NYY": ("team_mlb_nyy", "New York Yankees", "New York"),
"OAK": ("team_mlb_oak", "Oakland Athletics", "Oakland"),
"PHI": ("team_mlb_phi", "Philadelphia Phillies", "Philadelphia"),
"PIT": ("team_mlb_pit", "Pittsburgh Pirates", "Pittsburgh"),
"SD": ("team_mlb_sd", "San Diego Padres", "San Diego"),
"SDP": ("team_mlb_sd", "San Diego Padres", "San Diego"),
"SF": ("team_mlb_sf", "San Francisco Giants", "San Francisco"),
"SFG": ("team_mlb_sf", "San Francisco Giants", "San Francisco"),
"SEA": ("team_mlb_sea", "Seattle Mariners", "Seattle"),
"STL": ("team_mlb_stl", "St. Louis Cardinals", "St. Louis"),
"TB": ("team_mlb_tbr", "Tampa Bay Rays", "Tampa Bay"),
"TBR": ("team_mlb_tbr", "Tampa Bay Rays", "Tampa Bay"),
"TEX": ("team_mlb_tex", "Texas Rangers", "Texas"),
"TOR": ("team_mlb_tor", "Toronto Blue Jays", "Toronto"),
"WSN": ("team_mlb_wsn", "Washington Nationals", "Washington"),
"WAS": ("team_mlb_wsn", "Washington Nationals", "Washington"),
"ARI": ("team_mlb_ari", "Arizona Diamondbacks", "Arizona", "stadium_mlb_chase_field"),
"ATL": ("team_mlb_atl", "Atlanta Braves", "Atlanta", "stadium_mlb_truist_park"),
"BAL": ("team_mlb_bal", "Baltimore Orioles", "Baltimore", "stadium_mlb_oriole_park_at_camden_yards"),
"BOS": ("team_mlb_bos", "Boston Red Sox", "Boston", "stadium_mlb_fenway_park"),
"CHC": ("team_mlb_chc", "Chicago Cubs", "Chicago", "stadium_mlb_wrigley_field"),
"CHW": ("team_mlb_chw", "Chicago White Sox", "Chicago", "stadium_mlb_guaranteed_rate_field"),
"CWS": ("team_mlb_chw", "Chicago White Sox", "Chicago", "stadium_mlb_guaranteed_rate_field"),
"CIN": ("team_mlb_cin", "Cincinnati Reds", "Cincinnati", "stadium_mlb_great_american_ball_park"),
"CLE": ("team_mlb_cle", "Cleveland Guardians", "Cleveland", "stadium_mlb_progressive_field"),
"COL": ("team_mlb_col", "Colorado Rockies", "Colorado", "stadium_mlb_coors_field"),
"DET": ("team_mlb_det", "Detroit Tigers", "Detroit", "stadium_mlb_comerica_park"),
"HOU": ("team_mlb_hou", "Houston Astros", "Houston", "stadium_mlb_minute_maid_park"),
"KC": ("team_mlb_kc", "Kansas City Royals", "Kansas City", "stadium_mlb_kauffman_stadium"),
"KCR": ("team_mlb_kc", "Kansas City Royals", "Kansas City", "stadium_mlb_kauffman_stadium"),
"LAA": ("team_mlb_laa", "Los Angeles Angels", "Los Angeles", "stadium_mlb_angel_stadium"),
"ANA": ("team_mlb_laa", "Los Angeles Angels", "Anaheim", "stadium_mlb_angel_stadium"),
"LAD": ("team_mlb_lad", "Los Angeles Dodgers", "Los Angeles", "stadium_mlb_dodger_stadium"),
"MIA": ("team_mlb_mia", "Miami Marlins", "Miami", "stadium_mlb_loandepot_park"),
"FLA": ("team_mlb_mia", "Miami Marlins", "Florida", "stadium_mlb_loandepot_park"),
"MIL": ("team_mlb_mil", "Milwaukee Brewers", "Milwaukee", "stadium_mlb_american_family_field"),
"MIN": ("team_mlb_min", "Minnesota Twins", "Minnesota", "stadium_mlb_target_field"),
"NYM": ("team_mlb_nym", "New York Mets", "New York", "stadium_mlb_citi_field"),
"NYY": ("team_mlb_nyy", "New York Yankees", "New York", "stadium_mlb_yankee_stadium"),
"OAK": ("team_mlb_oak", "Oakland Athletics", "Oakland", "stadium_mlb_sutter_health_park"),
"PHI": ("team_mlb_phi", "Philadelphia Phillies", "Philadelphia", "stadium_mlb_citizens_bank_park"),
"PIT": ("team_mlb_pit", "Pittsburgh Pirates", "Pittsburgh", "stadium_mlb_pnc_park"),
"SD": ("team_mlb_sd", "San Diego Padres", "San Diego", "stadium_mlb_petco_park"),
"SDP": ("team_mlb_sd", "San Diego Padres", "San Diego", "stadium_mlb_petco_park"),
"SF": ("team_mlb_sf", "San Francisco Giants", "San Francisco", "stadium_mlb_oracle_park"),
"SFG": ("team_mlb_sf", "San Francisco Giants", "San Francisco", "stadium_mlb_oracle_park"),
"SEA": ("team_mlb_sea", "Seattle Mariners", "Seattle", "stadium_mlb_tmobile_park"),
"STL": ("team_mlb_stl", "St. Louis Cardinals", "St. Louis", "stadium_mlb_busch_stadium"),
"TB": ("team_mlb_tbr", "Tampa Bay Rays", "Tampa Bay", "stadium_mlb_tropicana_field"),
"TBR": ("team_mlb_tbr", "Tampa Bay Rays", "Tampa Bay", "stadium_mlb_tropicana_field"),
"TEX": ("team_mlb_tex", "Texas Rangers", "Texas", "stadium_mlb_globe_life_field"),
"TOR": ("team_mlb_tor", "Toronto Blue Jays", "Toronto", "stadium_mlb_rogers_centre"),
"WSN": ("team_mlb_wsn", "Washington Nationals", "Washington", "stadium_mlb_nationals_park"),
"WAS": ("team_mlb_wsn", "Washington Nationals", "Washington", "stadium_mlb_nationals_park"),
},
"nfl": {
"ARI": ("team_nfl_ari", "Arizona Cardinals", "Arizona"),
"ATL": ("team_nfl_atl", "Atlanta Falcons", "Atlanta"),
"BAL": ("team_nfl_bal", "Baltimore Ravens", "Baltimore"),
"BUF": ("team_nfl_buf", "Buffalo Bills", "Buffalo"),
"CAR": ("team_nfl_car", "Carolina Panthers", "Carolina"),
"CHI": ("team_nfl_chi", "Chicago Bears", "Chicago"),
"CIN": ("team_nfl_cin", "Cincinnati Bengals", "Cincinnati"),
"CLE": ("team_nfl_cle", "Cleveland Browns", "Cleveland"),
"DAL": ("team_nfl_dal", "Dallas Cowboys", "Dallas"),
"DEN": ("team_nfl_den", "Denver Broncos", "Denver"),
"DET": ("team_nfl_det", "Detroit Lions", "Detroit"),
"GB": ("team_nfl_gb", "Green Bay Packers", "Green Bay"),
"GNB": ("team_nfl_gb", "Green Bay Packers", "Green Bay"),
"HOU": ("team_nfl_hou", "Houston Texans", "Houston"),
"IND": ("team_nfl_ind", "Indianapolis Colts", "Indianapolis"),
"JAX": ("team_nfl_jax", "Jacksonville Jaguars", "Jacksonville"),
"JAC": ("team_nfl_jax", "Jacksonville Jaguars", "Jacksonville"),
"KC": ("team_nfl_kc", "Kansas City Chiefs", "Kansas City"),
"KAN": ("team_nfl_kc", "Kansas City Chiefs", "Kansas City"),
"LV": ("team_nfl_lv", "Las Vegas Raiders", "Las Vegas"),
"LAC": ("team_nfl_lac", "Los Angeles Chargers", "Los Angeles"),
"LAR": ("team_nfl_lar", "Los Angeles Rams", "Los Angeles"),
"MIA": ("team_nfl_mia", "Miami Dolphins", "Miami"),
"MIN": ("team_nfl_min", "Minnesota Vikings", "Minnesota"),
"NE": ("team_nfl_ne", "New England Patriots", "New England"),
"NWE": ("team_nfl_ne", "New England Patriots", "New England"),
"NO": ("team_nfl_no", "New Orleans Saints", "New Orleans"),
"NOR": ("team_nfl_no", "New Orleans Saints", "New Orleans"),
"NYG": ("team_nfl_nyg", "New York Giants", "New York"),
"NYJ": ("team_nfl_nyj", "New York Jets", "New York"),
"PHI": ("team_nfl_phi", "Philadelphia Eagles", "Philadelphia"),
"PIT": ("team_nfl_pit", "Pittsburgh Steelers", "Pittsburgh"),
"SF": ("team_nfl_sf", "San Francisco 49ers", "San Francisco"),
"SFO": ("team_nfl_sf", "San Francisco 49ers", "San Francisco"),
"SEA": ("team_nfl_sea", "Seattle Seahawks", "Seattle"),
"TB": ("team_nfl_tb", "Tampa Bay Buccaneers", "Tampa Bay"),
"TAM": ("team_nfl_tb", "Tampa Bay Buccaneers", "Tampa Bay"),
"TEN": ("team_nfl_ten", "Tennessee Titans", "Tennessee"),
"WAS": ("team_nfl_was", "Washington Commanders", "Washington"),
"WSH": ("team_nfl_was", "Washington Commanders", "Washington"),
"ARI": ("team_nfl_ari", "Arizona Cardinals", "Arizona", "stadium_nfl_state_farm_stadium"),
"ATL": ("team_nfl_atl", "Atlanta Falcons", "Atlanta", "stadium_nfl_mercedes_benz_stadium"),
"BAL": ("team_nfl_bal", "Baltimore Ravens", "Baltimore", "stadium_nfl_mandt_bank_stadium"),
"BUF": ("team_nfl_buf", "Buffalo Bills", "Buffalo", "stadium_nfl_highmark_stadium"),
"CAR": ("team_nfl_car", "Carolina Panthers", "Carolina", "stadium_nfl_bank_of_america_stadium"),
"CHI": ("team_nfl_chi", "Chicago Bears", "Chicago", "stadium_nfl_soldier_field"),
"CIN": ("team_nfl_cin", "Cincinnati Bengals", "Cincinnati", "stadium_nfl_paycor_stadium"),
"CLE": ("team_nfl_cle", "Cleveland Browns", "Cleveland", "stadium_nfl_huntington_bank_field"),
"DAL": ("team_nfl_dal", "Dallas Cowboys", "Dallas", "stadium_nfl_att_stadium"),
"DEN": ("team_nfl_den", "Denver Broncos", "Denver", "stadium_nfl_empower_field"),
"DET": ("team_nfl_det", "Detroit Lions", "Detroit", "stadium_nfl_ford_field"),
"GB": ("team_nfl_gb", "Green Bay Packers", "Green Bay", "stadium_nfl_lambeau_field"),
"GNB": ("team_nfl_gb", "Green Bay Packers", "Green Bay", "stadium_nfl_lambeau_field"),
"HOU": ("team_nfl_hou", "Houston Texans", "Houston", "stadium_nfl_nrg_stadium"),
"IND": ("team_nfl_ind", "Indianapolis Colts", "Indianapolis", "stadium_nfl_lucas_oil_stadium"),
"JAX": ("team_nfl_jax", "Jacksonville Jaguars", "Jacksonville", "stadium_nfl_everbank_stadium"),
"JAC": ("team_nfl_jax", "Jacksonville Jaguars", "Jacksonville", "stadium_nfl_everbank_stadium"),
"KC": ("team_nfl_kc", "Kansas City Chiefs", "Kansas City", "stadium_nfl_arrowhead_stadium"),
"KAN": ("team_nfl_kc", "Kansas City Chiefs", "Kansas City", "stadium_nfl_arrowhead_stadium"),
"LV": ("team_nfl_lv", "Las Vegas Raiders", "Las Vegas", "stadium_nfl_allegiant_stadium"),
"LAC": ("team_nfl_lac", "Los Angeles Chargers", "Los Angeles", "stadium_nfl_sofi_stadium"),
"LAR": ("team_nfl_lar", "Los Angeles Rams", "Los Angeles", "stadium_nfl_sofi_stadium"),
"MIA": ("team_nfl_mia", "Miami Dolphins", "Miami", "stadium_nfl_hard_rock_stadium"),
"MIN": ("team_nfl_min", "Minnesota Vikings", "Minnesota", "stadium_nfl_us_bank_stadium"),
"NE": ("team_nfl_ne", "New England Patriots", "New England", "stadium_nfl_gillette_stadium"),
"NWE": ("team_nfl_ne", "New England Patriots", "New England", "stadium_nfl_gillette_stadium"),
"NO": ("team_nfl_no", "New Orleans Saints", "New Orleans", "stadium_nfl_caesars_superdome"),
"NOR": ("team_nfl_no", "New Orleans Saints", "New Orleans", "stadium_nfl_caesars_superdome"),
"NYG": ("team_nfl_nyg", "New York Giants", "New York", "stadium_nfl_metlife_stadium"),
"NYJ": ("team_nfl_nyj", "New York Jets", "New York", "stadium_nfl_metlife_stadium"),
"PHI": ("team_nfl_phi", "Philadelphia Eagles", "Philadelphia", "stadium_nfl_lincoln_financial_field"),
"PIT": ("team_nfl_pit", "Pittsburgh Steelers", "Pittsburgh", "stadium_nfl_acrisure_stadium"),
"SF": ("team_nfl_sf", "San Francisco 49ers", "San Francisco", "stadium_nfl_levis_stadium"),
"SFO": ("team_nfl_sf", "San Francisco 49ers", "San Francisco", "stadium_nfl_levis_stadium"),
"SEA": ("team_nfl_sea", "Seattle Seahawks", "Seattle", "stadium_nfl_lumen_field"),
"TB": ("team_nfl_tb", "Tampa Bay Buccaneers", "Tampa Bay", "stadium_nfl_raymond_james_stadium"),
"TAM": ("team_nfl_tb", "Tampa Bay Buccaneers", "Tampa Bay", "stadium_nfl_raymond_james_stadium"),
"TEN": ("team_nfl_ten", "Tennessee Titans", "Tennessee", "stadium_nfl_nissan_stadium"),
"WAS": ("team_nfl_was", "Washington Commanders", "Washington", "stadium_nfl_northwest_stadium"),
"WSH": ("team_nfl_was", "Washington Commanders", "Washington", "stadium_nfl_northwest_stadium"),
},
"nhl": {
"ANA": ("team_nhl_ana", "Anaheim Ducks", "Anaheim"),
"ARI": ("team_nhl_ari", "Utah Hockey Club", "Utah"), # Moved 2024
"UTA": ("team_nhl_ari", "Utah Hockey Club", "Utah"),
"BOS": ("team_nhl_bos", "Boston Bruins", "Boston"),
"BUF": ("team_nhl_buf", "Buffalo Sabres", "Buffalo"),
"CGY": ("team_nhl_cgy", "Calgary Flames", "Calgary"),
"CAR": ("team_nhl_car", "Carolina Hurricanes", "Carolina"),
"CHI": ("team_nhl_chi", "Chicago Blackhawks", "Chicago"),
"COL": ("team_nhl_col", "Colorado Avalanche", "Colorado"),
"CBJ": ("team_nhl_cbj", "Columbus Blue Jackets", "Columbus"),
"DAL": ("team_nhl_dal", "Dallas Stars", "Dallas"),
"DET": ("team_nhl_det", "Detroit Red Wings", "Detroit"),
"EDM": ("team_nhl_edm", "Edmonton Oilers", "Edmonton"),
"FLA": ("team_nhl_fla", "Florida Panthers", "Florida"),
"LA": ("team_nhl_la", "Los Angeles Kings", "Los Angeles"),
"LAK": ("team_nhl_la", "Los Angeles Kings", "Los Angeles"),
"MIN": ("team_nhl_min", "Minnesota Wild", "Minnesota"),
"MTL": ("team_nhl_mtl", "Montreal Canadiens", "Montreal"),
"MON": ("team_nhl_mtl", "Montreal Canadiens", "Montreal"),
"NSH": ("team_nhl_nsh", "Nashville Predators", "Nashville"),
"NAS": ("team_nhl_nsh", "Nashville Predators", "Nashville"),
"NJ": ("team_nhl_njd", "New Jersey Devils", "New Jersey"),
"NJD": ("team_nhl_njd", "New Jersey Devils", "New Jersey"),
"NYI": ("team_nhl_nyi", "New York Islanders", "New York"),
"NYR": ("team_nhl_nyr", "New York Rangers", "New York"),
"OTT": ("team_nhl_ott", "Ottawa Senators", "Ottawa"),
"PHI": ("team_nhl_phi", "Philadelphia Flyers", "Philadelphia"),
"PIT": ("team_nhl_pit", "Pittsburgh Penguins", "Pittsburgh"),
"SJ": ("team_nhl_sj", "San Jose Sharks", "San Jose"),
"SJS": ("team_nhl_sj", "San Jose Sharks", "San Jose"),
"SEA": ("team_nhl_sea", "Seattle Kraken", "Seattle"),
"STL": ("team_nhl_stl", "St. Louis Blues", "St. Louis"),
"TB": ("team_nhl_tb", "Tampa Bay Lightning", "Tampa Bay"),
"TBL": ("team_nhl_tb", "Tampa Bay Lightning", "Tampa Bay"),
"TOR": ("team_nhl_tor", "Toronto Maple Leafs", "Toronto"),
"VAN": ("team_nhl_van", "Vancouver Canucks", "Vancouver"),
"VGK": ("team_nhl_vgk", "Vegas Golden Knights", "Vegas"),
"VEG": ("team_nhl_vgk", "Vegas Golden Knights", "Vegas"),
"WAS": ("team_nhl_was", "Washington Capitals", "Washington"),
"WSH": ("team_nhl_was", "Washington Capitals", "Washington"),
"WPG": ("team_nhl_wpg", "Winnipeg Jets", "Winnipeg"),
"ANA": ("team_nhl_ana", "Anaheim Ducks", "Anaheim", "stadium_nhl_honda_center"),
"ARI": ("team_nhl_ari", "Utah Hockey Club", "Utah", "stadium_nhl_delta_center"), # Moved 2024
"UTA": ("team_nhl_ari", "Utah Hockey Club", "Utah", "stadium_nhl_delta_center"),
"BOS": ("team_nhl_bos", "Boston Bruins", "Boston", "stadium_nhl_td_garden"),
"BUF": ("team_nhl_buf", "Buffalo Sabres", "Buffalo", "stadium_nhl_keybank_center"),
"CGY": ("team_nhl_cgy", "Calgary Flames", "Calgary", "stadium_nhl_scotiabank_saddledome"),
"CAR": ("team_nhl_car", "Carolina Hurricanes", "Carolina", "stadium_nhl_pnc_arena"),
"CHI": ("team_nhl_chi", "Chicago Blackhawks", "Chicago", "stadium_nhl_united_center"),
"COL": ("team_nhl_col", "Colorado Avalanche", "Colorado", "stadium_nhl_ball_arena"),
"CBJ": ("team_nhl_cbj", "Columbus Blue Jackets", "Columbus", "stadium_nhl_nationwide_arena"),
"DAL": ("team_nhl_dal", "Dallas Stars", "Dallas", "stadium_nhl_american_airlines_center"),
"DET": ("team_nhl_det", "Detroit Red Wings", "Detroit", "stadium_nhl_little_caesars_arena"),
"EDM": ("team_nhl_edm", "Edmonton Oilers", "Edmonton", "stadium_nhl_rogers_place"),
"FLA": ("team_nhl_fla", "Florida Panthers", "Florida", "stadium_nhl_amerant_bank_arena"),
"LA": ("team_nhl_la", "Los Angeles Kings", "Los Angeles", "stadium_nhl_cryptocom_arena"),
"LAK": ("team_nhl_la", "Los Angeles Kings", "Los Angeles", "stadium_nhl_cryptocom_arena"),
"MIN": ("team_nhl_min", "Minnesota Wild", "Minnesota", "stadium_nhl_xcel_energy_center"),
"MTL": ("team_nhl_mtl", "Montreal Canadiens", "Montreal", "stadium_nhl_bell_centre"),
"MON": ("team_nhl_mtl", "Montreal Canadiens", "Montreal", "stadium_nhl_bell_centre"),
"NSH": ("team_nhl_nsh", "Nashville Predators", "Nashville", "stadium_nhl_bridgestone_arena"),
"NAS": ("team_nhl_nsh", "Nashville Predators", "Nashville", "stadium_nhl_bridgestone_arena"),
"NJ": ("team_nhl_njd", "New Jersey Devils", "New Jersey", "stadium_nhl_prudential_center"),
"NJD": ("team_nhl_njd", "New Jersey Devils", "New Jersey", "stadium_nhl_prudential_center"),
"NYI": ("team_nhl_nyi", "New York Islanders", "New York", "stadium_nhl_ubs_arena"),
"NYR": ("team_nhl_nyr", "New York Rangers", "New York", "stadium_nhl_madison_square_garden"),
"OTT": ("team_nhl_ott", "Ottawa Senators", "Ottawa", "stadium_nhl_canadian_tire_centre"),
"PHI": ("team_nhl_phi", "Philadelphia Flyers", "Philadelphia", "stadium_nhl_wells_fargo_center"),
"PIT": ("team_nhl_pit", "Pittsburgh Penguins", "Pittsburgh", "stadium_nhl_ppg_paints_arena"),
"SJ": ("team_nhl_sj", "San Jose Sharks", "San Jose", "stadium_nhl_sap_center"),
"SJS": ("team_nhl_sj", "San Jose Sharks", "San Jose", "stadium_nhl_sap_center"),
"SEA": ("team_nhl_sea", "Seattle Kraken", "Seattle", "stadium_nhl_climate_pledge_arena"),
"STL": ("team_nhl_stl", "St. Louis Blues", "St. Louis", "stadium_nhl_enterprise_center"),
"TB": ("team_nhl_tb", "Tampa Bay Lightning", "Tampa Bay", "stadium_nhl_amalie_arena"),
"TBL": ("team_nhl_tb", "Tampa Bay Lightning", "Tampa Bay", "stadium_nhl_amalie_arena"),
"TOR": ("team_nhl_tor", "Toronto Maple Leafs", "Toronto", "stadium_nhl_scotiabank_arena"),
"VAN": ("team_nhl_van", "Vancouver Canucks", "Vancouver", "stadium_nhl_rogers_arena"),
"VGK": ("team_nhl_vgk", "Vegas Golden Knights", "Vegas", "stadium_nhl_tmobile_arena"),
"VEG": ("team_nhl_vgk", "Vegas Golden Knights", "Vegas", "stadium_nhl_tmobile_arena"),
"WAS": ("team_nhl_was", "Washington Capitals", "Washington", "stadium_nhl_capital_one_arena"),
"WSH": ("team_nhl_was", "Washington Capitals", "Washington", "stadium_nhl_capital_one_arena"),
"WPG": ("team_nhl_wpg", "Winnipeg Jets", "Winnipeg", "stadium_nhl_canada_life_centre"),
},
"mls": {
"ATL": ("team_mls_atl", "Atlanta United", "Atlanta"),
"AUS": ("team_mls_aus", "Austin FC", "Austin"),
"CLT": ("team_mls_clt", "Charlotte FC", "Charlotte"),
"CHI": ("team_mls_chi", "Chicago Fire", "Chicago"),
"CIN": ("team_mls_cin", "FC Cincinnati", "Cincinnati"),
"COL": ("team_mls_col", "Colorado Rapids", "Colorado"),
"CLB": ("team_mls_clb", "Columbus Crew", "Columbus"),
"DAL": ("team_mls_dal", "FC Dallas", "Dallas"),
"DC": ("team_mls_dc", "D.C. United", "Washington"),
"HOU": ("team_mls_hou", "Houston Dynamo", "Houston"),
"LAG": ("team_mls_lag", "LA Galaxy", "Los Angeles"),
"LAFC": ("team_mls_lafc", "Los Angeles FC", "Los Angeles"),
"MIA": ("team_mls_mia", "Inter Miami", "Miami"),
"MIN": ("team_mls_min", "Minnesota United", "Minnesota"),
"MTL": ("team_mls_mtl", "CF Montreal", "Montreal"),
"NSH": ("team_mls_nsh", "Nashville SC", "Nashville"),
"NE": ("team_mls_ne", "New England Revolution", "New England"),
"NYC": ("team_mls_nyc", "New York City FC", "New York"),
"RB": ("team_mls_ny", "New York Red Bulls", "New York"),
"RBNY": ("team_mls_ny", "New York Red Bulls", "New York"),
"ORL": ("team_mls_orl", "Orlando City", "Orlando"),
"PHI": ("team_mls_phi", "Philadelphia Union", "Philadelphia"),
"POR": ("team_mls_por", "Portland Timbers", "Portland"),
"SLC": ("team_mls_slc", "Real Salt Lake", "Salt Lake"),
"RSL": ("team_mls_slc", "Real Salt Lake", "Salt Lake"),
"SJ": ("team_mls_sj", "San Jose Earthquakes", "San Jose"),
"SD": ("team_mls_sd", "San Diego FC", "San Diego"),
"SEA": ("team_mls_sea", "Seattle Sounders", "Seattle"),
"SKC": ("team_mls_skc", "Sporting Kansas City", "Kansas City"),
"STL": ("team_mls_stl", "St. Louis City SC", "St. Louis"),
"TOR": ("team_mls_tor", "Toronto FC", "Toronto"),
"VAN": ("team_mls_van", "Vancouver Whitecaps", "Vancouver"),
"ATL": ("team_mls_atl", "Atlanta United", "Atlanta", "stadium_mls_mercedes_benz_stadium"),
"AUS": ("team_mls_aus", "Austin FC", "Austin", "stadium_mls_q2_stadium"),
"CLT": ("team_mls_clt", "Charlotte FC", "Charlotte", "stadium_mls_bank_of_america_stadium"),
"CHI": ("team_mls_chi", "Chicago Fire", "Chicago", "stadium_mls_soldier_field"),
"CIN": ("team_mls_cin", "FC Cincinnati", "Cincinnati", "stadium_mls_tql_stadium"),
"COL": ("team_mls_col", "Colorado Rapids", "Colorado", "stadium_mls_dicks_sporting_goods_park"),
"CLB": ("team_mls_clb", "Columbus Crew", "Columbus", "stadium_mls_lower_com_field"),
"DAL": ("team_mls_dal", "FC Dallas", "Dallas", "stadium_mls_toyota_stadium"),
"DC": ("team_mls_dc", "D.C. United", "Washington", "stadium_mls_audi_field"),
"HOU": ("team_mls_hou", "Houston Dynamo", "Houston", "stadium_mls_shell_energy_stadium"),
"LAG": ("team_mls_lag", "LA Galaxy", "Los Angeles", "stadium_mls_dignity_health_sports_park"),
"LAFC": ("team_mls_lafc", "Los Angeles FC", "Los Angeles", "stadium_mls_bmo_stadium"),
"MIA": ("team_mls_mia", "Inter Miami", "Miami", "stadium_mls_chase_stadium"),
"MIN": ("team_mls_min", "Minnesota United", "Minnesota", "stadium_mls_allianz_field"),
"MTL": ("team_mls_mtl", "CF Montreal", "Montreal", "stadium_mls_stade_saputo"),
"NSH": ("team_mls_nsh", "Nashville SC", "Nashville", "stadium_mls_geodis_park"),
"NE": ("team_mls_ne", "New England Revolution", "New England", "stadium_mls_gillette_stadium"),
"NYC": ("team_mls_nyc", "New York City FC", "New York", "stadium_mls_yankee_stadium"),
"RB": ("team_mls_ny", "New York Red Bulls", "New York", "stadium_mls_red_bull_arena"),
"RBNY": ("team_mls_ny", "New York Red Bulls", "New York", "stadium_mls_red_bull_arena"),
"ORL": ("team_mls_orl", "Orlando City", "Orlando", "stadium_mls_inter_co_stadium"),
"PHI": ("team_mls_phi", "Philadelphia Union", "Philadelphia", "stadium_mls_subaru_park"),
"POR": ("team_mls_por", "Portland Timbers", "Portland", "stadium_mls_providence_park"),
"SLC": ("team_mls_slc", "Real Salt Lake", "Salt Lake", "stadium_mls_america_first_field"),
"RSL": ("team_mls_slc", "Real Salt Lake", "Salt Lake", "stadium_mls_america_first_field"),
"SJ": ("team_mls_sj", "San Jose Earthquakes", "San Jose", "stadium_mls_paypal_park"),
"SD": ("team_mls_sd", "San Diego FC", "San Diego", "stadium_mls_snapdragon_stadium"),
"SEA": ("team_mls_sea", "Seattle Sounders", "Seattle", "stadium_mls_lumen_field"),
"SKC": ("team_mls_skc", "Sporting Kansas City", "Kansas City", "stadium_mls_childrens_mercy_park"),
"STL": ("team_mls_stl", "St. Louis City SC", "St. Louis", "stadium_mls_citypark"),
"TOR": ("team_mls_tor", "Toronto FC", "Toronto", "stadium_mls_bmo_field"),
"VAN": ("team_mls_van", "Vancouver Whitecaps", "Vancouver", "stadium_mls_bc_place"),
},
"wnba": {
"ATL": ("team_wnba_atl", "Atlanta Dream", "Atlanta"),
"CHI": ("team_wnba_chi", "Chicago Sky", "Chicago"),
"CON": ("team_wnba_con", "Connecticut Sun", "Connecticut"),
"DAL": ("team_wnba_dal", "Dallas Wings", "Dallas"),
"GSV": ("team_wnba_gsv", "Golden State Valkyries", "Golden State"),
"IND": ("team_wnba_ind", "Indiana Fever", "Indiana"),
"LV": ("team_wnba_lv", "Las Vegas Aces", "Las Vegas"),
"LA": ("team_wnba_la", "Los Angeles Sparks", "Los Angeles"),
"MIN": ("team_wnba_min", "Minnesota Lynx", "Minnesota"),
"NY": ("team_wnba_ny", "New York Liberty", "New York"),
"PHX": ("team_wnba_phx", "Phoenix Mercury", "Phoenix"),
"SEA": ("team_wnba_sea", "Seattle Storm", "Seattle"),
"WAS": ("team_wnba_was", "Washington Mystics", "Washington"),
"ATL": ("team_wnba_atl", "Atlanta Dream", "Atlanta", "stadium_wnba_gateway_center_arena"),
"CHI": ("team_wnba_chi", "Chicago Sky", "Chicago", "stadium_wnba_wintrust_arena"),
"CON": ("team_wnba_con", "Connecticut Sun", "Connecticut", "stadium_wnba_mohegan_sun_arena"),
"DAL": ("team_wnba_dal", "Dallas Wings", "Dallas", "stadium_wnba_college_park_center"),
"GSV": ("team_wnba_gsv", "Golden State Valkyries", "Golden State", "stadium_wnba_chase_center"),
"IND": ("team_wnba_ind", "Indiana Fever", "Indiana", "stadium_wnba_gainbridge_fieldhouse"),
"LV": ("team_wnba_lv", "Las Vegas Aces", "Las Vegas", "stadium_wnba_michelob_ultra_arena"),
"LA": ("team_wnba_la", "Los Angeles Sparks", "Los Angeles", "stadium_wnba_cryptocom_arena"),
"MIN": ("team_wnba_min", "Minnesota Lynx", "Minnesota", "stadium_wnba_target_center"),
"NY": ("team_wnba_ny", "New York Liberty", "New York", "stadium_wnba_barclays_center"),
"PHX": ("team_wnba_phx", "Phoenix Mercury", "Phoenix", "stadium_wnba_footprint_center"),
"SEA": ("team_wnba_sea", "Seattle Storm", "Seattle", "stadium_wnba_climate_pledge_arena"),
"WAS": ("team_wnba_was", "Washington Mystics", "Washington", "stadium_wnba_entertainment_sports_arena"),
},
"nwsl": {
"ANF": ("team_nwsl_anf", "Angel City FC", "Los Angeles"),
"CHI": ("team_nwsl_chi", "Chicago Red Stars", "Chicago"),
"HOU": ("team_nwsl_hou", "Houston Dash", "Houston"),
"KC": ("team_nwsl_kc", "Kansas City Current", "Kansas City"),
"NJ": ("team_nwsl_nj", "NJ/NY Gotham FC", "New Jersey"),
"NC": ("team_nwsl_nc", "North Carolina Courage", "North Carolina"),
"ORL": ("team_nwsl_orl", "Orlando Pride", "Orlando"),
"POR": ("team_nwsl_por", "Portland Thorns", "Portland"),
"RGN": ("team_nwsl_rgn", "Racing Louisville", "Louisville"),
"SD": ("team_nwsl_sd", "San Diego Wave", "San Diego"),
"SEA": ("team_nwsl_sea", "Seattle Reign", "Seattle"),
"SLC": ("team_nwsl_slc", "Utah Royals", "Utah"),
"WAS": ("team_nwsl_was", "Washington Spirit", "Washington"),
"BFC": ("team_nwsl_bfc", "Bay FC", "San Francisco"),
"BOS": ("team_nwsl_bos", "Boston Legacy FC", "Boston"),
"DEN": ("team_nwsl_den", "Denver Summit FC", "Denver"),
"ANF": ("team_nwsl_anf", "Angel City FC", "Los Angeles", "stadium_nwsl_bmo_stadium"),
"CHI": ("team_nwsl_chi", "Chicago Red Stars", "Chicago", "stadium_nwsl_seatgeek_stadium"),
"HOU": ("team_nwsl_hou", "Houston Dash", "Houston", "stadium_nwsl_shell_energy_stadium"),
"KC": ("team_nwsl_kc", "Kansas City Current", "Kansas City", "stadium_nwsl_cpkc_stadium"),
"NJ": ("team_nwsl_nj", "NJ/NY Gotham FC", "New Jersey", "stadium_nwsl_red_bull_arena"),
"NC": ("team_nwsl_nc", "North Carolina Courage", "North Carolina", "stadium_nwsl_wakemed_soccer_park"),
"ORL": ("team_nwsl_orl", "Orlando Pride", "Orlando", "stadium_nwsl_inter_co_stadium"),
"POR": ("team_nwsl_por", "Portland Thorns", "Portland", "stadium_nwsl_providence_park"),
"RGN": ("team_nwsl_rgn", "Racing Louisville", "Louisville", "stadium_nwsl_lynn_family_stadium"),
"SD": ("team_nwsl_sd", "San Diego Wave", "San Diego", "stadium_nwsl_snapdragon_stadium"),
"SEA": ("team_nwsl_sea", "Seattle Reign", "Seattle", "stadium_nwsl_lumen_field"),
"SLC": ("team_nwsl_slc", "Utah Royals", "Utah", "stadium_nwsl_america_first_field"),
"WAS": ("team_nwsl_was", "Washington Spirit", "Washington", "stadium_nwsl_audi_field"),
"BFC": ("team_nwsl_bfc", "Bay FC", "San Francisco", "stadium_nwsl_paypal_park"),
"BOS": ("team_nwsl_bos", "Boston Legacy FC", "Boston", "stadium_nwsl_gillette_stadium"),
"DEN": ("team_nwsl_den", "Denver Summit FC", "Denver", "stadium_nwsl_dicks_sporting_goods_park"),
},
}
@@ -308,7 +308,7 @@ class TeamResolver:
# Group by canonical ID to avoid duplicates
by_id: dict[str, tuple[str, list[str]]] = {}
for abbrev, (canonical_id, full_name, city) in self._mappings.items():
for abbrev, (canonical_id, full_name, city, stadium_id) in self._mappings.items():
if canonical_id not in by_id:
by_id[canonical_id] = (full_name, [])
@@ -346,7 +346,7 @@ class TeamResolver:
# 1. Exact match against abbreviation
if value_upper in self._mappings:
canonical_id, full_name, _ = self._mappings[value_upper]
canonical_id, full_name, _, _ = self._mappings[value_upper]
return TeamResolveResult(
canonical_id=canonical_id,
confidence=100,
@@ -354,7 +354,7 @@ class TeamResolver:
)
# 2. Exact match against full names
for abbrev, (canonical_id, full_name, city) in self._mappings.items():
for abbrev, (canonical_id, full_name, city, stadium_id) in self._mappings.items():
if value_lower == full_name.lower() or value_lower == city.lower():
return TeamResolveResult(
canonical_id=canonical_id,
@@ -426,30 +426,30 @@ class TeamResolver:
review_item=review_item,
)
def get_team_info(self, abbreviation: str) -> Optional[tuple[str, str, str]]:
def get_team_info(self, abbreviation: str) -> Optional[tuple[str, str, str, str]]:
"""Get team info by abbreviation.
Args:
abbreviation: Team abbreviation
Returns:
Tuple of (canonical_id, full_name, city) or None
Tuple of (canonical_id, full_name, city, stadium_id) or None
"""
return self._mappings.get(abbreviation.upper())
def get_all_teams(self) -> list[tuple[str, str, str]]:
def get_all_teams(self) -> list[tuple[str, str, str, str]]:
"""Get all teams for this sport.
Returns:
List of (canonical_id, full_name, city) tuples
List of (canonical_id, full_name, city, stadium_id) tuples
"""
seen = set()
result = []
for abbrev, (canonical_id, full_name, city) in self._mappings.items():
for abbrev, (canonical_id, full_name, city, stadium_id) in self._mappings.items():
if canonical_id not in seen:
seen.add(canonical_id)
result.append((canonical_id, full_name, city))
result.append((canonical_id, full_name, city, stadium_id))
return result

View File

@@ -624,7 +624,7 @@ class MLBScraper(BaseScraper):
for abbrev in abbrevs:
team_divisions[abbrev] = (league, div)
for abbrev, (team_id, full_name, city) in TEAM_MAPPINGS.get("mlb", {}).items():
for abbrev, (team_id, full_name, city, stadium_id) in TEAM_MAPPINGS.get("mlb", {}).items():
if team_id in seen:
continue
seen.add(team_id)
@@ -642,14 +642,6 @@ class MLBScraper(BaseScraper):
# Get league and division
league, div = team_divisions.get(abbrev, (None, None))
# Get stadium ID
stadium_id = None
mlb_stadiums = STADIUM_MAPPINGS.get("mlb", {})
for sid, sinfo in mlb_stadiums.items():
if city.lower() in sinfo.city.lower() or sinfo.city.lower() in city.lower():
stadium_id = sid
break
team = Team(
id=team_id,
sport="mlb",

View File

@@ -345,7 +345,7 @@ class MLSScraper(BaseScraper):
for abbrev in abbrevs:
team_conferences[abbrev] = conf
for abbrev, (team_id, full_name, city) in TEAM_MAPPINGS.get("mls", {}).items():
for abbrev, (team_id, full_name, city, stadium_id) in TEAM_MAPPINGS.get("mls", {}).items():
if team_id in seen:
continue
seen.add(team_id)
@@ -356,14 +356,6 @@ class MLSScraper(BaseScraper):
# Get conference
conf = team_conferences.get(abbrev)
# Get stadium ID
stadium_id = None
mls_stadiums = STADIUM_MAPPINGS.get("mls", {})
for sid, sinfo in mls_stadiums.items():
if city.lower() in sinfo.city.lower() or sinfo.city.lower() in city.lower():
stadium_id = sid
break
team = Team(
id=team_id,
sport="mls",

View File

@@ -589,7 +589,7 @@ class NBAScraper(BaseScraper):
for abbrev in abbrevs:
team_divisions[abbrev] = (conf, div)
for abbrev, (team_id, full_name, city) in TEAM_MAPPINGS.get("nba", {}).items():
for abbrev, (team_id, full_name, city, stadium_id) in TEAM_MAPPINGS.get("nba", {}).items():
if team_id in seen:
continue
seen.add(team_id)
@@ -618,13 +618,6 @@ class NBAScraper(BaseScraper):
# Get conference and division
conf, div = team_divisions.get(abbrev, (None, None))
# Get stadium ID
stadium_id = None
for sid, sinfo in STADIUM_MAPPINGS.get("nba", {}).items():
if city.lower() in sinfo.city.lower() or sinfo.city.lower() in city.lower():
stadium_id = sid
break
team = Team(
id=team_id,
sport="nba",

View File

@@ -523,7 +523,7 @@ class NFLScraper(BaseScraper):
for abbrev in abbrevs:
team_divisions[abbrev] = (conf, div)
for abbrev, (team_id, full_name, city) in TEAM_MAPPINGS.get("nfl", {}).items():
for abbrev, (team_id, full_name, city, stadium_id) in TEAM_MAPPINGS.get("nfl", {}).items():
if team_id in seen:
continue
seen.add(team_id)
@@ -535,14 +535,6 @@ class NFLScraper(BaseScraper):
# Get conference and division
conf, div = team_divisions.get(abbrev, (None, None))
# Get stadium ID
stadium_id = None
nfl_stadiums = STADIUM_MAPPINGS.get("nfl", {})
for sid, sinfo in nfl_stadiums.items():
if city.lower() in sinfo.city.lower() or sinfo.city.lower() in city.lower():
stadium_id = sid
break
team = Team(
id=team_id,
sport="nfl",

View File

@@ -589,7 +589,7 @@ class NHLScraper(BaseScraper):
for abbrev in abbrevs:
team_divisions[abbrev] = (conf, div)
for abbrev, (team_id, full_name, city) in TEAM_MAPPINGS.get("nhl", {}).items():
for abbrev, (team_id, full_name, city, stadium_id) in TEAM_MAPPINGS.get("nhl", {}).items():
if team_id in seen:
continue
seen.add(team_id)
@@ -604,14 +604,6 @@ class NHLScraper(BaseScraper):
# Get conference and division
conf, div = team_divisions.get(abbrev, (None, None))
# Get stadium ID
stadium_id = None
nhl_stadiums = STADIUM_MAPPINGS.get("nhl", {})
for sid, sinfo in nhl_stadiums.items():
if city.lower() in sinfo.city.lower() or sinfo.city.lower() in city.lower():
stadium_id = sid
break
team = Team(
id=team_id,
sport="nhl",

View File

@@ -323,7 +323,7 @@ class NWSLScraper(BaseScraper):
teams: list[Team] = []
seen: set[str] = set()
for abbrev, (team_id, full_name, city) in TEAM_MAPPINGS.get("nwsl", {}).items():
for abbrev, (team_id, full_name, city, stadium_id) in TEAM_MAPPINGS.get("nwsl", {}).items():
if team_id in seen:
continue
seen.add(team_id)
@@ -331,14 +331,6 @@ class NWSLScraper(BaseScraper):
# Parse team name
team_name = full_name
# Get stadium ID
stadium_id = None
nwsl_stadiums = STADIUM_MAPPINGS.get("nwsl", {})
for sid, sinfo in nwsl_stadiums.items():
if city.lower() in sinfo.city.lower() or sinfo.city.lower() in city.lower():
stadium_id = sid
break
team = Team(
id=team_id,
sport="nwsl",

View File

@@ -323,7 +323,7 @@ class WNBAScraper(BaseScraper):
teams: list[Team] = []
seen: set[str] = set()
for abbrev, (team_id, full_name, city) in TEAM_MAPPINGS.get("wnba", {}).items():
for abbrev, (team_id, full_name, city, stadium_id) in TEAM_MAPPINGS.get("wnba", {}).items():
if team_id in seen:
continue
seen.add(team_id)
@@ -332,14 +332,6 @@ class WNBAScraper(BaseScraper):
parts = full_name.split()
team_name = parts[-1] if parts else full_name
# Get stadium ID
stadium_id = None
wnba_stadiums = STADIUM_MAPPINGS.get("wnba", {})
for sid, sinfo in wnba_stadiums.items():
if city.lower() in sinfo.city.lower() or sinfo.city.lower() in city.lower():
stadium_id = sid
break
team = Team(
id=team_id,
sport="wnba",

View File

@@ -1558,5 +1558,269 @@
"stadium_canonical_id": "stadium_nfl_lumen_field",
"valid_from": "2002-07-01",
"valid_until": "2004-05-31"
},
{
"alias_name": "salt river fields at talking stick",
"stadium_canonical_id": "stadium_mlb_spring_salt_river_fields",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "salt river fields",
"stadium_canonical_id": "stadium_mlb_spring_salt_river_fields",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "sloan park",
"stadium_canonical_id": "stadium_mlb_spring_sloan_park",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "hohokam stadium",
"stadium_canonical_id": "stadium_mlb_spring_hohokam_stadium",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "hohokam park",
"stadium_canonical_id": "stadium_mlb_spring_hohokam_stadium",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "camelback ranch",
"stadium_canonical_id": "stadium_mlb_spring_camelback_ranch",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "camelback ranch-glendale",
"stadium_canonical_id": "stadium_mlb_spring_camelback_ranch",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "goodyear ballpark",
"stadium_canonical_id": "stadium_mlb_spring_goodyear_ballpark",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "tempe diablo stadium",
"stadium_canonical_id": "stadium_mlb_spring_tempe_diablo_stadium",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "scottsdale stadium",
"stadium_canonical_id": "stadium_mlb_spring_scottsdale_stadium",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "american family fields of phoenix",
"stadium_canonical_id": "stadium_mlb_spring_american_family_fields",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "american family fields",
"stadium_canonical_id": "stadium_mlb_spring_american_family_fields",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "maryvale baseball park",
"stadium_canonical_id": "stadium_mlb_spring_american_family_fields",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "peoria sports complex",
"stadium_canonical_id": "stadium_mlb_spring_peoria_sports_complex",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "peoria stadium",
"stadium_canonical_id": "stadium_mlb_spring_peoria_sports_complex",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "surprise stadium",
"stadium_canonical_id": "stadium_mlb_spring_surprise_stadium",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "jetblue park",
"stadium_canonical_id": "stadium_mlb_spring_jetblue_park",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "jetblue park at fenway south",
"stadium_canonical_id": "stadium_mlb_spring_jetblue_park",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "fenway south",
"stadium_canonical_id": "stadium_mlb_spring_jetblue_park",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "roger dean chevrolet stadium",
"stadium_canonical_id": "stadium_mlb_spring_roger_dean_stadium",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "roger dean stadium",
"stadium_canonical_id": "stadium_mlb_spring_roger_dean_stadium",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "ed smith stadium",
"stadium_canonical_id": "stadium_mlb_spring_ed_smith_stadium",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "george m. steinbrenner field",
"stadium_canonical_id": "stadium_mlb_spring_steinbrenner_field",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "steinbrenner field",
"stadium_canonical_id": "stadium_mlb_spring_steinbrenner_field",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "legends field",
"stadium_canonical_id": "stadium_mlb_spring_steinbrenner_field",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "td ballpark",
"stadium_canonical_id": "stadium_mlb_spring_td_ballpark",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "dunedin stadium",
"stadium_canonical_id": "stadium_mlb_spring_td_ballpark",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "cooltoday park",
"stadium_canonical_id": "stadium_mlb_spring_cooltoday_park",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "cool today park",
"stadium_canonical_id": "stadium_mlb_spring_cooltoday_park",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "hammond stadium",
"stadium_canonical_id": "stadium_mlb_spring_hammond_stadium",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "lee health sports complex",
"stadium_canonical_id": "stadium_mlb_spring_hammond_stadium",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "clover park",
"stadium_canonical_id": "stadium_mlb_spring_clover_park",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "first data field",
"stadium_canonical_id": "stadium_mlb_spring_clover_park",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "baycare ballpark",
"stadium_canonical_id": "stadium_mlb_spring_baycare_ballpark",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "spectrum field",
"stadium_canonical_id": "stadium_mlb_spring_baycare_ballpark",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "bright house field",
"stadium_canonical_id": "stadium_mlb_spring_baycare_ballpark",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "lecom park",
"stadium_canonical_id": "stadium_mlb_spring_lecom_park",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "mckechnie field",
"stadium_canonical_id": "stadium_mlb_spring_lecom_park",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "charlotte sports park",
"stadium_canonical_id": "stadium_mlb_spring_charlotte_sports_park",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "charlotte county stadium",
"stadium_canonical_id": "stadium_mlb_spring_charlotte_sports_park",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "cacti park of the palm beaches",
"stadium_canonical_id": "stadium_mlb_spring_cacti_park",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "cacti park",
"stadium_canonical_id": "stadium_mlb_spring_cacti_park",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "the ballpark of the palm beaches",
"stadium_canonical_id": "stadium_mlb_spring_cacti_park",
"valid_from": null,
"valid_until": null
},
{
"alias_name": "ballpark of the palm beaches",
"stadium_canonical_id": "stadium_mlb_spring_cacti_park",
"valid_from": null,
"valid_until": null
}
]