{"slate_id":"ncaab-showdown-draftkings-2026-11-02","sport":"ncaab","site":"draftkings","slate_date":"2026-11-02","slate_type":"showdown","slate_subtype":null,"tour":null,"competition":null,"league_label":null,"is_draft":false,"config":{"$comment":"DK NCAAB Showdown Captain Mode — 6 players, $50,000 cap: 1 CPT (1.5x points AND 1.5x salary charged against the cap) + 5 UTIL. Authored 2026-07-30 to close SPORT_COVERAGE_REMEDIATION_PLAN.md §A3: the registry matrix advertised ncaab/showdown but no config file existed, so the admin dropdown offered it and finalize_import then failed with 'No slate config registered'. Roster shape and multipliers follow nba/draftkings/showdown.json exactly — DK runs the same captain-mode format for college basketball as for the NBA. Position vocabulary is DK's college-basketball pair G/F (see ncaab/draftkings/main.json, which uses G/F rather than the NBA's PG/SG/SF/PF/C); services/sport_signatures.py notes NCAAB and EuroLeague share this identical bare G+F set. Scoring matches ncaab/draftkings/main.json so the same underlying sim scoring path serves both slate types. min_teams=2 encodes DK's requirement that a showdown roster include players from both teams; min_games=1 because a showdown slate IS one game; max_per_team=5 follows (6 slots minus at least 1 from the other team). OPERATOR VERIFICATION REQUIRED: confirm the captain multiplier and cap against the live DK NCAAB Showdown rulebook page and one real single-game NCAAB DKSalaries export. || CAPTAIN-MODE TOKENS ADDED 2026-07-30. DraftKings captain-mode exports carry Roster Position = CPT / FLEX (tennis also A-CPT), and the importer reads Roster Position FIRST for DraftKings. Each player appears once per slot label and finalize_import unions positions on dedupe, so a player reaches the optimizer as e.g. ['CPT','F'] rather than just ['F']. Accepting CPT/FLEX/A-CPT alongside the sport tokens is both necessary (a partial export, or one whose labels are purely CPT/FLEX, otherwise matches nothing) and semantically right for captain mode, where any player may occupy any slot and the captain premium lives in the slot's multipliers rather than in eligibility. || SCORING CORRECTED 2026-09-28 against the card the engine actually scores (dfs_api.projection.scoring.draftkings, itself pinned to DK's published rules): added fg3m 0.5 (DK pays +0.5 per three-pointer made on every basketball code; LINEAR['nba']['fg3m'] = 0.5 and euroleague's config already lists it as made_three). Key is the corpus's, as BASKETBALL_STATS spells it.","site":"draftkings","sport":"ncaab","slate_type":"showdown","salary_cap":50000,"roster_slots":[{"name":"CPT","eligible":["G","F","CPT","FLEX","A-CPT"],"salary_multiplier":1.5,"score_multiplier":1.5},{"name":"UTIL1","eligible":["G","F","CPT","FLEX","A-CPT"]},{"name":"UTIL2","eligible":["G","F","CPT","FLEX","A-CPT"]},{"name":"UTIL3","eligible":["G","F","CPT","FLEX","A-CPT"]},{"name":"UTIL4","eligible":["G","F","CPT","FLEX","A-CPT"]},{"name":"UTIL5","eligible":["G","F","CPT","FLEX","A-CPT"]}],"max_per_team":5,"min_teams":2,"min_games":1,"scoring":{"pts":1.0,"fg3m":0.5,"reb":1.25,"ast":1.5,"stl":2.0,"blk":2.0,"to":-0.5,"double_double_bonus":1.5,"triple_double_bonus":3.0},"export_format":{"header":["CPT","UTIL","UTIL","UTIL","UTIL","UTIL"],"id_format":"{name} ({site_player_id})"}},"locked_at":null,"first_game_start":"2026-11-03T03:00:00Z","last_game_start":"2026-11-03T03:00:00Z","late_swap_enabled":true,"display_name":null,"is_free":false,"group_key":"47ee9b3db69c834e","group_slate_type":"showdown","projection_window":null}