{
  "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": 51312,
  "gamesPerPart": {
    "offense": 10080,
    "defense": 10080,
    "matrix": 29952,
    "combo": 1200
  },
  "offense": [
    {
      "id": "princeton",
      "name": "Princeton Offense",
      "games": 2520,
      "winPct": 62.3,
      "ci95": 1.9,
      "pointsFor": 115.8,
      "pointsAgainst": 111.6,
      "margin": 4.2,
      "possessions": 96.1,
      "offRating": 120.4,
      "defRating": 116.3,
      "threeShare": 44.9,
      "turnovers": 10.6,
      "turnoversForced": 14.2,
      "byRoster": {
        "d1": 64,
        "d5": 59.6,
        "d10": 63.1
      },
      "vs": {
        "five_out": 66.7,
        "motion": 56.1,
        "pace_and_space": 66.1,
        "small_ball": 65,
        "spread_pick_and_roll": 60,
        "run_and_gun": 70.3,
        "triangle": 51.7
      }
    },
    {
      "id": "motion",
      "name": "Motion Offense",
      "games": 2520,
      "winPct": 58.2,
      "ci95": 1.9,
      "pointsFor": 118.2,
      "pointsAgainst": 115.8,
      "margin": 2.5,
      "possessions": 99.4,
      "offRating": 119,
      "defRating": 116.6,
      "threeShare": 44.2,
      "turnovers": 12.2,
      "turnoversForced": 14.4,
      "byRoster": {
        "d1": 57.3,
        "d5": 58.8,
        "d10": 58.6
      },
      "vs": {
        "five_out": 63.1,
        "pace_and_space": 62.5,
        "princeton": 43.9,
        "small_ball": 60.8,
        "spread_pick_and_roll": 55,
        "run_and_gun": 71.7,
        "triangle": 50.6
      }
    },
    {
      "id": "triangle",
      "name": "Triangle Offense",
      "games": 2520,
      "winPct": 57.2,
      "ci95": 1.9,
      "pointsFor": 115.9,
      "pointsAgainst": 113.2,
      "margin": 2.7,
      "possessions": 97.3,
      "offRating": 119.1,
      "defRating": 116.3,
      "threeShare": 39.8,
      "turnovers": 11.9,
      "turnoversForced": 14.1,
      "byRoster": {
        "d1": 58.7,
        "d5": 57.1,
        "d10": 55.8
      },
      "vs": {
        "five_out": 58.9,
        "motion": 49.4,
        "pace_and_space": 62.5,
        "princeton": 48.3,
        "small_ball": 57.8,
        "spread_pick_and_roll": 55,
        "run_and_gun": 68.6
      }
    },
    {
      "id": "spread_pick_and_roll",
      "name": "Spread Pick-and-Roll Offense",
      "games": 2520,
      "winPct": 51,
      "ci95": 2,
      "pointsFor": 116.1,
      "pointsAgainst": 116,
      "margin": 0.1,
      "possessions": 99.7,
      "offRating": 116.4,
      "defRating": 116.3,
      "threeShare": 43.7,
      "turnovers": 14.5,
      "turnoversForced": 14.1,
      "byRoster": {
        "d1": 52,
        "d5": 51.1,
        "d10": 49.9
      },
      "vs": {
        "five_out": 51.4,
        "motion": 45,
        "pace_and_space": 54.7,
        "princeton": 40,
        "small_ball": 57.8,
        "run_and_gun": 63.1,
        "triangle": 45
      }
    },
    {
      "id": "small_ball",
      "name": "Small Ball",
      "games": 2520,
      "winPct": 45.8,
      "ci95": 1.9,
      "pointsFor": 118.9,
      "pointsAgainst": 120,
      "margin": -1.1,
      "possessions": 103.3,
      "offRating": 115.1,
      "defRating": 116.2,
      "threeShare": 48.5,
      "turnovers": 14.9,
      "turnoversForced": 14.8,
      "byRoster": {
        "d1": 44.4,
        "d5": 48.2,
        "d10": 44.8
      },
      "vs": {
        "five_out": 51.1,
        "motion": 39.2,
        "pace_and_space": 54.2,
        "princeton": 35,
        "spread_pick_and_roll": 42.2,
        "run_and_gun": 56.7,
        "triangle": 42.2
      }
    },
    {
      "id": "five_out",
      "name": "5-Out Offense",
      "games": 2520,
      "winPct": 45.7,
      "ci95": 1.9,
      "pointsFor": 115.3,
      "pointsAgainst": 116.8,
      "margin": -1.5,
      "possessions": 100.7,
      "offRating": 114.6,
      "defRating": 116,
      "threeShare": 48.4,
      "turnovers": 14.3,
      "turnoversForced": 14.4,
      "byRoster": {
        "d1": 46,
        "d5": 46.7,
        "d10": 44.5
      },
      "vs": {
        "motion": 36.9,
        "pace_and_space": 52.5,
        "princeton": 33.3,
        "small_ball": 48.9,
        "spread_pick_and_roll": 48.6,
        "run_and_gun": 58.6,
        "triangle": 41.1
      }
    },
    {
      "id": "pace_and_space",
      "name": "Pace and Space",
      "games": 2520,
      "winPct": 44.2,
      "ci95": 1.9,
      "pointsFor": 118,
      "pointsAgainst": 119.7,
      "margin": -1.7,
      "possessions": 102.7,
      "offRating": 114.8,
      "defRating": 116.6,
      "threeShare": 49,
      "turnovers": 16.2,
      "turnoversForced": 14.5,
      "byRoster": {
        "d1": 43.5,
        "d5": 43,
        "d10": 46.3
      },
      "vs": {
        "five_out": 47.5,
        "motion": 37.5,
        "princeton": 33.9,
        "small_ball": 45.8,
        "spread_pick_and_roll": 45.3,
        "run_and_gun": 62.2,
        "triangle": 37.5
      }
    },
    {
      "id": "run_and_gun",
      "name": "Transition Offense (Run and Gun)",
      "games": 2520,
      "winPct": 35.6,
      "ci95": 1.9,
      "pointsFor": 120,
      "pointsAgainst": 125.2,
      "margin": -5.2,
      "possessions": 107.3,
      "offRating": 111.8,
      "defRating": 116.4,
      "threeShare": 40.9,
      "turnovers": 20.4,
      "turnoversForced": 14.5,
      "byRoster": {
        "d1": 34.2,
        "d5": 35.5,
        "d10": 37
      },
      "vs": {
        "five_out": 41.4,
        "motion": 28.3,
        "pace_and_space": 37.8,
        "princeton": 29.7,
        "small_ball": 43.3,
        "spread_pick_and_roll": 36.9,
        "triangle": 31.4
      }
    }
  ],
  "defense": [
    {
      "id": "full_court_press",
      "name": "Full-Court Press Defense",
      "games": 2520,
      "winPct": 58.5,
      "ci95": 1.9,
      "pointsFor": 121.7,
      "pointsAgainst": 118.4,
      "margin": 3.3,
      "possessions": 104.9,
      "offRating": 116,
      "defRating": 113,
      "threeShare": 44.9,
      "turnovers": 13.9,
      "turnoversForced": 22.2,
      "byRoster": {
        "d1": 58.8,
        "d5": 57.3,
        "d10": 59.4
      },
      "vs": {
        "drop_coverage": 66.1,
        "half_court_trap": 51.1,
        "man_to_man": 58.9,
        "match_up_zone": 57.2,
        "no_middle": 54.2,
        "pack_line": 67.5,
        "switch_everything": 54.4
      }
    },
    {
      "id": "no_middle",
      "name": "No-Middle Defense",
      "games": 2520,
      "winPct": 54.8,
      "ci95": 1.9,
      "pointsFor": 116,
      "pointsAgainst": 114.5,
      "margin": 1.5,
      "possessions": 99.9,
      "offRating": 116.1,
      "defRating": 114.5,
      "threeShare": 44.8,
      "turnovers": 14.4,
      "turnoversForced": 14.3,
      "byRoster": {
        "d1": 56,
        "d5": 55.2,
        "d10": 53.2
      },
      "vs": {
        "drop_coverage": 57.2,
        "full_court_press": 45.8,
        "half_court_trap": 52.5,
        "man_to_man": 58.6,
        "match_up_zone": 55.6,
        "pack_line": 61.9,
        "switch_everything": 51.9
      }
    },
    {
      "id": "half_court_trap",
      "name": "Half-Court Trap Defense",
      "games": 2520,
      "winPct": 54.6,
      "ci95": 1.9,
      "pointsFor": 118.5,
      "pointsAgainst": 116.5,
      "margin": 2,
      "possessions": 102,
      "offRating": 116.2,
      "defRating": 114.4,
      "threeShare": 44.9,
      "turnovers": 14,
      "turnoversForced": 19.2,
      "byRoster": {
        "d1": 54.4,
        "d5": 57.4,
        "d10": 51.9
      },
      "vs": {
        "drop_coverage": 57.2,
        "full_court_press": 48.9,
        "man_to_man": 57.8,
        "match_up_zone": 51.7,
        "no_middle": 47.5,
        "pack_line": 63.9,
        "switch_everything": 55
      }
    },
    {
      "id": "switch_everything",
      "name": "Switch Defense (Switch-Everything)",
      "games": 2520,
      "winPct": 52.3,
      "ci95": 2,
      "pointsFor": 116.3,
      "pointsAgainst": 115.8,
      "margin": 0.5,
      "possessions": 99.9,
      "offRating": 116.4,
      "defRating": 115.9,
      "threeShare": 45,
      "turnovers": 14.3,
      "turnoversForced": 14.4,
      "byRoster": {
        "d1": 50.1,
        "d5": 53,
        "d10": 53.9
      },
      "vs": {
        "drop_coverage": 63.3,
        "full_court_press": 45.6,
        "half_court_trap": 45,
        "man_to_man": 57.8,
        "match_up_zone": 48.6,
        "no_middle": 48.1,
        "pack_line": 58.1
      }
    },
    {
      "id": "match_up_zone",
      "name": "Match-Up Zone Defense",
      "games": 2520,
      "winPct": 51.9,
      "ci95": 2,
      "pointsFor": 116,
      "pointsAgainst": 115.6,
      "margin": 0.4,
      "possessions": 99.5,
      "offRating": 116.6,
      "defRating": 116.1,
      "threeShare": 45.1,
      "turnovers": 14.5,
      "turnoversForced": 11.8,
      "byRoster": {
        "d1": 53.2,
        "d5": 50.4,
        "d10": 52.3
      },
      "vs": {
        "drop_coverage": 58.1,
        "full_court_press": 42.8,
        "half_court_trap": 48.3,
        "man_to_man": 56.1,
        "no_middle": 44.4,
        "pack_line": 62.5,
        "switch_everything": 51.4
      }
    },
    {
      "id": "man_to_man",
      "name": "Man-to-Man Defense",
      "games": 2520,
      "winPct": 45.4,
      "ci95": 1.9,
      "pointsFor": 116.5,
      "pointsAgainst": 117.9,
      "margin": -1.4,
      "possessions": 99.8,
      "offRating": 116.7,
      "defRating": 118,
      "threeShare": 45.2,
      "turnovers": 14.5,
      "turnoversForced": 13.1,
      "byRoster": {
        "d1": 45.7,
        "d5": 45.4,
        "d10": 45.2
      },
      "vs": {
        "drop_coverage": 50.6,
        "full_court_press": 41.1,
        "half_court_trap": 42.2,
        "match_up_zone": 43.9,
        "no_middle": 41.4,
        "pack_line": 56.7,
        "switch_everything": 42.2
      }
    },
    {
      "id": "drop_coverage",
      "name": "Drop Coverage Defense",
      "games": 2520,
      "winPct": 42.9,
      "ci95": 1.9,
      "pointsFor": 116.9,
      "pointsAgainst": 119.4,
      "margin": -2.5,
      "possessions": 100.2,
      "offRating": 116.7,
      "defRating": 119.2,
      "threeShare": 44.9,
      "turnovers": 14.8,
      "turnoversForced": 10.8,
      "byRoster": {
        "d1": 43.6,
        "d5": 41.5,
        "d10": 43.6
      },
      "vs": {
        "full_court_press": 33.9,
        "half_court_trap": 42.8,
        "man_to_man": 49.4,
        "match_up_zone": 41.9,
        "no_middle": 42.8,
        "pack_line": 52.8,
        "switch_everything": 36.7
      }
    },
    {
      "id": "pack_line",
      "name": "Pack Line Defense",
      "games": 2520,
      "winPct": 39.5,
      "ci95": 1.9,
      "pointsFor": 116.5,
      "pointsAgainst": 120.3,
      "margin": -3.9,
      "possessions": 100.3,
      "offRating": 116.1,
      "defRating": 120,
      "threeShare": 45,
      "turnovers": 15,
      "turnoversForced": 9.6,
      "byRoster": {
        "d1": 38.2,
        "d5": 39.9,
        "d10": 40.5
      },
      "vs": {
        "drop_coverage": 47.2,
        "full_court_press": 32.5,
        "half_court_trap": 36.1,
        "man_to_man": 43.3,
        "match_up_zone": 37.5,
        "no_middle": 38.1,
        "switch_everything": 41.9
      }
    }
  ],
  "combo": {
    "offense": "princeton",
    "defense": "full_court_press",
    "opponent": "mix",
    "games": 1200,
    "winPct": 71.5,
    "ci95": 2.6,
    "margin": 7.6,
    "byRoster": {
      "d1": 70,
      "d5": 74,
      "d10": 70.5
    }
  },
  "matrix": {
    "five_out": {
      "drop_coverage": {
        "games": 468,
        "winPct": 52.6,
        "offRating": 118.1,
        "turnovers": 10.9
      },
      "full_court_press": {
        "games": 468,
        "winPct": 38,
        "offRating": 111.2,
        "turnovers": 22.3
      },
      "half_court_trap": {
        "games": 468,
        "winPct": 39.3,
        "offRating": 113,
        "turnovers": 19
      },
      "man_to_man": {
        "games": 468,
        "winPct": 51.1,
        "offRating": 115.9,
        "turnovers": 13.1
      },
      "match_up_zone": {
        "games": 468,
        "winPct": 41.5,
        "offRating": 113.3,
        "turnovers": 11.9
      },
      "no_middle": {
        "games": 468,
        "winPct": 38.5,
        "offRating": 111.8,
        "turnovers": 14.5
      },
      "pack_line": {
        "games": 468,
        "winPct": 56.8,
        "offRating": 119.4,
        "turnovers": 9.7
      },
      "switch_everything": {
        "games": 468,
        "winPct": 43.2,
        "offRating": 114.5,
        "turnovers": 14.2
      }
    },
    "motion": {
      "drop_coverage": {
        "games": 468,
        "winPct": 64.3,
        "offRating": 121.1,
        "turnovers": 8.7
      },
      "full_court_press": {
        "games": 468,
        "winPct": 51.3,
        "offRating": 116.2,
        "turnovers": 19.1
      },
      "half_court_trap": {
        "games": 468,
        "winPct": 51.9,
        "offRating": 117.1,
        "turnovers": 16.3
      },
      "man_to_man": {
        "games": 468,
        "winPct": 56.2,
        "offRating": 119.8,
        "turnovers": 11.1
      },
      "match_up_zone": {
        "games": 468,
        "winPct": 57.3,
        "offRating": 118.5,
        "turnovers": 10
      },
      "no_middle": {
        "games": 468,
        "winPct": 54.3,
        "offRating": 117.6,
        "turnovers": 12
      },
      "pack_line": {
        "games": 468,
        "winPct": 65,
        "offRating": 122.2,
        "turnovers": 7.8
      },
      "switch_everything": {
        "games": 468,
        "winPct": 57.3,
        "offRating": 119.1,
        "turnovers": 12.1
      }
    },
    "pace_and_space": {
      "drop_coverage": {
        "games": 468,
        "winPct": 50,
        "offRating": 118,
        "turnovers": 12.1
      },
      "full_court_press": {
        "games": 468,
        "winPct": 36.8,
        "offRating": 110.6,
        "turnovers": 24.6
      },
      "half_court_trap": {
        "games": 468,
        "winPct": 38.7,
        "offRating": 112.3,
        "turnovers": 21.3
      },
      "man_to_man": {
        "games": 468,
        "winPct": 51.3,
        "offRating": 116.8,
        "turnovers": 14.6
      },
      "match_up_zone": {
        "games": 468,
        "winPct": 45.7,
        "offRating": 114.7,
        "turnovers": 13.2
      },
      "no_middle": {
        "games": 468,
        "winPct": 41.2,
        "offRating": 112.7,
        "turnovers": 15.9
      },
      "pack_line": {
        "games": 468,
        "winPct": 54.3,
        "offRating": 118.8,
        "turnovers": 11
      },
      "switch_everything": {
        "games": 468,
        "winPct": 47.2,
        "offRating": 113.6,
        "turnovers": 15.8
      }
    },
    "princeton": {
      "drop_coverage": {
        "games": 468,
        "winPct": 63.7,
        "offRating": 121.9,
        "turnovers": 7.7
      },
      "full_court_press": {
        "games": 468,
        "winPct": 57.3,
        "offRating": 118.8,
        "turnovers": 16.9
      },
      "half_court_trap": {
        "games": 468,
        "winPct": 56.2,
        "offRating": 119.4,
        "turnovers": 14.5
      },
      "man_to_man": {
        "games": 468,
        "winPct": 61.8,
        "offRating": 121,
        "turnovers": 9.4
      },
      "match_up_zone": {
        "games": 468,
        "winPct": 62.4,
        "offRating": 120.1,
        "turnovers": 8.5
      },
      "no_middle": {
        "games": 468,
        "winPct": 52.4,
        "offRating": 118.4,
        "turnovers": 10.3
      },
      "pack_line": {
        "games": 468,
        "winPct": 68.4,
        "offRating": 123.2,
        "turnovers": 6.7
      },
      "switch_everything": {
        "games": 468,
        "winPct": 59.4,
        "offRating": 120,
        "turnovers": 10.6
      }
    },
    "small_ball": {
      "drop_coverage": {
        "games": 468,
        "winPct": 50.9,
        "offRating": 118.1,
        "turnovers": 11.2
      },
      "full_court_press": {
        "games": 468,
        "winPct": 39.1,
        "offRating": 111.6,
        "turnovers": 23
      },
      "half_court_trap": {
        "games": 468,
        "winPct": 43.6,
        "offRating": 113.9,
        "turnovers": 19.4
      },
      "man_to_man": {
        "games": 468,
        "winPct": 52.4,
        "offRating": 116.2,
        "turnovers": 13.8
      },
      "match_up_zone": {
        "games": 468,
        "winPct": 46.2,
        "offRating": 114.6,
        "turnovers": 11.9
      },
      "no_middle": {
        "games": 468,
        "winPct": 39.5,
        "offRating": 112.2,
        "turnovers": 14.8
      },
      "pack_line": {
        "games": 468,
        "winPct": 55.3,
        "offRating": 119.3,
        "turnovers": 9.6
      },
      "switch_everything": {
        "games": 468,
        "winPct": 44.7,
        "offRating": 115.4,
        "turnovers": 14.7
      }
    },
    "spread_pick_and_roll": {
      "drop_coverage": {
        "games": 468,
        "winPct": 56.6,
        "offRating": 118.2,
        "turnovers": 11
      },
      "full_court_press": {
        "games": 468,
        "winPct": 40.4,
        "offRating": 112.8,
        "turnovers": 22.4
      },
      "half_court_trap": {
        "games": 468,
        "winPct": 42.7,
        "offRating": 113.3,
        "turnovers": 19.2
      },
      "man_to_man": {
        "games": 468,
        "winPct": 54.9,
        "offRating": 118.7,
        "turnovers": 13.1
      },
      "match_up_zone": {
        "games": 468,
        "winPct": 47.2,
        "offRating": 116,
        "turnovers": 12.2
      },
      "no_middle": {
        "games": 468,
        "winPct": 45.9,
        "offRating": 113.5,
        "turnovers": 14
      },
      "pack_line": {
        "games": 468,
        "winPct": 60.5,
        "offRating": 121,
        "turnovers": 9.5
      },
      "switch_everything": {
        "games": 468,
        "winPct": 49.8,
        "offRating": 117.3,
        "turnovers": 14.3
      }
    },
    "run_and_gun": {
      "drop_coverage": {
        "games": 468,
        "winPct": 45.1,
        "offRating": 114.4,
        "turnovers": 16.2
      },
      "full_court_press": {
        "games": 468,
        "winPct": 21.8,
        "offRating": 106,
        "turnovers": 30.8
      },
      "half_court_trap": {
        "games": 468,
        "winPct": 26.5,
        "offRating": 107.8,
        "turnovers": 27
      },
      "man_to_man": {
        "games": 468,
        "winPct": 37.2,
        "offRating": 112.3,
        "turnovers": 19.2
      },
      "match_up_zone": {
        "games": 468,
        "winPct": 35,
        "offRating": 111.8,
        "turnovers": 17.4
      },
      "no_middle": {
        "games": 468,
        "winPct": 28.8,
        "offRating": 108.8,
        "turnovers": 20.5
      },
      "pack_line": {
        "games": 468,
        "winPct": 45.7,
        "offRating": 115.7,
        "turnovers": 14.4
      },
      "switch_everything": {
        "games": 468,
        "winPct": 35.9,
        "offRating": 111.8,
        "turnovers": 20.4
      }
    },
    "triangle": {
      "drop_coverage": {
        "games": 468,
        "winPct": 60,
        "offRating": 120.8,
        "turnovers": 8.5
      },
      "full_court_press": {
        "games": 468,
        "winPct": 49.8,
        "offRating": 116.3,
        "turnovers": 18.8
      },
      "half_court_trap": {
        "games": 468,
        "winPct": 54.7,
        "offRating": 118.2,
        "turnovers": 16
      },
      "man_to_man": {
        "games": 468,
        "winPct": 62.2,
        "offRating": 120.4,
        "turnovers": 10.7
      },
      "match_up_zone": {
        "games": 468,
        "winPct": 58.3,
        "offRating": 118.7,
        "turnovers": 9.6
      },
      "no_middle": {
        "games": 468,
        "winPct": 52.4,
        "offRating": 117.6,
        "turnovers": 11.6
      },
      "pack_line": {
        "games": 468,
        "winPct": 65.2,
        "offRating": 122.3,
        "turnovers": 7.5
      },
      "switch_everything": {
        "games": 468,
        "winPct": 60,
        "offRating": 119.4,
        "turnovers": 11.5
      }
    }
  }
}