{
  "schema": 2,
  "method": "reference-elo-v1",
  "panelSha256": "197c97f1aaa89f81b70fa287f3e96b3ca9501a317458e38fcf76f5493f4cec81",
  "createdAt": "2026-11-01T14:07:15.560Z",
  "protocol": {
    "gamesPerOpponent": 20,
    "opponents": [
      {
        "id": "easy-v2",
        "elo": 1387
      },
      {
        "id": "nn-256-v1",
        "elo": 1440
      },
      {
        "id": "code-table-v1",
        "elo": 1500
      }
    ],
    "priorMean": 1500,
    "priorSd": 400,
    "pairedSeats": true,
    "balancedFirst": true
  },
  "policies": [
    {
      "api": "royale-policy-v1",
      "id": "random-v1",
      "name": "Random",
      "author": "3Card Royale",
      "license": "MIT",
      "type": "javascript",
      "rules": "1.0.0",
      "episode": "game",
      "information": "public",
      "memory": "none",
      "artifact": {
        "file": "policy.mjs",
        "bytes": 131,
        "sha256": "f5ffd15a37eef8ab1d24c86844c6b35afada12ab9074e421656b6a9189f62d0c"
      }
    },
    {
      "api": "royale-policy-v1",
      "id": "sdk-code-v1",
      "name": "SDK Code AI",
      "author": "3Card Royale",
      "license": "MIT",
      "type": "javascript",
      "rules": "1.0.0",
      "episode": "game",
      "information": "public",
      "memory": "none",
      "artifact": {
        "file": "policy.mjs",
        "bytes": 199,
        "sha256": "1af7c73dcaf625eefbfdeec7e1a85c25ac6a8395d123eb5accff42051bca3f4b"
      }
    },
    {
      "api": "royale-policy-v1",
      "id": "easy-v2",
      "name": "Easy · 64",
      "author": "3Card Royale",
      "license": "MIT",
      "type": "javascript",
      "rules": "1.0.0",
      "episode": "game",
      "information": "public",
      "memory": "none",
      "artifact": {
        "file": "policy.mjs",
        "bytes": 199,
        "sha256": "e7d082e63ebd817e5e0c9b078c073b492e453af4e19b49b518fa2744c16d78e7"
      }
    },
    {
      "api": "royale-policy-v1",
      "id": "code-table-v1",
      "name": "Code AI",
      "author": "3Card Royale",
      "license": "MIT",
      "type": "javascript",
      "rules": "1.0.0",
      "episode": "game",
      "information": "public",
      "memory": "none",
      "artifact": {
        "file": "policy.mjs",
        "bytes": 1533,
        "sha256": "fe07b4669f18a59fa4cc28fe9c7fa4c4814c67fd0608262582a45a3085b81ff6"
      }
    },
    {
      "api": "royale-policy-v1",
      "id": "nn-256-v1",
      "name": "NN · 256 → 128",
      "author": "3Card Royale",
      "license": "MIT",
      "type": "onnx",
      "rules": "1.0.0",
      "episode": "game",
      "information": "public",
      "memory": "none",
      "artifact": {
        "file": "policy.onnx",
        "bytes": 552407,
        "sha256": "5b98061d4188c116080eb6784c6378536a89e0b3c1db333df88217379e4dde13"
      },
      "features": "gym-v1"
    },
    {
      "api": "royale-policy-v1",
      "id": "nn-512-v1",
      "name": "NN · 512 → 256",
      "author": "lucienzhu",
      "license": "MIT",
      "type": "onnx",
      "rules": "1.0.0",
      "episode": "game",
      "information": "public",
      "memory": "none",
      "artifact": {
        "file": "policy.onnx",
        "bytes": 1365463,
        "sha256": "6ecafc81a29aefcff3cb9922f9070db42dc84b81fe7c937fc08de1354b7d10de"
      },
      "features": "gym-v1"
    },
    {
      "id": "nn-structured-v2",
      "name": "NN · Structured 256 → 128",
      "api": "royale-policy-v2",
      "type": "onnx",
      "author": "@lucienzhu",
      "license": "MIT",
      "rules": "1.0.0",
      "episode": "game",
      "information": "public",
      "memory": "none",
      "features": "structured-v2",
      "actions": "actions-v2",
      "artifact": {
        "file": "policy.onnx",
        "bytes": 916663,
        "sha256": "16e452b48837e6fa681216c13279bbe500997c97b86f56efa19e449b1699baf3"
      }
    }
  ],
  "leaderboard": [
    {
      "id": "code-table-v1",
      "elo": 1500,
      "games": 80,
      "wins": 59,
      "losses": 21,
      "provisional": false,
      "reference": true,
      "opponents": [
        {
          "id": "nn-512-v1",
          "games": 20,
          "wins": 12
        },
        {
          "id": "nn-structured-v2",
          "games": 20,
          "wins": 15
        },
        {
          "id": "random-v1",
          "games": 20,
          "wins": 20
        },
        {
          "id": "sdk-code-v1",
          "games": 20,
          "wins": 12
        }
      ],
      "latencyP95Ms": 3.197,
      "decisions": 807
    },
    {
      "id": "sdk-code-v1",
      "elo": 1455,
      "games": 60,
      "wins": 31,
      "losses": 29,
      "provisional": true,
      "reference": false,
      "opponents": [
        {
          "id": "code-table-v1",
          "elo": 1500,
          "games": 20,
          "wins": 8
        },
        {
          "id": "easy-v2",
          "elo": 1387,
          "games": 20,
          "wins": 15
        },
        {
          "id": "nn-256-v1",
          "elo": 1440,
          "games": 20,
          "wins": 8
        }
      ],
      "latencyP95Ms": 1.224,
      "decisions": 705,
      "updatedAt": "2026-10-27T12:27:28.328Z",
      "sourceCommit": "504645db4625595084aaad8f43d10b6db97450e9",
      "runUrl": "https://github.com/lucienzhu/3card-royale/actions/runs/40503863484"
    },
    {
      "id": "nn-512-v1",
      "elo": 1443,
      "games": 60,
      "wins": 30,
      "losses": 30,
      "provisional": true,
      "reference": false,
      "opponents": [
        {
          "id": "code-table-v1",
          "elo": 1500,
          "games": 20,
          "wins": 8
        },
        {
          "id": "easy-v2",
          "elo": 1387,
          "games": 20,
          "wins": 13
        },
        {
          "id": "nn-256-v1",
          "elo": 1440,
          "games": 20,
          "wins": 9
        }
      ],
      "latencyP95Ms": 4.096,
      "decisions": 686,
      "updatedAt": "2026-10-27T14:34:28.080Z",
      "sourceCommit": "6d9b2d1942d2133ad5ef22fff92c4b4aba946a17",
      "runUrl": "https://github.com/lucienzhu/3card-royale/actions/runs/40522335018"
    },
    {
      "id": "nn-256-v1",
      "elo": 1440,
      "games": 80,
      "wins": 60,
      "losses": 20,
      "provisional": false,
      "reference": true,
      "opponents": [
        {
          "id": "nn-512-v1",
          "games": 20,
          "wins": 11
        },
        {
          "id": "nn-structured-v2",
          "games": 20,
          "wins": 17
        },
        {
          "id": "random-v1",
          "games": 20,
          "wins": 20
        },
        {
          "id": "sdk-code-v1",
          "games": 20,
          "wins": 12
        }
      ],
      "latencyP95Ms": 2.547,
      "decisions": 782
    },
    {
      "id": "easy-v2",
      "elo": 1387,
      "games": 80,
      "wins": 46,
      "losses": 34,
      "provisional": false,
      "reference": true,
      "opponents": [
        {
          "id": "nn-512-v1",
          "games": 20,
          "wins": 7
        },
        {
          "id": "nn-structured-v2",
          "games": 20,
          "wins": 14
        },
        {
          "id": "random-v1",
          "games": 20,
          "wins": 20
        },
        {
          "id": "sdk-code-v1",
          "games": 20,
          "wins": 5
        }
      ],
      "latencyP95Ms": 1.353,
      "decisions": 975
    },
    {
      "id": "nn-structured-v2",
      "elo": 1237,
      "games": 60,
      "wins": 14,
      "losses": 46,
      "provisional": true,
      "reference": false,
      "opponents": [
        {
          "id": "code-table-v1",
          "elo": 1500,
          "games": 20,
          "wins": 5
        },
        {
          "id": "easy-v2",
          "elo": 1387,
          "games": 20,
          "wins": 6
        },
        {
          "id": "nn-256-v1",
          "elo": 1440,
          "games": 20,
          "wins": 3
        }
      ],
      "latencyP95Ms": 1.049,
      "decisions": 608,
      "updatedAt": "2026-11-01T14:07:15.560Z",
      "sourceCommit": "7911e209e9a68fc80b8a8ca957f957bf99598896",
      "runUrl": ""
    },
    {
      "id": "random-v1",
      "elo": 703,
      "games": 60,
      "wins": 0,
      "losses": 60,
      "provisional": true,
      "reference": false,
      "opponents": [
        {
          "id": "code-table-v1",
          "elo": 1500,
          "games": 20,
          "wins": 0
        },
        {
          "id": "easy-v2",
          "elo": 1387,
          "games": 20,
          "wins": 0
        },
        {
          "id": "nn-256-v1",
          "elo": 1440,
          "games": 20,
          "wins": 0
        }
      ],
      "latencyP95Ms": 0.425,
      "decisions": 260,
      "updatedAt": "2026-10-27T11:56:48.461Z",
      "sourceCommit": "d1bae68c2ef96618a64006fa725ef24057b849f9",
      "runUrl": "https://github.com/lucienzhu/3card-royale/actions/runs/40499902327"
    }
  ]
}
