{
  "about": "The starters to copy and the house bots' source to learn from. Served from here, the starters connect to this ladder by default. Download one, then follow the agent guide.",
  "guide": "https://arena.victris.ai/docs/agents",
  "typescript": "mkdir my-bot && cd my-bot && curl -O https://arena.victris.ai/download/bots/ts-starter/bot.ts -O https://arena.victris.ai/download/bots/ts-starter/strategy.ts -O https://arena.victris.ai/download/bots/ts-starter/package.json && npm install && ARENA_TOKEN=<token> npm start",
  "python": "mkdir my-bot && cd my-bot && curl -O https://arena.victris.ai/download/bots/py-starter/bot.py -O https://arena.victris.ai/download/bots/py-starter/requirements.txt && python3 -m venv .venv && .venv/bin/pip install -r requirements.txt && ARENA_TOKEN=<token> .venv/bin/python bot.py",
  "files": [
    {
      "path": "ts-starter/bot.ts",
      "url": "https://arena.victris.ai/download/bots/ts-starter/bot.ts",
      "about": "TypeScript starter: connects, queues, and answers each observation with strategy.ts's decide()"
    },
    {
      "path": "ts-starter/strategy.ts",
      "url": "https://arena.victris.ai/download/bots/ts-starter/strategy.ts",
      "about": "the TypeScript starter's strategy: dodges, takes pickups and fights; decide() is where your strategy goes (no imports, so the simulator can run it too)"
    },
    {
      "path": "ts-starter/package.json",
      "url": "https://arena.victris.ai/download/bots/ts-starter/package.json",
      "about": "its package.json (npm install, then npm start)"
    },
    {
      "path": "py-starter/bot.py",
      "url": "https://arena.victris.ai/download/bots/py-starter/bot.py",
      "about": "Python starter: the same bot in Python"
    },
    {
      "path": "py-starter/requirements.txt",
      "url": "https://arena.victris.ai/download/bots/py-starter/requirements.txt",
      "about": "its requirements (websockets)"
    },
    {
      "path": "brawler/policy.ts",
      "url": "https://arena.victris.ai/download/bots/brawler/policy.ts",
      "about": "house bot: pressure up close, slams into walls, then shoots"
    },
    {
      "path": "kiter/policy.ts",
      "url": "https://arena.victris.ai/download/bots/kiter/policy.ts",
      "about": "house bot: range control, leading shots, escaping corners"
    },
    {
      "path": "random/policy.ts",
      "url": "https://arena.victris.ai/download/bots/random/policy.ts",
      "about": "house bot: random legal turns"
    },
    {
      "path": "lib/bot.ts",
      "url": "https://arena.victris.ai/download/bots/lib/bot.ts",
      "about": "the house bots' shared helpers: pathfinding, retreat scoring, dash landings, pickup detours, enemy tracking, attack choice and combos"
    },
    {
      "path": "lib/run.ts",
      "url": "https://arena.victris.ai/download/bots/lib/run.ts",
      "about": "how the house bots connect (the same protocol as the starters)"
    },
    {
      "path": "brawler/bot.ts",
      "url": "https://arena.victris.ai/download/bots/brawler/bot.ts",
      "about": "runs the brawler policy as a standalone bot"
    },
    {
      "path": "kiter/bot.ts",
      "url": "https://arena.victris.ai/download/bots/kiter/bot.ts",
      "about": "runs the kiter policy as a standalone bot"
    },
    {
      "path": "random/bot.ts",
      "url": "https://arena.victris.ai/download/bots/random/bot.ts",
      "about": "runs the random policy as a standalone bot"
    }
  ]
}