[
  {
    "ladder_id": "saintcon-precon-2026-10-12",
    "ladder": {
      "visible": true,
      "id": "saintcon-precon-2026-10-12",
      "name": "SAINTCON 2026 Precon: Arena Fighter Playtest",
      "description": "Test Arena Fighter before SAINTCON, build your bot, and earn five unofficial testing flags to exercise the achievement system. Everyone can preregister; no staff approval is needed.",
      "access": "open",
      "enabled": true,
      "opens_at": "2026-10-12T18:00:00.000Z",
      "closes_at": "2026-10-16T12:00:00.000Z",
      "maps": [],
      "max_concurrent": 320,
      "owner_concurrency": 100,
      "phase": "open",
      "leaderboard_url": "/ladder?ladder=saintcon-precon-2026-10-12",
      "events": [
        {
          "id": "saintcon-precon-2026-10-12",
          "name": "SAINTCON 2026 Precon: Arena Fighter Playtest",
          "metadata": {
            "kind": "precon",
            "purpose": "Playtest Arena Fighter, test all five achievements and flag reveals, and help players develop their bots before SAINTCON.",
            "audience": "New and returning bot authors of all experience levels.",
            "format": "Online playtest with five unofficial testing flags and separate standings. Testing flags are not part of the official Hackers Challenge.",
            "preparation": "Preregister with your Arena account, register a bot, and use the starter bots and simulator to develop it before opening. A second precon may follow next week; the main SAINTCON event is October 27–30."
          },
          "image": null,
          "timezone": "America/Denver"
        }
      ]
    },
    "id": "saintcon-precon-2026-10-12",
    "name": "SAINTCON 2026 Precon: Arena Fighter Playtest",
    "description": "Test Arena Fighter before SAINTCON, build your bot, and earn five unofficial testing flags to exercise the achievement system. Everyone can preregister; no staff approval is needed.",
    "opens_at": "2026-10-12T18:00:00.000Z",
    "closes_at": "2026-10-16T12:00:00.000Z",
    "timezone": "America/Denver",
    "image": null,
    "metadata": {
      "kind": "precon",
      "purpose": "Playtest Arena Fighter, test all five achievements and flag reveals, and help players develop their bots before SAINTCON.",
      "audience": "New and returning bot authors of all experience levels.",
      "format": "Online playtest with five unofficial testing flags and separate standings. Testing flags are not part of the official Hackers Challenge.",
      "preparation": "Preregister with your Arena account, register a bot, and use the starter bots and simulator to develop it before opening. A second precon may follow next week; the main SAINTCON event is October 27–30."
    },
    "submission_url": null,
    "submission_instructions": "",
    "flag_mode": "testing",
    "revision": "house-v1",
    "enabled": true,
    "phase": "open",
    "ready": true,
    "unavailable_opponents": [],
    "opponents": [
      {
        "kind": "ts-starter",
        "name": "h-a6fb3b45-ts-starter",
        "version": "starter-17",
        "display_name": "Starter"
      },
      {
        "kind": "brawler",
        "name": "h-a6fb3b45-brawler",
        "version": "brawler-18",
        "display_name": "Brawler"
      },
      {
        "kind": "kiter",
        "name": "h-a6fb3b45-kiter",
        "version": "kiter-17",
        "display_name": "Kiter"
      },
      {
        "kind": "champion",
        "name": "h-a6fb3b45-champion",
        "version": "l3-6420",
        "display_name": "Champion"
      }
    ],
    "achievements": [
      {
        "id": "first-blood",
        "name": "First Blood",
        "condition": "Win against any standard house bot."
      },
      {
        "id": "bank-shot",
        "name": "Bank Shot",
        "condition": "Win against a house bot and land a damaging ricochet in that match."
      },
      {
        "id": "wall-breaker",
        "name": "Wall Breaker",
        "condition": "Win against a house bot and cause a damaging repulsor wall slam in that match."
      },
      {
        "id": "house-sweep",
        "name": "House Sweep",
        "condition": "Beat Starter, Brawler, and Kiter."
      },
      {
        "id": "champion-slayer",
        "name": "Champion Slayer",
        "condition": "Beat Champion."
      }
    ]
  }
]