{
  "engine": "supabase/functions/simulate-worker/engine",
  "rosters": {
    "d1": {
      "division": 1,
      "players": 12,
      "averageOverall": 83.3
    },
    "d5": {
      "division": 5,
      "players": 12,
      "averageOverall": 79.5
    },
    "d10": {
      "division": 10,
      "players": 15,
      "averageOverall": 70.8
    }
  },
  "totalGames": 153936,
  "gamesPerPart": {
    "offense": 30240,
    "defense": 30240,
    "matrix": 89856,
    "combo": 3600
  },
  "offense": [
    {
      "id": "small_ball",
      "name": "Small Ball",
      "games": 7560,
      "winPct": 51,
      "ci95": 1.1,
      "pointsFor": 120.9,
      "pointsAgainst": 120.6,
      "margin": 0.4,
      "possessions": 103.3,
      "offRating": 117,
      "defRating": 116.8,
      "threeShare": 48.4,
      "turnovers": 13.4,
      "turnoversForced": 14.6,
      "byRoster": {
        "d1": 51.1,
        "d5": 50.6,
        "d10": 51.4
      },
      "vs": {
        "five_out": 51.9,
        "motion": 48.4,
        "pace_and_space": 52,
        "princeton": 50.6,
        "spread_pick_and_roll": 51.5,
        "run_and_gun": 51,
        "triangle": 51.8
      }
    },
    {
      "id": "princeton",
      "name": "Princeton Offense",
      "games": 7560,
      "winPct": 50.9,
      "ci95": 1.1,
      "pointsFor": 112.7,
      "pointsAgainst": 112.5,
      "margin": 0.2,
      "possessions": 96.3,
      "offRating": 117,
      "defRating": 116.8,
      "threeShare": 44.9,
      "turnovers": 13.7,
      "turnoversForced": 13.5,
      "byRoster": {
        "d1": 51.9,
        "d5": 50.1,
        "d10": 50.7
      },
      "vs": {
        "five_out": 49.6,
        "motion": 52.2,
        "pace_and_space": 49.3,
        "small_ball": 49.4,
        "spread_pick_and_roll": 50.6,
        "run_and_gun": 52.3,
        "triangle": 52.7
      }
    },
    {
      "id": "spread_pick_and_roll",
      "name": "Spread Pick-and-Roll Offense",
      "games": 7560,
      "winPct": 50.3,
      "ci95": 1.1,
      "pointsFor": 116.6,
      "pointsAgainst": 116.5,
      "margin": 0.1,
      "possessions": 99.8,
      "offRating": 116.8,
      "defRating": 116.7,
      "threeShare": 43.7,
      "turnovers": 14.3,
      "turnoversForced": 14,
      "byRoster": {
        "d1": 49.9,
        "d5": 50.8,
        "d10": 50.1
      },
      "vs": {
        "five_out": 47.3,
        "motion": 54.4,
        "pace_and_space": 50.2,
        "princeton": 49.4,
        "small_ball": 48.5,
        "run_and_gun": 51.4,
        "triangle": 50.8
      }
    },
    {
      "id": "motion",
      "name": "Motion Offense",
      "games": 7560,
      "winPct": 50.1,
      "ci95": 1.1,
      "pointsFor": 116.2,
      "pointsAgainst": 116.1,
      "margin": 0.1,
      "possessions": 99.5,
      "offRating": 116.8,
      "defRating": 116.7,
      "threeShare": 44.1,
      "turnovers": 14.5,
      "turnoversForced": 13.8,
      "byRoster": {
        "d1": 49.9,
        "d5": 49.6,
        "d10": 50.8
      },
      "vs": {
        "five_out": 52.1,
        "pace_and_space": 53.6,
        "princeton": 47.8,
        "small_ball": 51.6,
        "spread_pick_and_roll": 45.6,
        "run_and_gun": 49.3,
        "triangle": 50.7
      }
    },
    {
      "id": "five_out",
      "name": "5-Out Offense",
      "games": 7560,
      "winPct": 50,
      "ci95": 1.1,
      "pointsFor": 117.9,
      "pointsAgainst": 117.8,
      "margin": 0.1,
      "possessions": 100.8,
      "offRating": 117,
      "defRating": 117,
      "threeShare": 48.3,
      "turnovers": 12.5,
      "turnoversForced": 14.3,
      "byRoster": {
        "d1": 50.8,
        "d5": 51.3,
        "d10": 47.8
      },
      "vs": {
        "motion": 47.9,
        "pace_and_space": 49.1,
        "princeton": 50.4,
        "small_ball": 48.1,
        "spread_pick_and_roll": 52.7,
        "run_and_gun": 49.8,
        "triangle": 51.8
      }
    },
    {
      "id": "pace_and_space",
      "name": "Pace and Space",
      "games": 7560,
      "winPct": 49.7,
      "ci95": 1.1,
      "pointsFor": 119.9,
      "pointsAgainst": 120.1,
      "margin": -0.2,
      "possessions": 102.7,
      "offRating": 116.7,
      "defRating": 117,
      "threeShare": 49,
      "turnovers": 14.4,
      "turnoversForced": 14.3,
      "byRoster": {
        "d1": 48.9,
        "d5": 49.8,
        "d10": 50.4
      },
      "vs": {
        "five_out": 50.9,
        "motion": 46.4,
        "princeton": 50.7,
        "small_ball": 48,
        "spread_pick_and_roll": 49.8,
        "run_and_gun": 51.3,
        "triangle": 51
      }
    },
    {
      "id": "run_and_gun",
      "name": "Transition Offense (Run and Gun)",
      "games": 7560,
      "winPct": 49.3,
      "ci95": 1.1,
      "pointsFor": 125.2,
      "pointsAgainst": 125.4,
      "margin": -0.3,
      "possessions": 107.2,
      "offRating": 116.8,
      "defRating": 116.9,
      "threeShare": 41.1,
      "turnovers": 15.7,
      "turnoversForced": 14.9,
      "byRoster": {
        "d1": 48.9,
        "d5": 49.7,
        "d10": 49.1
      },
      "vs": {
        "five_out": 50.2,
        "motion": 50.7,
        "pace_and_space": 48.7,
        "princeton": 47.7,
        "small_ball": 49,
        "spread_pick_and_roll": 48.6,
        "triangle": 49.9
      }
    },
    {
      "id": "triangle",
      "name": "Triangle Offense",
      "games": 7560,
      "winPct": 48.8,
      "ci95": 1.1,
      "pointsFor": 113.7,
      "pointsAgainst": 114.1,
      "margin": -0.4,
      "possessions": 97.6,
      "offRating": 116.5,
      "defRating": 116.8,
      "threeShare": 39.8,
      "turnovers": 14.6,
      "turnoversForced": 13.5,
      "byRoster": {
        "d1": 48.6,
        "d5": 48,
        "d10": 49.7
      },
      "vs": {
        "five_out": 48.2,
        "motion": 49.3,
        "pace_and_space": 49,
        "princeton": 47.3,
        "small_ball": 48.2,
        "spread_pick_and_roll": 49.2,
        "run_and_gun": 50.1
      }
    }
  ],
  "defense": [
    {
      "id": "half_court_trap",
      "name": "Half-Court Trap Defense",
      "games": 7560,
      "winPct": 51.5,
      "ci95": 1.1,
      "pointsFor": 118.8,
      "pointsAgainst": 118.3,
      "margin": 0.4,
      "possessions": 101.6,
      "offRating": 116.9,
      "defRating": 116.5,
      "threeShare": 44.8,
      "turnovers": 13.7,
      "turnoversForced": 17.7,
      "byRoster": {
        "d1": 50.7,
        "d5": 51.8,
        "d10": 52
      },
      "vs": {
        "drop_coverage": 53.7,
        "full_court_press": 52.1,
        "man_to_man": 55.7,
        "match_up_zone": 49.3,
        "no_middle": 48.5,
        "pack_line": 50.5,
        "switch_everything": 50.6
      }
    },
    {
      "id": "no_middle",
      "name": "No-Middle Defense",
      "games": 7560,
      "winPct": 51.4,
      "ci95": 1.1,
      "pointsFor": 116.3,
      "pointsAgainst": 115.9,
      "margin": 0.4,
      "possessions": 99.6,
      "offRating": 116.8,
      "defRating": 116.3,
      "threeShare": 45,
      "turnovers": 14.3,
      "turnoversForced": 12.7,
      "byRoster": {
        "d1": 52,
        "d5": 51.7,
        "d10": 50.5
      },
      "vs": {
        "drop_coverage": 50.8,
        "full_court_press": 48.5,
        "half_court_trap": 51.5,
        "man_to_man": 53.8,
        "match_up_zone": 51.1,
        "pack_line": 52.6,
        "switch_everything": 51.4
      }
    },
    {
      "id": "switch_everything",
      "name": "Switch Defense (Switch-Everything)",
      "games": 7560,
      "winPct": 50.7,
      "ci95": 1.1,
      "pointsFor": 116.6,
      "pointsAgainst": 116.4,
      "margin": 0.1,
      "possessions": 99.7,
      "offRating": 116.9,
      "defRating": 116.6,
      "threeShare": 45,
      "turnovers": 13.9,
      "turnoversForced": 14.1,
      "byRoster": {
        "d1": 50.3,
        "d5": 51.1,
        "d10": 50.8
      },
      "vs": {
        "drop_coverage": 52.1,
        "full_court_press": 49.2,
        "half_court_trap": 49.4,
        "man_to_man": 50.4,
        "match_up_zone": 53.1,
        "no_middle": 48.6,
        "pack_line": 52.3
      }
    },
    {
      "id": "full_court_press",
      "name": "Full-Court Press Defense",
      "games": 7560,
      "winPct": 50.5,
      "ci95": 1.1,
      "pointsFor": 121.9,
      "pointsAgainst": 121.7,
      "margin": 0.3,
      "possessions": 104.6,
      "offRating": 116.6,
      "defRating": 116.4,
      "threeShare": 44.8,
      "turnovers": 14,
      "turnoversForced": 19.5,
      "byRoster": {
        "d1": 49.1,
        "d5": 52,
        "d10": 50.4
      },
      "vs": {
        "drop_coverage": 49.4,
        "half_court_trap": 47.9,
        "man_to_man": 51.2,
        "match_up_zone": 52.5,
        "no_middle": 51.5,
        "pack_line": 50.3,
        "switch_everything": 50.8
      }
    },
    {
      "id": "match_up_zone",
      "name": "Match-Up Zone Defense",
      "games": 7560,
      "winPct": 49.2,
      "ci95": 1.1,
      "pointsFor": 116.3,
      "pointsAgainst": 116.6,
      "margin": -0.3,
      "possessions": 99.4,
      "offRating": 117,
      "defRating": 117.3,
      "threeShare": 45,
      "turnovers": 14.4,
      "turnoversForced": 10.8,
      "byRoster": {
        "d1": 50.4,
        "d5": 49.4,
        "d10": 47.8
      },
      "vs": {
        "drop_coverage": 50.6,
        "full_court_press": 47.5,
        "half_court_trap": 50.7,
        "man_to_man": 49.9,
        "no_middle": 48.9,
        "pack_line": 49.9,
        "switch_everything": 46.9
      }
    },
    {
      "id": "pack_line",
      "name": "Pack Line Defense",
      "games": 7560,
      "winPct": 49.2,
      "ci95": 1.1,
      "pointsFor": 117.7,
      "pointsAgainst": 117.9,
      "margin": -0.2,
      "possessions": 100.6,
      "offRating": 116.9,
      "defRating": 117.3,
      "threeShare": 45.1,
      "turnovers": 14.3,
      "turnoversForced": 12.3,
      "byRoster": {
        "d1": 48.7,
        "d5": 48.3,
        "d10": 50.7
      },
      "vs": {
        "drop_coverage": 51.5,
        "full_court_press": 49.7,
        "half_court_trap": 49.5,
        "man_to_man": 48.7,
        "match_up_zone": 50.1,
        "no_middle": 47.4,
        "switch_everything": 47.7
      }
    },
    {
      "id": "man_to_man",
      "name": "Man-to-Man Defense",
      "games": 7560,
      "winPct": 48.9,
      "ci95": 1.1,
      "pointsFor": 117,
      "pointsAgainst": 117.2,
      "margin": -0.2,
      "possessions": 100,
      "offRating": 117.1,
      "defRating": 117.2,
      "threeShare": 45,
      "turnovers": 14.1,
      "turnoversForced": 13.8,
      "byRoster": {
        "d1": 48.7,
        "d5": 49.5,
        "d10": 48.4
      },
      "vs": {
        "drop_coverage": 51.9,
        "full_court_press": 48.8,
        "half_court_trap": 44.3,
        "match_up_zone": 50.1,
        "no_middle": 46.2,
        "pack_line": 51.3,
        "switch_everything": 49.6
      }
    },
    {
      "id": "drop_coverage",
      "name": "Drop Coverage Defense",
      "games": 7560,
      "winPct": 48.6,
      "ci95": 1.1,
      "pointsFor": 117.1,
      "pointsAgainst": 117.6,
      "margin": -0.5,
      "possessions": 100.3,
      "offRating": 116.8,
      "defRating": 117.5,
      "threeShare": 44.8,
      "turnovers": 14.4,
      "turnoversForced": 12.1,
      "byRoster": {
        "d1": 50,
        "d5": 46.2,
        "d10": 49.4
      },
      "vs": {
        "full_court_press": 50.6,
        "half_court_trap": 46.3,
        "man_to_man": 48.1,
        "match_up_zone": 49.4,
        "no_middle": 49.2,
        "pack_line": 48.5,
        "switch_everything": 47.9
      }
    }
  ],
  "combo": {
    "offense": "princeton",
    "defense": "full_court_press",
    "opponent": "mix",
    "games": 3600,
    "winPct": 52.7,
    "ci95": 1.6,
    "margin": 0.8,
    "byRoster": {
      "d1": 52.5,
      "d5": 52,
      "d10": 53.5
    }
  },
  "matrix": {
    "five_out": {
      "drop_coverage": {
        "games": 1404,
        "winPct": 57.1,
        "offRating": 119.8,
        "turnovers": 10.4
      },
      "full_court_press": {
        "games": 1404,
        "winPct": 48.7,
        "offRating": 116.5,
        "turnovers": 17.3
      },
      "half_court_trap": {
        "games": 1404,
        "winPct": 49.4,
        "offRating": 116.8,
        "turnovers": 15.7
      },
      "man_to_man": {
        "games": 1404,
        "winPct": 49.2,
        "offRating": 116.6,
        "turnovers": 12.3
      },
      "match_up_zone": {
        "games": 1404,
        "winPct": 47.3,
        "offRating": 116,
        "turnovers": 9.4
      },
      "no_middle": {
        "games": 1404,
        "winPct": 48.1,
        "offRating": 115.8,
        "turnovers": 11.1
      },
      "pack_line": {
        "games": 1404,
        "winPct": 54.6,
        "offRating": 119.5,
        "turnovers": 10.9
      },
      "switch_everything": {
        "games": 1404,
        "winPct": 48.6,
        "offRating": 115.2,
        "turnovers": 12.4
      }
    },
    "motion": {
      "drop_coverage": {
        "games": 1404,
        "winPct": 46,
        "offRating": 116,
        "turnovers": 12.5
      },
      "full_court_press": {
        "games": 1404,
        "winPct": 49.6,
        "offRating": 116.9,
        "turnovers": 20.2
      },
      "half_court_trap": {
        "games": 1404,
        "winPct": 49.9,
        "offRating": 116.6,
        "turnovers": 17.7
      },
      "man_to_man": {
        "games": 1404,
        "winPct": 49.9,
        "offRating": 117.2,
        "turnovers": 14.1
      },
      "match_up_zone": {
        "games": 1404,
        "winPct": 48.6,
        "offRating": 116.6,
        "turnovers": 11.2
      },
      "no_middle": {
        "games": 1404,
        "winPct": 48.5,
        "offRating": 116.2,
        "turnovers": 13.1
      },
      "pack_line": {
        "games": 1404,
        "winPct": 46.4,
        "offRating": 116,
        "turnovers": 12.6
      },
      "switch_everything": {
        "games": 1404,
        "winPct": 53.3,
        "offRating": 117.6,
        "turnovers": 14.3
      }
    },
    "pace_and_space": {
      "drop_coverage": {
        "games": 1404,
        "winPct": 56.1,
        "offRating": 120.4,
        "turnovers": 12.3
      },
      "full_court_press": {
        "games": 1404,
        "winPct": 47.1,
        "offRating": 114.9,
        "turnovers": 19.9
      },
      "half_court_trap": {
        "games": 1404,
        "winPct": 48.1,
        "offRating": 115.9,
        "turnovers": 18.1
      },
      "man_to_man": {
        "games": 1404,
        "winPct": 49.1,
        "offRating": 116.5,
        "turnovers": 14.1
      },
      "match_up_zone": {
        "games": 1404,
        "winPct": 48.2,
        "offRating": 116.1,
        "turnovers": 10.8
      },
      "no_middle": {
        "games": 1404,
        "winPct": 49.1,
        "offRating": 116.4,
        "turnovers": 12.8
      },
      "pack_line": {
        "games": 1404,
        "winPct": 55.8,
        "offRating": 120.1,
        "turnovers": 12.2
      },
      "switch_everything": {
        "games": 1404,
        "winPct": 44.5,
        "offRating": 114.2,
        "turnovers": 14.1
      }
    },
    "princeton": {
      "drop_coverage": {
        "games": 1404,
        "winPct": 46.8,
        "offRating": 115.5,
        "turnovers": 11.6
      },
      "full_court_press": {
        "games": 1404,
        "winPct": 56.7,
        "offRating": 118,
        "turnovers": 18.5
      },
      "half_court_trap": {
        "games": 1404,
        "winPct": 54.6,
        "offRating": 117.6,
        "turnovers": 17
      },
      "man_to_man": {
        "games": 1404,
        "winPct": 52.1,
        "offRating": 117.3,
        "turnovers": 13.3
      },
      "match_up_zone": {
        "games": 1404,
        "winPct": 52.6,
        "offRating": 117.2,
        "turnovers": 10.2
      },
      "no_middle": {
        "games": 1404,
        "winPct": 51.1,
        "offRating": 116.5,
        "turnovers": 11.9
      },
      "pack_line": {
        "games": 1404,
        "winPct": 46.5,
        "offRating": 115.8,
        "turnovers": 11.7
      },
      "switch_everything": {
        "games": 1404,
        "winPct": 54.6,
        "offRating": 117.9,
        "turnovers": 13.4
      }
    },
    "small_ball": {
      "drop_coverage": {
        "games": 1404,
        "winPct": 58.5,
        "offRating": 120.8,
        "turnovers": 11.4
      },
      "full_court_press": {
        "games": 1404,
        "winPct": 46.2,
        "offRating": 115,
        "turnovers": 18.8
      },
      "half_court_trap": {
        "games": 1404,
        "winPct": 49.5,
        "offRating": 116.1,
        "turnovers": 16.9
      },
      "man_to_man": {
        "games": 1404,
        "winPct": 50.9,
        "offRating": 116.9,
        "turnovers": 13.1
      },
      "match_up_zone": {
        "games": 1404,
        "winPct": 46.4,
        "offRating": 116.6,
        "turnovers": 9.9
      },
      "no_middle": {
        "games": 1404,
        "winPct": 52.8,
        "offRating": 117.4,
        "turnovers": 11.7
      },
      "pack_line": {
        "games": 1404,
        "winPct": 56.4,
        "offRating": 119.5,
        "turnovers": 11.4
      },
      "switch_everything": {
        "games": 1404,
        "winPct": 42.5,
        "offRating": 115.1,
        "turnovers": 13.2
      }
    },
    "spread_pick_and_roll": {
      "drop_coverage": {
        "games": 1404,
        "winPct": 49.6,
        "offRating": 117.2,
        "turnovers": 12.4
      },
      "full_court_press": {
        "games": 1404,
        "winPct": 46.7,
        "offRating": 115.1,
        "turnovers": 19.8
      },
      "half_court_trap": {
        "games": 1404,
        "winPct": 46.9,
        "offRating": 115.3,
        "turnovers": 17.7
      },
      "man_to_man": {
        "games": 1404,
        "winPct": 50.9,
        "offRating": 117.1,
        "turnovers": 13.9
      },
      "match_up_zone": {
        "games": 1404,
        "winPct": 51.1,
        "offRating": 118.2,
        "turnovers": 10.7
      },
      "no_middle": {
        "games": 1404,
        "winPct": 49.3,
        "offRating": 116.6,
        "turnovers": 12.6
      },
      "pack_line": {
        "games": 1404,
        "winPct": 51.1,
        "offRating": 117.9,
        "turnovers": 12.3
      },
      "switch_everything": {
        "games": 1404,
        "winPct": 50.7,
        "offRating": 117,
        "turnovers": 14.2
      }
    },
    "run_and_gun": {
      "drop_coverage": {
        "games": 1404,
        "winPct": 49.9,
        "offRating": 117,
        "turnovers": 13.6
      },
      "full_court_press": {
        "games": 1404,
        "winPct": 46.2,
        "offRating": 115.3,
        "turnovers": 21.8
      },
      "half_court_trap": {
        "games": 1404,
        "winPct": 46.4,
        "offRating": 115.4,
        "turnovers": 19.7
      },
      "man_to_man": {
        "games": 1404,
        "winPct": 52.6,
        "offRating": 117.8,
        "turnovers": 15.4
      },
      "match_up_zone": {
        "games": 1404,
        "winPct": 56.3,
        "offRating": 118.9,
        "turnovers": 12
      },
      "no_middle": {
        "games": 1404,
        "winPct": 46.4,
        "offRating": 116.6,
        "turnovers": 14.1
      },
      "pack_line": {
        "games": 1404,
        "winPct": 47.1,
        "offRating": 116.6,
        "turnovers": 13.6
      },
      "switch_everything": {
        "games": 1404,
        "winPct": 53.3,
        "offRating": 117.3,
        "turnovers": 15.8
      }
    },
    "triangle": {
      "drop_coverage": {
        "games": 1404,
        "winPct": 40,
        "offRating": 113.4,
        "turnovers": 12.4
      },
      "full_court_press": {
        "games": 1404,
        "winPct": 51.1,
        "offRating": 116.8,
        "turnovers": 19.8
      },
      "half_court_trap": {
        "games": 1404,
        "winPct": 46,
        "offRating": 115.6,
        "turnovers": 18.3
      },
      "man_to_man": {
        "games": 1404,
        "winPct": 50.9,
        "offRating": 117.1,
        "turnovers": 14.1
      },
      "match_up_zone": {
        "games": 1404,
        "winPct": 54.6,
        "offRating": 117.9,
        "turnovers": 10.9
      },
      "no_middle": {
        "games": 1404,
        "winPct": 47.1,
        "offRating": 115.9,
        "turnovers": 12.8
      },
      "pack_line": {
        "games": 1404,
        "winPct": 43.8,
        "offRating": 114,
        "turnovers": 12.4
      },
      "switch_everything": {
        "games": 1404,
        "winPct": 58.3,
        "offRating": 119.3,
        "turnovers": 14.3
      }
    }
  }
}