{"slate_id":"esports-main-draftkings-2026-10-29","sport":"esports","site":"draftkings","slate_date":"2026-10-29","slate_type":"main","slate_subtype":null,"tour":null,"competition":null,"league_label":null,"is_draft":false,"config":{"site":"draftkings","sport":"esports","slate_type":"main","salary_cap":50000,"roster_slots":[{"name":"CPT","eligible":["TOP","JNG","MID","ADC","SUP","TEAM","CPT"],"salary_multiplier":1.5,"score_multiplier":1.5},{"name":"TOP","eligible":["TOP"]},{"name":"JNG","eligible":["JNG"]},{"name":"MID","eligible":["MID"]},{"name":"ADC","eligible":["ADC"]},{"name":"SUP","eligible":["SUP"]},{"name":"TEAM","eligible":["TEAM"]}],"max_per_team":4,"min_teams":2,"min_games":2,"scoring":{"kill":3,"assist":2,"death":-1,"creep_score":0.02,"ka_10_bonus":2,"games_not_played":20,"team_turret":1,"team_dragon":2,"team_baron":3,"team_first_blood":2,"team_win":2,"team_win_under_30_bonus":2,"team_games_not_played":15},"export_format":{"header":["CPT","TOP","JNG","MID","ADC","SUP","TEAM"],"id_format":"{name} ({site_player_id})"},"$comment":" || ROSTER CORRECTED 2026-09-14 against DraftKings' published LOL Classic rules. The roster was TOP/JNG/MID/ADC/SUP/TEAM/**UTIL** with NO multiplier on any slot. The rulebook's seventh spot is not a UTIL, it is the CAPTAIN: '1 Captain (CPT), 1 TOP, 1 JNG, 1 MID, 1 ADC, 1 SUP, 1 Team', and the scoring table opens 'The player you draft as your captain will earn 1.5x the standard fantasy point value for each statistic'. LOL Classic is a captain-mode contest and this file modelled it as a plain flex. Corroborated by the operator's own files: every real LOL export in this repo carries Roster Position=CPT rows priced at exactly 1.5x, and this sport's own showdown sibling (esports/draftkings/showdown.json) already had the correct seven-slot shape. Three things were wrong because of it: the captain scored 1x instead of 1.5x; the export wrote a UTIL cell where DraftKings expects CPT; and the captain's site id (DK gives the CPT listing its own) was never used. The pricing error INVERTED on 2026-09-14 when the captain-merge fix landed: before it, the importer stored the CPT row's 1.5x salary and this config's missing multiplier accidentally cancelled it out; after it, the stored salary is correctly the base price, so a config with no multiplier UNDERCHARGES the captain and would build lineups over the real $50,000 cap - rejected at upload. See services/captain_rows. max_per_team stays 4 ('a maximum of 4 players from any one LoL team ... Teams do count towards the 4-player maximum') and min_games stays 2 ('must span at least 2 different LoL games'). || SCORING CORRECTED 2026-09-28 against the card the engine actually scores (dfs_api.projection.scoring.draftkings, itself pinned to DK's published rules): the previous block was a placeholder that matched neither DK's page nor the engine (e.g. win 2 and per-kill-streak bonuses paid to PLAYERS, where DK pays the win, objectives and games-not-played to the TEAM slot and a single +2 10+ K/A bonus to the player). Values are DK's RulesAndScoring payload as captured in tests/fixtures/dk_esports_rules.json and pinned to LINEAR by test_dk_esports_scoring_matches_dk; team_* keys are the separately drafted TEAM slot's card."},"locked_at":null,"first_game_start":"2026-10-29T20:00:00Z","last_game_start":"2026-10-29T22:00:00Z","late_swap_enabled":false,"display_name":null,"is_free":false,"group_key":"f749e1bec9d639b8","group_slate_type":"main","projection_window":null}