{
  "openapi": "3.1.0",
  "info": {
    "title": "UrbanRats API (draft)",
    "version": "0.1.0",
    "description": "Generated from packages/contracts. Draft; not a certified partner API. Partner routes: docs/PARTNER-API.md."
  },
  "paths": {
    "/v1/games": {
      "get": {
        "summary": "Games. Unsigned: public catalogue. Signed (games:read): entitled catalogue with brand country allowlists",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "games": {
                      "type": "array",
                      "items": {
                        "anyOf": [
                          {
                            "type": "object",
                            "properties": {
                              "gameId": {
                                "type": "string",
                                "enum": [
                                  "traffic-pulse",
                                  "lane-duel",
                                  "next-class",
                                  "cycle-count",
                                  "harbor-count"
                                ]
                              },
                              "title": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 64
                              },
                              "rulesVersion": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 32
                              },
                              "mechanic": {
                                "type": "string",
                                "enum": [
                                  "TOTAL_COUNT_BANDS",
                                  "DIRECTION_DUEL",
                                  "FIRST_CLASS",
                                  "CYCLE_COUNT_BANDS",
                                  "BOAT_COUNT_BANDS"
                                ]
                              },
                              "readiness": {
                                "type": "string",
                                "enum": [
                                  "PLAYABLE_DEMO",
                                  "SIMULATION_ONLY",
                                  "BLOCKED"
                                ]
                              },
                              "realMoneyEnabled": {
                                "type": "boolean"
                              },
                              "requiredSourceCapability": {
                                "type": "string",
                                "enum": [
                                  "VIDEO_FIXED_ROAD",
                                  "VIDEO_TWO_DIRECTIONS",
                                  "VIDEO_CLASSIFIABLE",
                                  "VIDEO_BIKE_LANE",
                                  "VIDEO_HARBOR"
                                ]
                              },
                              "entitlements": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "properties": {
                                    "brandId": {
                                      "type": "string"
                                    },
                                    "countries": {
                                      "type": "array",
                                      "items": {
                                        "type": "string",
                                        "pattern": "^[A-Z]{2}$"
                                      }
                                    },
                                    "moneyMode": {
                                      "type": "string",
                                      "enum": [
                                        "DEMO",
                                        "REAL"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "brandId",
                                    "countries"
                                  ],
                                  "additionalProperties": false
                                }
                              }
                            },
                            "required": [
                              "gameId",
                              "title",
                              "rulesVersion",
                              "mechanic",
                              "readiness",
                              "realMoneyEnabled",
                              "requiredSourceCapability",
                              "entitlements"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "object",
                            "properties": {
                              "gameId": {
                                "type": "string",
                                "enum": [
                                  "traffic-pulse",
                                  "lane-duel",
                                  "next-class",
                                  "cycle-count",
                                  "harbor-count"
                                ]
                              },
                              "title": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 64
                              },
                              "rulesVersion": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 32
                              },
                              "mechanic": {
                                "type": "string",
                                "enum": [
                                  "TOTAL_COUNT_BANDS",
                                  "DIRECTION_DUEL",
                                  "FIRST_CLASS",
                                  "CYCLE_COUNT_BANDS",
                                  "BOAT_COUNT_BANDS"
                                ]
                              },
                              "readiness": {
                                "type": "string",
                                "enum": [
                                  "PLAYABLE_DEMO",
                                  "SIMULATION_ONLY",
                                  "BLOCKED"
                                ]
                              },
                              "realMoneyEnabled": {
                                "type": "boolean"
                              },
                              "requiredSourceCapability": {
                                "type": "string",
                                "enum": [
                                  "VIDEO_FIXED_ROAD",
                                  "VIDEO_TWO_DIRECTIONS",
                                  "VIDEO_CLASSIFIABLE",
                                  "VIDEO_BIKE_LANE",
                                  "VIDEO_HARBOR"
                                ]
                              }
                            },
                            "required": [
                              "gameId",
                              "title",
                              "rulesVersion",
                              "mechanic",
                              "readiness",
                              "realMoneyEnabled",
                              "requiredSourceCapability"
                            ],
                            "additionalProperties": false
                          }
                        ]
                      }
                    }
                  },
                  "required": [
                    "games"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/rounds/{gameRoundId}": {
      "get": {
        "summary": "PARTNER (signed, rounds:read): round snapshot of an entitled game (else 404)",
        "parameters": [
          {
            "name": "gameRoundId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "urSignature": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "gameRoundId": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 128
                    },
                    "state": {
                      "type": "string",
                      "enum": [
                        "SCHEDULED",
                        "BETTING_OPEN",
                        "BETTING_CLOSED",
                        "CAPTURING",
                        "VERIFYING",
                        "REVIEW_REQUIRED",
                        "RESULT_FINAL",
                        "SETTLING",
                        "SETTLED",
                        "VOIDING",
                        "VOIDED"
                      ]
                    },
                    "manifest": {
                      "type": "object",
                      "properties": {
                        "manifestVersion": {
                          "type": "number",
                          "const": 1
                        },
                        "gameRoundId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 128
                        },
                        "gameId": {
                          "type": "string",
                          "enum": [
                            "traffic-pulse",
                            "lane-duel",
                            "next-class",
                            "cycle-count",
                            "harbor-count"
                          ]
                        },
                        "rulesVersion": {
                          "type": "string",
                          "minLength": 1
                        },
                        "rulesHash": {
                          "type": "string",
                          "pattern": "^[0-9a-f]{64}$"
                        },
                        "modelVersion": {
                          "type": "string",
                          "minLength": 1
                        },
                        "modelHash": {
                          "anyOf": [
                            {
                              "type": "string",
                              "pattern": "^[0-9a-f]{64}$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "configHash": {
                          "type": "string",
                          "pattern": "^[0-9a-f]{64}$"
                        },
                        "cameraAlias": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 128
                        },
                        "sourceMode": {
                          "type": "string",
                          "enum": [
                            "LIVE",
                            "DELAYED_LIVE",
                            "RECORDED_DEMO",
                            "SIMULATION"
                          ]
                        },
                        "sourceEpoch": {
                          "anyOf": [
                            {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "captureWindowPts": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "startMicros": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "endMicros": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "startMicros",
                                "endMicros"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "roi": {
                          "minItems": 3,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "x": {
                                "type": "number",
                                "minimum": 0,
                                "maximum": 1
                              },
                              "y": {
                                "type": "number",
                                "minimum": 0,
                                "maximum": 1
                              }
                            },
                            "required": [
                              "x",
                              "y"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "line": {
                          "type": "object",
                          "properties": {
                            "lineId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 64
                            },
                            "a": {
                              "type": "object",
                              "properties": {
                                "x": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                },
                                "y": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                }
                              },
                              "required": [
                                "x",
                                "y"
                              ],
                              "additionalProperties": false
                            },
                            "b": {
                              "type": "object",
                              "properties": {
                                "x": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                },
                                "y": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                }
                              },
                              "required": [
                                "x",
                                "y"
                              ],
                              "additionalProperties": false
                            },
                            "countedDirection": {
                              "type": "string",
                              "enum": [
                                "A_TO_B",
                                "B_TO_A"
                              ]
                            },
                            "curve": {
                              "type": "object",
                              "properties": {
                                "x": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                },
                                "y": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                }
                              },
                              "required": [
                                "x",
                                "y"
                              ],
                              "additionalProperties": false
                            },
                            "zone": {
                              "type": "object",
                              "properties": {
                                "a": {
                                  "type": "object",
                                  "properties": {
                                    "x": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "y": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    }
                                  },
                                  "required": [
                                    "x",
                                    "y"
                                  ],
                                  "additionalProperties": false
                                },
                                "b": {
                                  "type": "object",
                                  "properties": {
                                    "x": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "y": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    }
                                  },
                                  "required": [
                                    "x",
                                    "y"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "a",
                                "b"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "lineId",
                            "a",
                            "b",
                            "countedDirection"
                          ],
                          "additionalProperties": false
                        },
                        "includedClasses": {
                          "minItems": 1,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "car",
                              "bus",
                              "truck",
                              "motorcycle",
                              "bicycle",
                              "bicycle_pushed",
                              "boat"
                            ]
                          }
                        },
                        "timing": {
                          "type": "object",
                          "properties": {
                            "bettingOpenAt": {
                              "type": "string",
                              "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                            },
                            "bettingCloseAt": {
                              "type": "string",
                              "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                            },
                            "captureStartAt": {
                              "type": "string",
                              "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                            },
                            "captureEndAt": {
                              "type": "string",
                              "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                            },
                            "guardMs": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "clockErrorBoundMs": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "verifyDeadlineAt": {
                              "type": "string",
                              "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                            }
                          },
                          "required": [
                            "bettingOpenAt",
                            "bettingCloseAt",
                            "captureStartAt",
                            "captureEndAt",
                            "guardMs",
                            "clockErrorBoundMs",
                            "verifyDeadlineAt"
                          ],
                          "additionalProperties": false
                        },
                        "thresholds": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "low": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "high": {
                                  "type": "integer",
                                  "minimum": -9007199254740991,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "low",
                                "high"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "bands": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "const": "CAMERA_RECENT"
                            },
                            "windows": {
                              "type": "integer",
                              "exclusiveMinimum": 0,
                              "maximum": 9007199254740991
                            },
                            "median": {
                              "type": "number",
                              "minimum": 0
                            },
                            "fromAt": {
                              "type": "string",
                              "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                            },
                            "toAt": {
                              "type": "string",
                              "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                            },
                            "counts": {
                              "maxItems": 60,
                              "type": "array",
                              "items": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              }
                            }
                          },
                          "required": [
                            "source",
                            "windows",
                            "median",
                            "fromAt",
                            "toAt"
                          ],
                          "additionalProperties": false
                        },
                        "rules": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "COUNT_BANDS"
                                },
                                "thresholds": {
                                  "type": "object",
                                  "properties": {
                                    "low": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    "high": {
                                      "type": "integer",
                                      "minimum": -9007199254740991,
                                      "maximum": 9007199254740991
                                    }
                                  },
                                  "required": [
                                    "low",
                                    "high"
                                  ],
                                  "additionalProperties": false
                                },
                                "directions": {
                                  "type": "string",
                                  "enum": [
                                    "COUNTED_DIRECTION",
                                    "ANY"
                                  ]
                                }
                              },
                              "required": [
                                "kind",
                                "thresholds",
                                "directions"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "COUNT_BUCKETS"
                                },
                                "buckets": {
                                  "minItems": 2,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "selection": {
                                        "type": "string",
                                        "enum": [
                                          "UNDER",
                                          "RANGE",
                                          "OVER",
                                          "EXACT",
                                          "EXACT_LOW",
                                          "EXACT_HIGH",
                                          "LANE_A",
                                          "LANE_B",
                                          "TIE",
                                          "CAR",
                                          "HEAVY",
                                          "MOTORCYCLE",
                                          "NO_EVENT",
                                          "ZERO",
                                          "ONE",
                                          "TWO_PLUS"
                                        ]
                                      },
                                      "min": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "max": {
                                        "anyOf": [
                                          {
                                            "type": "integer",
                                            "minimum": 0,
                                            "maximum": 9007199254740991
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "selection",
                                      "min",
                                      "max"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "directions": {
                                  "type": "string",
                                  "enum": [
                                    "COUNTED_DIRECTION",
                                    "ANY"
                                  ]
                                }
                              },
                              "required": [
                                "kind",
                                "buckets",
                                "directions"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "DUEL"
                                },
                                "labelA": {
                                  "type": "string",
                                  "maxLength": 40
                                },
                                "labelB": {
                                  "type": "string",
                                  "maxLength": 40
                                }
                              },
                              "required": [
                                "kind",
                                "labelA",
                                "labelB"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "FIRST_EVENT"
                                },
                                "groups": {
                                  "minItems": 1,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "selection": {
                                        "type": "string",
                                        "enum": [
                                          "UNDER",
                                          "RANGE",
                                          "OVER",
                                          "EXACT",
                                          "EXACT_LOW",
                                          "EXACT_HIGH",
                                          "LANE_A",
                                          "LANE_B",
                                          "TIE",
                                          "CAR",
                                          "HEAVY",
                                          "MOTORCYCLE",
                                          "NO_EVENT",
                                          "ZERO",
                                          "ONE",
                                          "TWO_PLUS"
                                        ]
                                      },
                                      "classes": {
                                        "minItems": 1,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "enum": [
                                            "car",
                                            "bus",
                                            "truck",
                                            "motorcycle",
                                            "bicycle",
                                            "bicycle_pushed",
                                            "boat"
                                          ]
                                        }
                                      }
                                    },
                                    "required": [
                                      "selection",
                                      "classes"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "simultaneityMs": {
                                  "type": "integer",
                                  "exclusiveMinimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "directions": {
                                  "type": "string",
                                  "enum": [
                                    "COUNTED_DIRECTION",
                                    "ANY"
                                  ]
                                }
                              },
                              "required": [
                                "kind",
                                "groups",
                                "simultaneityMs",
                                "directions"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "oddsVersion": {
                          "type": "string",
                          "minLength": 1
                        },
                        "odds": {
                          "minItems": 1,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "selection": {
                                "type": "string",
                                "enum": [
                                  "UNDER",
                                  "RANGE",
                                  "OVER",
                                  "EXACT",
                                  "EXACT_LOW",
                                  "EXACT_HIGH",
                                  "LANE_A",
                                  "LANE_B",
                                  "TIE",
                                  "CAR",
                                  "HEAVY",
                                  "MOTORCYCLE",
                                  "NO_EVENT",
                                  "ZERO",
                                  "ONE",
                                  "TWO_PLUS"
                                ]
                              },
                              "odds": {
                                "type": "object",
                                "properties": {
                                  "numerator": {
                                    "type": "string",
                                    "maxLength": 30,
                                    "pattern": "^[1-9][0-9]*$"
                                  },
                                  "denominator": {
                                    "type": "string",
                                    "maxLength": 30,
                                    "pattern": "^[1-9][0-9]*$"
                                  }
                                },
                                "required": [
                                  "numerator",
                                  "denominator"
                                ],
                                "additionalProperties": false
                              },
                              "exampleOnly": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "selection",
                              "odds",
                              "exampleOnly"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "pricing": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "enum": [
                                "EXAMPLE",
                                "MODEL"
                              ]
                            },
                            "modelId": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "edgeBps": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "quotes": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "selection": {
                                    "type": "string",
                                    "enum": [
                                      "UNDER",
                                      "RANGE",
                                      "OVER",
                                      "EXACT",
                                      "EXACT_LOW",
                                      "EXACT_HIGH",
                                      "LANE_A",
                                      "LANE_B",
                                      "TIE",
                                      "CAR",
                                      "HEAVY",
                                      "MOTORCYCLE",
                                      "NO_EVENT",
                                      "ZERO",
                                      "ONE",
                                      "TWO_PLUS"
                                    ]
                                  },
                                  "p": {
                                    "type": "number"
                                  },
                                  "pLow": {
                                    "type": "number"
                                  },
                                  "pHigh": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "selection",
                                  "p",
                                  "pLow",
                                  "pHigh"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "lightningWithheld": {
                              "type": [
                                "string",
                                "null"
                              ]
                            }
                          },
                          "required": [
                            "source",
                            "modelId",
                            "edgeBps",
                            "quotes"
                          ],
                          "additionalProperties": false
                        },
                        "reviewPolicyVersion": {
                          "type": "string",
                          "minLength": 1
                        },
                        "voidPolicyVersion": {
                          "type": "string",
                          "minLength": 1
                        },
                        "promoCommitment": {
                          "anyOf": [
                            {
                              "type": "string",
                              "pattern": "^[0-9a-f]{64}$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "lightning": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "policyVersion": {
                                  "type": "string",
                                  "minLength": 1
                                },
                                "commitment": {
                                  "type": "string",
                                  "pattern": "^[0-9a-f]{64}$"
                                },
                                "boosts": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "selection": {
                                        "type": "string",
                                        "enum": [
                                          "UNDER",
                                          "RANGE",
                                          "OVER",
                                          "EXACT",
                                          "EXACT_LOW",
                                          "EXACT_HIGH",
                                          "LANE_A",
                                          "LANE_B",
                                          "TIE",
                                          "CAR",
                                          "HEAVY",
                                          "MOTORCYCLE",
                                          "NO_EVENT",
                                          "ZERO",
                                          "ONE",
                                          "TWO_PLUS"
                                        ]
                                      },
                                      "tier": {
                                        "type": "string",
                                        "enum": [
                                          "COMMON",
                                          "RARE",
                                          "EPIC",
                                          "LEGENDARY"
                                        ]
                                      },
                                      "factor": {
                                        "type": "object",
                                        "properties": {
                                          "numerator": {
                                            "type": "string",
                                            "maxLength": 30,
                                            "pattern": "^[1-9][0-9]*$"
                                          },
                                          "denominator": {
                                            "type": "string",
                                            "maxLength": 30,
                                            "pattern": "^[1-9][0-9]*$"
                                          }
                                        },
                                        "required": [
                                          "numerator",
                                          "denominator"
                                        ],
                                        "additionalProperties": false
                                      }
                                    },
                                    "required": [
                                      "selection",
                                      "tier",
                                      "factor"
                                    ],
                                    "additionalProperties": false
                                  }
                                }
                              },
                              "required": [
                                "policyVersion",
                                "commitment",
                                "boosts"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "sourceClock": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "timestampKind": {
                                  "type": "string",
                                  "enum": [
                                    "CAPTURE",
                                    "PUBLISH",
                                    "INGEST",
                                    "SIMULATED_CAPTURE",
                                    "UNKNOWN"
                                  ]
                                },
                                "trust": {
                                  "type": "string",
                                  "enum": [
                                    "TRUSTED",
                                    "UNTRUSTED",
                                    "UNKNOWN"
                                  ]
                                },
                                "errorBoundMs": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "errorBoundMeasured": {
                                  "type": "boolean"
                                },
                                "monetaryEligible": {
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "timestampKind",
                                "trust",
                                "errorBoundMs",
                                "errorBoundMeasured",
                                "monetaryEligible"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "camera": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "cameraId": {
                                  "type": "string"
                                },
                                "name": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "provider": {
                                  "type": "string"
                                },
                                "countryCode": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "country": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "city": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "road": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "region": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "district": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "locationAttribution": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "latitude": {
                                  "type": [
                                    "number",
                                    "null"
                                  ]
                                },
                                "longitude": {
                                  "type": [
                                    "number",
                                    "null"
                                  ]
                                },
                                "rightsStatus": {
                                  "type": "string"
                                },
                                "calibrationVersion": {
                                  "type": "integer",
                                  "minimum": -9007199254740991,
                                  "maximum": 9007199254740991
                                },
                                "calibrationStatus": {
                                  "type": "string",
                                  "enum": [
                                    "PROVISIONAL",
                                    "VALIDATED"
                                  ]
                                }
                              },
                              "required": [
                                "cameraId",
                                "name",
                                "provider",
                                "countryCode",
                                "country",
                                "city",
                                "road",
                                "latitude",
                                "longitude",
                                "rightsStatus",
                                "calibrationVersion",
                                "calibrationStatus"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "manifestVersion",
                        "gameRoundId",
                        "gameId",
                        "rulesVersion",
                        "rulesHash",
                        "modelVersion",
                        "modelHash",
                        "configHash",
                        "cameraAlias",
                        "sourceMode",
                        "sourceEpoch",
                        "captureWindowPts",
                        "roi",
                        "line",
                        "includedClasses",
                        "timing",
                        "thresholds",
                        "rules",
                        "oddsVersion",
                        "odds",
                        "reviewPolicyVersion",
                        "voidPolicyVersion",
                        "promoCommitment",
                        "lightning"
                      ],
                      "additionalProperties": false
                    },
                    "count": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "finalCount": {
                      "anyOf": [
                        {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "winningSelections": {
                      "anyOf": [
                        {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "metrics": {
                      "type": "object",
                      "properties": {
                        "count": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "countA": {
                          "anyOf": [
                            {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "countB": {
                          "anyOf": [
                            {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "firstClass": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "count",
                        "countA",
                        "countB",
                        "firstClass"
                      ],
                      "additionalProperties": false
                    },
                    "sequence": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "playback": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "assetId": {
                              "type": "string"
                            },
                            "startAt": {
                              "type": "string",
                              "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                            },
                            "revealAt": {
                              "type": "string",
                              "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                            },
                            "durationMs": {
                              "type": "integer",
                              "exclusiveMinimum": 0,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "assetId",
                            "startAt",
                            "revealAt",
                            "durationMs"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "gameRoundId",
                    "state",
                    "manifest",
                    "count",
                    "finalCount",
                    "winningSelections",
                    "metrics",
                    "sequence"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/rounds/{gameRoundId}/evidence": {
      "get": {
        "summary": "PARTNER (signed, rounds:read): evidence bundle (null until written)",
        "parameters": [
          {
            "name": "gameRoundId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "urSignature": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "gameRoundId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 128
                        },
                        "manifestHash": {
                          "type": "string",
                          "pattern": "^[0-9a-f]{64}$"
                        },
                        "mediaSegmentHashes": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "pattern": "^[0-9a-f]{64}$"
                          }
                        },
                        "events": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "eventId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 128
                              },
                              "gameRoundId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 128
                              },
                              "cameraAlias": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 128
                              },
                              "sourceEpoch": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 128
                              },
                              "trackId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 128
                              },
                              "lineId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 64
                              },
                              "direction": {
                                "type": "string",
                                "enum": [
                                  "A_TO_B",
                                  "B_TO_A"
                                ]
                              },
                              "vehicleClass": {
                                "type": "string",
                                "enum": [
                                  "car",
                                  "bus",
                                  "truck",
                                  "motorcycle",
                                  "bicycle",
                                  "bicycle_pushed",
                                  "boat"
                                ]
                              },
                              "confidence": {
                                "type": "number",
                                "minimum": 0,
                                "maximum": 1
                              },
                              "framePts": {
                                "type": "object",
                                "properties": {
                                  "sourceEpoch": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 128
                                  },
                                  "ptsMicros": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  }
                                },
                                "required": [
                                  "sourceEpoch",
                                  "ptsMicros"
                                ],
                                "additionalProperties": false
                              },
                              "capturedAt": {
                                "anyOf": [
                                  {
                                    "type": "string",
                                    "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "modelVersion": {
                                "type": "string",
                                "minLength": 1
                              },
                              "configVersion": {
                                "type": "string",
                                "minLength": 1
                              },
                              "evidenceRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 512
                              },
                              "uncertain": {
                                "type": "boolean"
                              },
                              "origin": {
                                "type": "string",
                                "enum": [
                                  "VIDEO_INFERENCE",
                                  "SIMULATION_FIXTURE"
                                ]
                              }
                            },
                            "required": [
                              "eventId",
                              "gameRoundId",
                              "cameraAlias",
                              "sourceEpoch",
                              "trackId",
                              "lineId",
                              "direction",
                              "vehicleClass",
                              "confidence",
                              "framePts",
                              "capturedAt",
                              "modelVersion",
                              "configVersion",
                              "evidenceRef",
                              "uncertain",
                              "origin"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "count": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "winningSelections": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "modelHash": {
                          "anyOf": [
                            {
                              "type": "string",
                              "pattern": "^[0-9a-f]{64}$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "mediaRef": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "sourceId": {
                                  "type": "string"
                                },
                                "sourceEpoch": {
                                  "type": "string"
                                },
                                "window": {
                                  "type": "object",
                                  "properties": {
                                    "startMicros": {
                                      "type": "integer",
                                      "minimum": -9007199254740991,
                                      "maximum": 9007199254740991
                                    },
                                    "endMicros": {
                                      "type": "integer",
                                      "minimum": -9007199254740991,
                                      "maximum": 9007199254740991
                                    }
                                  },
                                  "required": [
                                    "startMicros",
                                    "endMicros"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "sourceId",
                                "sourceEpoch",
                                "window"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "roundState": {
                          "type": "string"
                        },
                        "configHash": {
                          "type": "string",
                          "pattern": "^[0-9a-f]{64}$"
                        },
                        "status": {
                          "type": "string",
                          "enum": [
                            "COMPLETE",
                            "INSUFFICIENT",
                            "SIMULATION_ONLY"
                          ]
                        },
                        "evidenceVerified": {
                          "type": "boolean"
                        },
                        "countIndependentlyConfirmed": {
                          "type": "boolean"
                        },
                        "generatedAt": {
                          "type": "string",
                          "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                        },
                        "lightningReveal": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "serverSeedHex": {
                                  "type": "string",
                                  "pattern": "^[0-9a-f]{64}$"
                                },
                                "commitment": {
                                  "type": "string",
                                  "pattern": "^[0-9a-f]{64}$"
                                }
                              },
                              "required": [
                                "serverSeedHex",
                                "commitment"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "proof": {
                          "type": "object",
                          "properties": {
                            "manifest": {
                              "type": "object",
                              "properties": {
                                "manifestVersion": {
                                  "type": "number",
                                  "const": 1
                                },
                                "gameRoundId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 128
                                },
                                "gameId": {
                                  "type": "string",
                                  "enum": [
                                    "traffic-pulse",
                                    "lane-duel",
                                    "next-class",
                                    "cycle-count",
                                    "harbor-count"
                                  ]
                                },
                                "rulesVersion": {
                                  "type": "string",
                                  "minLength": 1
                                },
                                "rulesHash": {
                                  "type": "string",
                                  "pattern": "^[0-9a-f]{64}$"
                                },
                                "modelVersion": {
                                  "type": "string",
                                  "minLength": 1
                                },
                                "modelHash": {
                                  "anyOf": [
                                    {
                                      "type": "string",
                                      "pattern": "^[0-9a-f]{64}$"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "configHash": {
                                  "type": "string",
                                  "pattern": "^[0-9a-f]{64}$"
                                },
                                "cameraAlias": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 128
                                },
                                "sourceMode": {
                                  "type": "string",
                                  "enum": [
                                    "LIVE",
                                    "DELAYED_LIVE",
                                    "RECORDED_DEMO",
                                    "SIMULATION"
                                  ]
                                },
                                "sourceEpoch": {
                                  "anyOf": [
                                    {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "captureWindowPts": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "startMicros": {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        },
                                        "endMicros": {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        }
                                      },
                                      "required": [
                                        "startMicros",
                                        "endMicros"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "roi": {
                                  "minItems": 3,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "x": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "y": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      }
                                    },
                                    "required": [
                                      "x",
                                      "y"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "line": {
                                  "type": "object",
                                  "properties": {
                                    "lineId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 64
                                    },
                                    "a": {
                                      "type": "object",
                                      "properties": {
                                        "x": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        },
                                        "y": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        }
                                      },
                                      "required": [
                                        "x",
                                        "y"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "b": {
                                      "type": "object",
                                      "properties": {
                                        "x": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        },
                                        "y": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        }
                                      },
                                      "required": [
                                        "x",
                                        "y"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "countedDirection": {
                                      "type": "string",
                                      "enum": [
                                        "A_TO_B",
                                        "B_TO_A"
                                      ]
                                    },
                                    "curve": {
                                      "type": "object",
                                      "properties": {
                                        "x": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        },
                                        "y": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        }
                                      },
                                      "required": [
                                        "x",
                                        "y"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "zone": {
                                      "type": "object",
                                      "properties": {
                                        "a": {
                                          "type": "object",
                                          "properties": {
                                            "x": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "y": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            }
                                          },
                                          "required": [
                                            "x",
                                            "y"
                                          ],
                                          "additionalProperties": false
                                        },
                                        "b": {
                                          "type": "object",
                                          "properties": {
                                            "x": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "y": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            }
                                          },
                                          "required": [
                                            "x",
                                            "y"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "required": [
                                        "a",
                                        "b"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "lineId",
                                    "a",
                                    "b",
                                    "countedDirection"
                                  ],
                                  "additionalProperties": false
                                },
                                "includedClasses": {
                                  "minItems": 1,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "enum": [
                                      "car",
                                      "bus",
                                      "truck",
                                      "motorcycle",
                                      "bicycle",
                                      "bicycle_pushed",
                                      "boat"
                                    ]
                                  }
                                },
                                "timing": {
                                  "type": "object",
                                  "properties": {
                                    "bettingOpenAt": {
                                      "type": "string",
                                      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                    },
                                    "bettingCloseAt": {
                                      "type": "string",
                                      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                    },
                                    "captureStartAt": {
                                      "type": "string",
                                      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                    },
                                    "captureEndAt": {
                                      "type": "string",
                                      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                    },
                                    "guardMs": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "clockErrorBoundMs": {
                                      "anyOf": [
                                        {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "verifyDeadlineAt": {
                                      "type": "string",
                                      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                    }
                                  },
                                  "required": [
                                    "bettingOpenAt",
                                    "bettingCloseAt",
                                    "captureStartAt",
                                    "captureEndAt",
                                    "guardMs",
                                    "clockErrorBoundMs",
                                    "verifyDeadlineAt"
                                  ],
                                  "additionalProperties": false
                                },
                                "thresholds": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "low": {
                                          "type": "integer",
                                          "minimum": 1,
                                          "maximum": 9007199254740991
                                        },
                                        "high": {
                                          "type": "integer",
                                          "minimum": -9007199254740991,
                                          "maximum": 9007199254740991
                                        }
                                      },
                                      "required": [
                                        "low",
                                        "high"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "bands": {
                                  "type": "object",
                                  "properties": {
                                    "source": {
                                      "type": "string",
                                      "const": "CAMERA_RECENT"
                                    },
                                    "windows": {
                                      "type": "integer",
                                      "exclusiveMinimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "median": {
                                      "type": "number",
                                      "minimum": 0
                                    },
                                    "fromAt": {
                                      "type": "string",
                                      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                    },
                                    "toAt": {
                                      "type": "string",
                                      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                    },
                                    "counts": {
                                      "maxItems": 60,
                                      "type": "array",
                                      "items": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      }
                                    }
                                  },
                                  "required": [
                                    "source",
                                    "windows",
                                    "median",
                                    "fromAt",
                                    "toAt"
                                  ],
                                  "additionalProperties": false
                                },
                                "rules": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "COUNT_BANDS"
                                        },
                                        "thresholds": {
                                          "type": "object",
                                          "properties": {
                                            "low": {
                                              "type": "integer",
                                              "minimum": 1,
                                              "maximum": 9007199254740991
                                            },
                                            "high": {
                                              "type": "integer",
                                              "minimum": -9007199254740991,
                                              "maximum": 9007199254740991
                                            }
                                          },
                                          "required": [
                                            "low",
                                            "high"
                                          ],
                                          "additionalProperties": false
                                        },
                                        "directions": {
                                          "type": "string",
                                          "enum": [
                                            "COUNTED_DIRECTION",
                                            "ANY"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "thresholds",
                                        "directions"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "COUNT_BUCKETS"
                                        },
                                        "buckets": {
                                          "minItems": 2,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "selection": {
                                                "type": "string",
                                                "enum": [
                                                  "UNDER",
                                                  "RANGE",
                                                  "OVER",
                                                  "EXACT",
                                                  "EXACT_LOW",
                                                  "EXACT_HIGH",
                                                  "LANE_A",
                                                  "LANE_B",
                                                  "TIE",
                                                  "CAR",
                                                  "HEAVY",
                                                  "MOTORCYCLE",
                                                  "NO_EVENT",
                                                  "ZERO",
                                                  "ONE",
                                                  "TWO_PLUS"
                                                ]
                                              },
                                              "min": {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              },
                                              "max": {
                                                "anyOf": [
                                                  {
                                                    "type": "integer",
                                                    "minimum": 0,
                                                    "maximum": 9007199254740991
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "selection",
                                              "min",
                                              "max"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "directions": {
                                          "type": "string",
                                          "enum": [
                                            "COUNTED_DIRECTION",
                                            "ANY"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "buckets",
                                        "directions"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "DUEL"
                                        },
                                        "labelA": {
                                          "type": "string",
                                          "maxLength": 40
                                        },
                                        "labelB": {
                                          "type": "string",
                                          "maxLength": 40
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "labelA",
                                        "labelB"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "FIRST_EVENT"
                                        },
                                        "groups": {
                                          "minItems": 1,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "selection": {
                                                "type": "string",
                                                "enum": [
                                                  "UNDER",
                                                  "RANGE",
                                                  "OVER",
                                                  "EXACT",
                                                  "EXACT_LOW",
                                                  "EXACT_HIGH",
                                                  "LANE_A",
                                                  "LANE_B",
                                                  "TIE",
                                                  "CAR",
                                                  "HEAVY",
                                                  "MOTORCYCLE",
                                                  "NO_EVENT",
                                                  "ZERO",
                                                  "ONE",
                                                  "TWO_PLUS"
                                                ]
                                              },
                                              "classes": {
                                                "minItems": 1,
                                                "type": "array",
                                                "items": {
                                                  "type": "string",
                                                  "enum": [
                                                    "car",
                                                    "bus",
                                                    "truck",
                                                    "motorcycle",
                                                    "bicycle",
                                                    "bicycle_pushed",
                                                    "boat"
                                                  ]
                                                }
                                              }
                                            },
                                            "required": [
                                              "selection",
                                              "classes"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "simultaneityMs": {
                                          "type": "integer",
                                          "exclusiveMinimum": 0,
                                          "maximum": 9007199254740991
                                        },
                                        "directions": {
                                          "type": "string",
                                          "enum": [
                                            "COUNTED_DIRECTION",
                                            "ANY"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "groups",
                                        "simultaneityMs",
                                        "directions"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "oddsVersion": {
                                  "type": "string",
                                  "minLength": 1
                                },
                                "odds": {
                                  "minItems": 1,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "selection": {
                                        "type": "string",
                                        "enum": [
                                          "UNDER",
                                          "RANGE",
                                          "OVER",
                                          "EXACT",
                                          "EXACT_LOW",
                                          "EXACT_HIGH",
                                          "LANE_A",
                                          "LANE_B",
                                          "TIE",
                                          "CAR",
                                          "HEAVY",
                                          "MOTORCYCLE",
                                          "NO_EVENT",
                                          "ZERO",
                                          "ONE",
                                          "TWO_PLUS"
                                        ]
                                      },
                                      "odds": {
                                        "type": "object",
                                        "properties": {
                                          "numerator": {
                                            "type": "string",
                                            "maxLength": 30,
                                            "pattern": "^[1-9][0-9]*$"
                                          },
                                          "denominator": {
                                            "type": "string",
                                            "maxLength": 30,
                                            "pattern": "^[1-9][0-9]*$"
                                          }
                                        },
                                        "required": [
                                          "numerator",
                                          "denominator"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "exampleOnly": {
                                        "type": "boolean"
                                      }
                                    },
                                    "required": [
                                      "selection",
                                      "odds",
                                      "exampleOnly"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "pricing": {
                                  "type": "object",
                                  "properties": {
                                    "source": {
                                      "type": "string",
                                      "enum": [
                                        "EXAMPLE",
                                        "MODEL"
                                      ]
                                    },
                                    "modelId": {
                                      "type": [
                                        "string",
                                        "null"
                                      ]
                                    },
                                    "edgeBps": {
                                      "anyOf": [
                                        {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "quotes": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "selection": {
                                            "type": "string",
                                            "enum": [
                                              "UNDER",
                                              "RANGE",
                                              "OVER",
                                              "EXACT",
                                              "EXACT_LOW",
                                              "EXACT_HIGH",
                                              "LANE_A",
                                              "LANE_B",
                                              "TIE",
                                              "CAR",
                                              "HEAVY",
                                              "MOTORCYCLE",
                                              "NO_EVENT",
                                              "ZERO",
                                              "ONE",
                                              "TWO_PLUS"
                                            ]
                                          },
                                          "p": {
                                            "type": "number"
                                          },
                                          "pLow": {
                                            "type": "number"
                                          },
                                          "pHigh": {
                                            "type": "number"
                                          }
                                        },
                                        "required": [
                                          "selection",
                                          "p",
                                          "pLow",
                                          "pHigh"
                                        ],
                                        "additionalProperties": false
                                      }
                                    },
                                    "lightningWithheld": {
                                      "type": [
                                        "string",
                                        "null"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "source",
                                    "modelId",
                                    "edgeBps",
                                    "quotes"
                                  ],
                                  "additionalProperties": false
                                },
                                "reviewPolicyVersion": {
                                  "type": "string",
                                  "minLength": 1
                                },
                                "voidPolicyVersion": {
                                  "type": "string",
                                  "minLength": 1
                                },
                                "promoCommitment": {
                                  "anyOf": [
                                    {
                                      "type": "string",
                                      "pattern": "^[0-9a-f]{64}$"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "lightning": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "policyVersion": {
                                          "type": "string",
                                          "minLength": 1
                                        },
                                        "commitment": {
                                          "type": "string",
                                          "pattern": "^[0-9a-f]{64}$"
                                        },
                                        "boosts": {
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "selection": {
                                                "type": "string",
                                                "enum": [
                                                  "UNDER",
                                                  "RANGE",
                                                  "OVER",
                                                  "EXACT",
                                                  "EXACT_LOW",
                                                  "EXACT_HIGH",
                                                  "LANE_A",
                                                  "LANE_B",
                                                  "TIE",
                                                  "CAR",
                                                  "HEAVY",
                                                  "MOTORCYCLE",
                                                  "NO_EVENT",
                                                  "ZERO",
                                                  "ONE",
                                                  "TWO_PLUS"
                                                ]
                                              },
                                              "tier": {
                                                "type": "string",
                                                "enum": [
                                                  "COMMON",
                                                  "RARE",
                                                  "EPIC",
                                                  "LEGENDARY"
                                                ]
                                              },
                                              "factor": {
                                                "type": "object",
                                                "properties": {
                                                  "numerator": {
                                                    "type": "string",
                                                    "maxLength": 30,
                                                    "pattern": "^[1-9][0-9]*$"
                                                  },
                                                  "denominator": {
                                                    "type": "string",
                                                    "maxLength": 30,
                                                    "pattern": "^[1-9][0-9]*$"
                                                  }
                                                },
                                                "required": [
                                                  "numerator",
                                                  "denominator"
                                                ],
                                                "additionalProperties": false
                                              }
                                            },
                                            "required": [
                                              "selection",
                                              "tier",
                                              "factor"
                                            ],
                                            "additionalProperties": false
                                          }
                                        }
                                      },
                                      "required": [
                                        "policyVersion",
                                        "commitment",
                                        "boosts"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "sourceClock": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "timestampKind": {
                                          "type": "string",
                                          "enum": [
                                            "CAPTURE",
                                            "PUBLISH",
                                            "INGEST",
                                            "SIMULATED_CAPTURE",
                                            "UNKNOWN"
                                          ]
                                        },
                                        "trust": {
                                          "type": "string",
                                          "enum": [
                                            "TRUSTED",
                                            "UNTRUSTED",
                                            "UNKNOWN"
                                          ]
                                        },
                                        "errorBoundMs": {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        },
                                        "errorBoundMeasured": {
                                          "type": "boolean"
                                        },
                                        "monetaryEligible": {
                                          "type": "boolean"
                                        }
                                      },
                                      "required": [
                                        "timestampKind",
                                        "trust",
                                        "errorBoundMs",
                                        "errorBoundMeasured",
                                        "monetaryEligible"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "camera": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "cameraId": {
                                          "type": "string"
                                        },
                                        "name": {
                                          "type": [
                                            "string",
                                            "null"
                                          ]
                                        },
                                        "provider": {
                                          "type": "string"
                                        },
                                        "countryCode": {
                                          "type": [
                                            "string",
                                            "null"
                                          ]
                                        },
                                        "country": {
                                          "type": [
                                            "string",
                                            "null"
                                          ]
                                        },
                                        "city": {
                                          "type": [
                                            "string",
                                            "null"
                                          ]
                                        },
                                        "road": {
                                          "type": [
                                            "string",
                                            "null"
                                          ]
                                        },
                                        "region": {
                                          "type": [
                                            "string",
                                            "null"
                                          ]
                                        },
                                        "district": {
                                          "type": [
                                            "string",
                                            "null"
                                          ]
                                        },
                                        "locationAttribution": {
                                          "type": [
                                            "string",
                                            "null"
                                          ]
                                        },
                                        "latitude": {
                                          "type": [
                                            "number",
                                            "null"
                                          ]
                                        },
                                        "longitude": {
                                          "type": [
                                            "number",
                                            "null"
                                          ]
                                        },
                                        "rightsStatus": {
                                          "type": "string"
                                        },
                                        "calibrationVersion": {
                                          "type": "integer",
                                          "minimum": -9007199254740991,
                                          "maximum": 9007199254740991
                                        },
                                        "calibrationStatus": {
                                          "type": "string",
                                          "enum": [
                                            "PROVISIONAL",
                                            "VALIDATED"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "cameraId",
                                        "name",
                                        "provider",
                                        "countryCode",
                                        "country",
                                        "city",
                                        "road",
                                        "latitude",
                                        "longitude",
                                        "rightsStatus",
                                        "calibrationVersion",
                                        "calibrationStatus"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "manifestVersion",
                                "gameRoundId",
                                "gameId",
                                "rulesVersion",
                                "rulesHash",
                                "modelVersion",
                                "modelHash",
                                "configHash",
                                "cameraAlias",
                                "sourceMode",
                                "sourceEpoch",
                                "captureWindowPts",
                                "roi",
                                "line",
                                "includedClasses",
                                "timing",
                                "thresholds",
                                "rules",
                                "oddsVersion",
                                "odds",
                                "reviewPolicyVersion",
                                "voidPolicyVersion",
                                "promoCommitment",
                                "lightning"
                              ],
                              "additionalProperties": false
                            },
                            "manifestSignature": {
                              "type": "object",
                              "properties": {
                                "keyId": {
                                  "type": "string"
                                },
                                "algorithm": {
                                  "type": "string",
                                  "const": "Ed25519"
                                },
                                "signature": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "keyId",
                                "algorithm",
                                "signature"
                              ],
                              "additionalProperties": false
                            },
                            "manifestWitness": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "witness": {
                                      "type": "string"
                                    },
                                    "seq": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "subjectKind": {
                                      "type": "string",
                                      "enum": [
                                        "MANIFEST",
                                        "RESULT"
                                      ]
                                    },
                                    "subjectRef": {
                                      "type": "string"
                                    },
                                    "subjectHash": {
                                      "type": "string",
                                      "pattern": "^[0-9a-f]{64}$"
                                    },
                                    "receivedAt": {
                                      "type": "string",
                                      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                    },
                                    "prevReceiptHash": {
                                      "type": "string",
                                      "pattern": "^[0-9a-f]{64}$"
                                    },
                                    "receiptHash": {
                                      "type": "string",
                                      "pattern": "^[0-9a-f]{64}$"
                                    },
                                    "keyId": {
                                      "type": "string"
                                    },
                                    "signature": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "witness",
                                    "seq",
                                    "subjectKind",
                                    "subjectRef",
                                    "subjectHash",
                                    "receivedAt",
                                    "prevReceiptHash",
                                    "receiptHash",
                                    "keyId",
                                    "signature"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "resultRecord": {
                              "type": "object",
                              "properties": {
                                "recordVersion": {
                                  "type": "number",
                                  "const": 1
                                },
                                "gameRoundId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 128
                                },
                                "manifestHash": {
                                  "type": "string",
                                  "pattern": "^[0-9a-f]{64}$"
                                },
                                "roundState": {
                                  "type": "string"
                                },
                                "finalCount": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "winningSelections": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                "eventCount": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "eventLogHash": {
                                  "type": "string",
                                  "pattern": "^[0-9a-f]{64}$"
                                },
                                "evidence": {
                                  "type": "object",
                                  "properties": {
                                    "status": {
                                      "type": "string",
                                      "enum": [
                                        "COMPLETE",
                                        "INSUFFICIENT",
                                        "SIMULATION_ONLY"
                                      ]
                                    },
                                    "sourceEpoch": {
                                      "type": [
                                        "string",
                                        "null"
                                      ]
                                    },
                                    "segmentCount": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "firstSeq": {
                                      "anyOf": [
                                        {
                                          "type": "integer",
                                          "minimum": -9007199254740991,
                                          "maximum": 9007199254740991
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "lastSeq": {
                                      "anyOf": [
                                        {
                                          "type": "integer",
                                          "minimum": -9007199254740991,
                                          "maximum": 9007199254740991
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "chainHead": {
                                      "anyOf": [
                                        {
                                          "type": "string",
                                          "pattern": "^[0-9a-f]{64}$"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "problems": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "alarms": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    }
                                  },
                                  "required": [
                                    "status",
                                    "sourceEpoch",
                                    "segmentCount",
                                    "firstSeq",
                                    "lastSeq",
                                    "chainHead",
                                    "problems",
                                    "alarms"
                                  ],
                                  "additionalProperties": false
                                },
                                "reason": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "decidedAt": {
                                  "type": "string",
                                  "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                }
                              },
                              "required": [
                                "recordVersion",
                                "gameRoundId",
                                "manifestHash",
                                "roundState",
                                "finalCount",
                                "winningSelections",
                                "eventCount",
                                "eventLogHash",
                                "evidence",
                                "reason",
                                "decidedAt"
                              ],
                              "additionalProperties": false
                            },
                            "resultHash": {
                              "type": "string",
                              "pattern": "^[0-9a-f]{64}$"
                            },
                            "resultSignature": {
                              "type": "object",
                              "properties": {
                                "keyId": {
                                  "type": "string"
                                },
                                "algorithm": {
                                  "type": "string",
                                  "const": "Ed25519"
                                },
                                "signature": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "keyId",
                                "algorithm",
                                "signature"
                              ],
                              "additionalProperties": false
                            },
                            "resultWitness": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "witness": {
                                      "type": "string"
                                    },
                                    "seq": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "subjectKind": {
                                      "type": "string",
                                      "enum": [
                                        "MANIFEST",
                                        "RESULT"
                                      ]
                                    },
                                    "subjectRef": {
                                      "type": "string"
                                    },
                                    "subjectHash": {
                                      "type": "string",
                                      "pattern": "^[0-9a-f]{64}$"
                                    },
                                    "receivedAt": {
                                      "type": "string",
                                      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                    },
                                    "prevReceiptHash": {
                                      "type": "string",
                                      "pattern": "^[0-9a-f]{64}$"
                                    },
                                    "receiptHash": {
                                      "type": "string",
                                      "pattern": "^[0-9a-f]{64}$"
                                    },
                                    "keyId": {
                                      "type": "string"
                                    },
                                    "signature": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "witness",
                                    "seq",
                                    "subjectKind",
                                    "subjectRef",
                                    "subjectHash",
                                    "receivedAt",
                                    "prevReceiptHash",
                                    "receiptHash",
                                    "keyId",
                                    "signature"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "segments": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "sourceEpoch": {
                                    "type": "string"
                                  },
                                  "seq": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "ptsStartMicros": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "ptsEndMicros": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "captureStart": {
                                    "type": "string",
                                    "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                  },
                                  "captureEnd": {
                                    "type": "string",
                                    "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                  },
                                  "timestampKind": {
                                    "type": "string"
                                  },
                                  "rawSha256": {
                                    "type": "string",
                                    "pattern": "^[0-9a-f]{64}$"
                                  },
                                  "redactedSha256": {
                                    "type": "string",
                                    "pattern": "^[0-9a-f]{64}$"
                                  },
                                  "transform": {
                                    "type": "string"
                                  },
                                  "prevChainHash": {
                                    "type": "string",
                                    "pattern": "^[0-9a-f]{64}$"
                                  },
                                  "chainHash": {
                                    "type": "string",
                                    "pattern": "^[0-9a-f]{64}$"
                                  },
                                  "rawAvailable": {
                                    "type": "boolean"
                                  },
                                  "redactedAvailable": {
                                    "type": "boolean"
                                  }
                                },
                                "required": [
                                  "sourceEpoch",
                                  "seq",
                                  "ptsStartMicros",
                                  "ptsEndMicros",
                                  "captureStart",
                                  "captureEnd",
                                  "timestampKind",
                                  "rawSha256",
                                  "redactedSha256",
                                  "transform",
                                  "prevChainHash",
                                  "chainHash",
                                  "rawAvailable",
                                  "redactedAvailable"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "keysUrl": {
                              "type": "string"
                            },
                            "witnessIndependent": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "manifest",
                            "manifestSignature",
                            "manifestWitness",
                            "resultRecord",
                            "resultHash",
                            "resultSignature",
                            "resultWitness",
                            "segments",
                            "keysUrl",
                            "witnessIndependent"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "gameRoundId",
                        "manifestHash",
                        "mediaSegmentHashes",
                        "events",
                        "count",
                        "winningSelections",
                        "modelHash",
                        "mediaRef",
                        "roundState",
                        "configHash",
                        "status",
                        "evidenceVerified",
                        "countIndependentlyConfirmed",
                        "generatedAt",
                        "lightningReveal"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/bets": {
      "get": {
        "summary": "PARTNER (signed, bets:read): bets, filters externalPlayerId, gameRoundId, state, since, limit ≤ 500",
        "parameters": [],
        "security": [
          {
            "urSignature": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "bets": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "betId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 128
                          },
                          "commandId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 128
                          },
                          "gameId": {
                            "type": "string",
                            "enum": [
                              "traffic-pulse",
                              "lane-duel",
                              "next-class",
                              "cycle-count",
                              "harbor-count"
                            ]
                          },
                          "gameRoundId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 128
                          },
                          "partnerWalletRoundId": {
                            "anyOf": [
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 128
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "selection": {
                            "type": "string",
                            "enum": [
                              "UNDER",
                              "RANGE",
                              "OVER",
                              "EXACT",
                              "EXACT_LOW",
                              "EXACT_HIGH",
                              "LANE_A",
                              "LANE_B",
                              "TIE",
                              "CAR",
                              "HEAVY",
                              "MOTORCYCLE",
                              "NO_EVENT",
                              "ZERO",
                              "ONE",
                              "TWO_PLUS"
                            ]
                          },
                          "stake": {
                            "type": "object",
                            "properties": {
                              "amountAtomic": {
                                "type": "string",
                                "maxLength": 40,
                                "pattern": "^(0|[1-9][0-9]*)$"
                              },
                              "currency": {
                                "type": "string",
                                "pattern": "^[A-Z0-9]{2,12}$"
                              },
                              "scale": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 18
                              }
                            },
                            "required": [
                              "amountAtomic",
                              "currency",
                              "scale"
                            ],
                            "additionalProperties": false
                          },
                          "funding": {
                            "type": "string",
                            "enum": [
                              "CASH",
                              "FREEBET"
                            ]
                          },
                          "cashDebit": {
                            "type": "object",
                            "properties": {
                              "amountAtomic": {
                                "type": "string",
                                "maxLength": 40,
                                "pattern": "^(0|[1-9][0-9]*)$"
                              },
                              "currency": {
                                "type": "string",
                                "pattern": "^[A-Z0-9]{2,12}$"
                              },
                              "scale": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 18
                              }
                            },
                            "required": [
                              "amountAtomic",
                              "currency",
                              "scale"
                            ],
                            "additionalProperties": false
                          },
                          "rewardId": {
                            "anyOf": [
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 128
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "quote": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "gameRoundId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 128
                                  },
                                  "selection": {
                                    "type": "string",
                                    "enum": [
                                      "UNDER",
                                      "RANGE",
                                      "OVER",
                                      "EXACT",
                                      "EXACT_LOW",
                                      "EXACT_HIGH",
                                      "LANE_A",
                                      "LANE_B",
                                      "TIE",
                                      "CAR",
                                      "HEAVY",
                                      "MOTORCYCLE",
                                      "NO_EVENT",
                                      "ZERO",
                                      "ONE",
                                      "TWO_PLUS"
                                    ]
                                  },
                                  "odds": {
                                    "type": "object",
                                    "properties": {
                                      "numerator": {
                                        "type": "string",
                                        "maxLength": 30,
                                        "pattern": "^[1-9][0-9]*$"
                                      },
                                      "denominator": {
                                        "type": "string",
                                        "maxLength": 30,
                                        "pattern": "^[1-9][0-9]*$"
                                      }
                                    },
                                    "required": [
                                      "numerator",
                                      "denominator"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "oddsVersion": {
                                    "type": "string",
                                    "minLength": 1
                                  },
                                  "lightning": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "numerator": {
                                            "type": "string",
                                            "maxLength": 30,
                                            "pattern": "^[1-9][0-9]*$"
                                          },
                                          "denominator": {
                                            "type": "string",
                                            "maxLength": 30,
                                            "pattern": "^[1-9][0-9]*$"
                                          }
                                        },
                                        "required": [
                                          "numerator",
                                          "denominator"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "lightningTier": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "enum": [
                                          "COMMON",
                                          "RARE",
                                          "EPIC",
                                          "LEGENDARY"
                                        ]
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "boostBps": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "payoutCap": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "amountAtomic": {
                                            "type": "string",
                                            "maxLength": 40,
                                            "pattern": "^(0|[1-9][0-9]*)$"
                                          },
                                          "currency": {
                                            "type": "string",
                                            "pattern": "^[A-Z0-9]{2,12}$"
                                          },
                                          "scale": {
                                            "type": "integer",
                                            "minimum": 0,
                                            "maximum": 18
                                          }
                                        },
                                        "required": [
                                          "amountAtomic",
                                          "currency",
                                          "scale"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "promoPolicyVersion": {
                                    "type": "string",
                                    "minLength": 1
                                  },
                                  "freebetPolicy": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "enum": [
                                          "STAKE_INCLUDED",
                                          "PROFIT_ONLY"
                                        ]
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "quotedAt": {
                                    "type": "string",
                                    "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                  }
                                },
                                "required": [
                                  "gameRoundId",
                                  "selection",
                                  "odds",
                                  "oddsVersion",
                                  "lightning",
                                  "lightningTier",
                                  "boostBps",
                                  "payoutCap",
                                  "promoPolicyVersion",
                                  "freebetPolicy",
                                  "quotedAt"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "SUBMITTED",
                              "DEBIT_PENDING",
                              "ACCEPTED",
                              "REJECTED",
                              "COMPENSATION_PENDING",
                              "COMPENSATED",
                              "RESULT_WON",
                              "RESULT_LOST",
                              "CREDIT_PENDING",
                              "SETTLED",
                              "REFUND_PENDING",
                              "VOIDED"
                            ]
                          },
                          "rejectReason": {
                            "anyOf": [
                              {
                                "type": "string",
                                "enum": [
                                  "BETTING_CLOSED",
                                  "INSUFFICIENT_FUNDS",
                                  "SESSION_EXPIRED",
                                  "INVALID_STAKE",
                                  "CURRENCY_MISMATCH",
                                  "QUOTE_CHANGED",
                                  "LIABILITY_LIMIT",
                                  "SOURCE_UNAVAILABLE",
                                  "IDEMPOTENCY_CONFLICT",
                                  "DEBIT_UNRESOLVED_AT_CLOSE",
                                  "STAKE_LIMIT",
                                  "REWARD_UNAVAILABLE",
                                  "PROMO_NOT_STACKABLE",
                                  "WALLET_UNAVAILABLE"
                                ]
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "payoutGross": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "amountAtomic": {
                                    "type": "string",
                                    "maxLength": 40,
                                    "pattern": "^(0|[1-9][0-9]*)$"
                                  },
                                  "currency": {
                                    "type": "string",
                                    "pattern": "^[A-Z0-9]{2,12}$"
                                  },
                                  "scale": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 18
                                  }
                                },
                                "required": [
                                  "amountAtomic",
                                  "currency",
                                  "scale"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "payoutNet": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "amountAtomic": {
                                    "type": "string",
                                    "maxLength": 41,
                                    "pattern": "^(0|-?[1-9][0-9]*)$"
                                  },
                                  "currency": {
                                    "type": "string",
                                    "pattern": "^[A-Z0-9]{2,12}$"
                                  },
                                  "scale": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 18
                                  }
                                },
                                "required": [
                                  "amountAtomic",
                                  "currency",
                                  "scale"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "submittedAt": {
                            "type": "string",
                            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                          },
                          "updatedAt": {
                            "type": "string",
                            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                          }
                        },
                        "required": [
                          "betId",
                          "commandId",
                          "gameId",
                          "gameRoundId",
                          "partnerWalletRoundId",
                          "selection",
                          "stake",
                          "funding",
                          "cashDebit",
                          "rewardId",
                          "quote",
                          "state",
                          "rejectReason",
                          "payoutGross",
                          "payoutNet",
                          "submittedAt",
                          "updatedAt"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "bets"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/rewards": {
      "get": {
        "summary": "PARTNER (signed, rewards:write): reward items, optional externalPlayerId",
        "parameters": [],
        "security": [
          {
            "urSignature": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "promotionId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 128
                          },
                          "kind": {
                            "type": "string",
                            "enum": [
                              "FREEBET",
                              "BOOST"
                            ]
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "GRANTED",
                              "RESERVED",
                              "CONSUMED",
                              "CANCELLED",
                              "EXPIRED"
                            ]
                          },
                          "origin": {
                            "type": "string",
                            "enum": [
                              "OPERATOR_GRANT",
                              "DAILY_CHECKIN",
                              "LEVEL_UP",
                              "LEADERBOARD",
                              "DROP",
                              "CAMPAIGN"
                            ]
                          },
                          "grantKey": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 128
                          },
                          "policyVersion": {
                            "type": "string",
                            "minLength": 1
                          },
                          "faceValue": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "amountAtomic": {
                                    "type": "string",
                                    "maxLength": 40,
                                    "pattern": "^(0|[1-9][0-9]*)$"
                                  },
                                  "currency": {
                                    "type": "string",
                                    "pattern": "^[A-Z0-9]{2,12}$"
                                  },
                                  "scale": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 18
                                  }
                                },
                                "required": [
                                  "amountAtomic",
                                  "currency",
                                  "scale"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "freebetPolicy": {
                            "anyOf": [
                              {
                                "type": "string",
                                "enum": [
                                  "STAKE_INCLUDED",
                                  "PROFIT_ONLY"
                                ]
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "boostBps": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "exclusiveMinimum": 0,
                                "maximum": 9007199254740991
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "games": {
                            "minItems": 1,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "traffic-pulse",
                                "lane-duel",
                                "next-class",
                                "cycle-count",
                                "harbor-count"
                              ]
                            }
                          },
                          "currency": {
                            "type": "string",
                            "pattern": "^[A-Z0-9]{2,12}$"
                          },
                          "grantedAt": {
                            "type": "string",
                            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                          },
                          "expiresAt": {
                            "anyOf": [
                              {
                                "type": "string",
                                "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "betId": {
                            "anyOf": [
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 128
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "realMoneyEnabled": {
                            "type": "boolean",
                            "const": false
                          }
                        },
                        "required": [
                          "promotionId",
                          "kind",
                          "state",
                          "origin",
                          "grantKey",
                          "policyVersion",
                          "faceValue",
                          "freebetPolicy",
                          "boostBps",
                          "games",
                          "currency",
                          "grantedAt",
                          "expiresAt",
                          "betId",
                          "realMoneyEnabled"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "items"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "PARTNER (signed, rewards:write): grant (idempotent by operatorRewardId; value in the brand wallet currency)",
        "parameters": [],
        "security": [
          {
            "urSignature": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "promotionId": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 128
                    },
                    "kind": {
                      "type": "string",
                      "enum": [
                        "FREEBET",
                        "BOOST"
                      ]
                    },
                    "state": {
                      "type": "string",
                      "enum": [
                        "GRANTED",
                        "RESERVED",
                        "CONSUMED",
                        "CANCELLED",
                        "EXPIRED"
                      ]
                    },
                    "origin": {
                      "type": "string",
                      "enum": [
                        "OPERATOR_GRANT",
                        "DAILY_CHECKIN",
                        "LEVEL_UP",
                        "LEADERBOARD",
                        "DROP",
                        "CAMPAIGN"
                      ]
                    },
                    "grantKey": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 128
                    },
                    "policyVersion": {
                      "type": "string",
                      "minLength": 1
                    },
                    "faceValue": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "amountAtomic": {
                              "type": "string",
                              "maxLength": 40,
                              "pattern": "^(0|[1-9][0-9]*)$"
                            },
                            "currency": {
                              "type": "string",
                              "pattern": "^[A-Z0-9]{2,12}$"
                            },
                            "scale": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 18
                            }
                          },
                          "required": [
                            "amountAtomic",
                            "currency",
                            "scale"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "freebetPolicy": {
                      "anyOf": [
                        {
                          "type": "string",
                          "enum": [
                            "STAKE_INCLUDED",
                            "PROFIT_ONLY"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "boostBps": {
                      "anyOf": [
                        {
                          "type": "integer",
                          "exclusiveMinimum": 0,
                          "maximum": 9007199254740991
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "games": {
                      "minItems": 1,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "traffic-pulse",
                          "lane-duel",
                          "next-class",
                          "cycle-count",
                          "harbor-count"
                        ]
                      }
                    },
                    "currency": {
                      "type": "string",
                      "pattern": "^[A-Z0-9]{2,12}$"
                    },
                    "grantedAt": {
                      "type": "string",
                      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                    },
                    "expiresAt": {
                      "anyOf": [
                        {
                          "type": "string",
                          "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "betId": {
                      "anyOf": [
                        {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 128
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "realMoneyEnabled": {
                      "type": "boolean",
                      "const": false
                    }
                  },
                  "required": [
                    "promotionId",
                    "kind",
                    "state",
                    "origin",
                    "grantKey",
                    "policyVersion",
                    "faceValue",
                    "freebetPolicy",
                    "boostBps",
                    "games",
                    "currency",
                    "grantedAt",
                    "expiresAt",
                    "betId",
                    "realMoneyEnabled"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "brandId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64
                  },
                  "externalPlayerId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  },
                  "grant": {
                    "type": "object",
                    "properties": {
                      "operatorRewardId": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 128
                      },
                      "kind": {
                        "type": "string",
                        "enum": [
                          "FREEBET",
                          "BOOST"
                        ]
                      },
                      "faceValue": {
                        "anyOf": [
                          {
                            "type": "object",
                            "properties": {
                              "amountAtomic": {
                                "type": "string",
                                "maxLength": 40,
                                "pattern": "^(0|[1-9][0-9]*)$"
                              },
                              "currency": {
                                "type": "string",
                                "pattern": "^[A-Z0-9]{2,12}$"
                              },
                              "scale": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 18
                              }
                            },
                            "required": [
                              "amountAtomic",
                              "currency",
                              "scale"
                            ],
                            "additionalProperties": false
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "freebetPolicy": {
                        "anyOf": [
                          {
                            "type": "string",
                            "enum": [
                              "STAKE_INCLUDED",
                              "PROFIT_ONLY"
                            ]
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "boostBps": {
                        "anyOf": [
                          {
                            "type": "integer",
                            "exclusiveMinimum": 0,
                            "maximum": 10000
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "games": {
                        "minItems": 1,
                        "type": "array",
                        "items": {
                          "type": "string",
                          "enum": [
                            "traffic-pulse",
                            "lane-duel",
                            "next-class",
                            "cycle-count",
                            "harbor-count"
                          ]
                        }
                      },
                      "expiresAt": {
                        "anyOf": [
                          {
                            "type": "string",
                            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      }
                    },
                    "required": [
                      "operatorRewardId",
                      "kind",
                      "faceValue",
                      "freebetPolicy",
                      "boostBps",
                      "games",
                      "expiresAt"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "brandId",
                  "externalPlayerId",
                  "grant"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/v1/webhooks": {
      "post": {
        "summary": "PARTNER (signed, webhooks:manage): register an endpoint on a registered host (https, public address)",
        "parameters": [],
        "security": [
          {
            "urSignature": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "endpointId": {
                      "type": "string"
                    },
                    "url": {
                      "type": "string"
                    },
                    "events": {
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "bet.accepted",
                          "bet.rejected",
                          "bet.settled",
                          "bet.refunded",
                          "bet.compensated",
                          "reward.granted",
                          "reward.cancelled",
                          "reward.consumed",
                          "reward.returned",
                          "webhook.test"
                        ]
                      }
                    },
                    "active": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "endpointId",
                    "url",
                    "events",
                    "active"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "url": {
                    "type": "string",
                    "maxLength": 512,
                    "format": "uri"
                  },
                  "events": {
                    "minItems": 1,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "bet.accepted",
                        "bet.rejected",
                        "bet.settled",
                        "bet.refunded",
                        "bet.compensated",
                        "reward.granted",
                        "reward.cancelled",
                        "reward.consumed",
                        "reward.returned",
                        "webhook.test"
                      ]
                    }
                  }
                },
                "required": [
                  "url",
                  "events"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      },
      "get": {
        "summary": "PARTNER (signed): endpoints",
        "parameters": [],
        "security": [
          {
            "urSignature": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "endpoints": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "endpointId": {
                            "type": "string"
                          },
                          "url": {
                            "type": "string"
                          },
                          "events": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "active": {
                            "type": "boolean"
                          },
                          "createdAt": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "endpointId",
                          "url",
                          "events",
                          "active",
                          "createdAt"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "endpoints"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/webhooks/{endpointId}/disable": {
      "post": {
        "summary": "PARTNER (signed): stop deliveries to an endpoint",
        "parameters": [
          {
            "name": "endpointId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "urSignature": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "endpointId": {
                      "type": "string"
                    },
                    "active": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "endpointId",
                    "active"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/webhooks/{endpointId}/test": {
      "post": {
        "summary": "PARTNER (signed): enqueue a webhook.test delivery",
        "parameters": [
          {
            "name": "endpointId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "urSignature": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "deliveryId": {
                      "type": "string"
                    },
                    "eventId": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "deliveryId",
                    "eventId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/webhooks/deliveries": {
      "get": {
        "summary": "PARTNER (signed): delivery log with every attempt",
        "parameters": [],
        "security": [
          {
            "urSignature": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "deliveries": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "deliveryId": {
                            "type": "string"
                          },
                          "endpointId": {
                            "type": "string"
                          },
                          "eventId": {
                            "type": "string"
                          },
                          "eventType": {
                            "type": "string"
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "PENDING",
                              "DELIVERED",
                              "FAILED",
                              "DEAD"
                            ]
                          },
                          "attempts": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          },
                          "lastStatus": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": -9007199254740991,
                                "maximum": 9007199254740991
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "lastError": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "createdAt": {
                            "type": "string"
                          },
                          "deliveredAt": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "replayOf": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "log": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "properties": {
                                "at": {
                                  "type": "string"
                                },
                                "httpStatus": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": -9007199254740991,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "durationMs": {
                                  "type": "integer",
                                  "minimum": -9007199254740991,
                                  "maximum": 9007199254740991
                                },
                                "error": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                }
                              },
                              "required": [
                                "at",
                                "httpStatus",
                                "durationMs",
                                "error"
                              ],
                              "additionalProperties": false
                            }
                          }
                        },
                        "required": [
                          "deliveryId",
                          "endpointId",
                          "eventId",
                          "eventType",
                          "state",
                          "attempts",
                          "lastStatus",
                          "lastError",
                          "createdAt",
                          "deliveredAt",
                          "replayOf",
                          "log"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "deliveries"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/webhooks/deliveries/{deliveryId}/replay": {
      "post": {
        "summary": "PARTNER (signed): re-send the same event (same eventId)",
        "parameters": [
          {
            "name": "deliveryId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "urSignature": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "deliveryId": {
                      "type": "string"
                    },
                    "replayOf": {
                      "type": "string"
                    },
                    "eventId": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "deliveryId",
                    "replayOf",
                    "eventId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/keys": {
      "get": {
        "summary": "Our public keys (MANIFEST, RESULT, PLAYBACK, WEBHOOK) with revocation times, and the witness key",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "keys": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "keyId": {
                            "type": "string"
                          },
                          "purpose": {
                            "type": "string"
                          },
                          "algorithm": {
                            "type": "string"
                          },
                          "publicKeyPem": {
                            "type": "string"
                          },
                          "createdAt": {
                            "type": "string"
                          },
                          "revokedAt": {
                            "type": [
                              "string",
                              "null"
                            ]
                          }
                        },
                        "required": [
                          "keyId",
                          "purpose",
                          "algorithm",
                          "publicKeyPem",
                          "createdAt",
                          "revokedAt"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "witness": {}
                  },
                  "required": [
                    "keys",
                    "witness"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/player/balance": {
      "get": {
        "summary": "Player balance (player session scope)",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "balance": {
                      "type": "object",
                      "properties": {
                        "amountAtomic": {
                          "type": "string",
                          "maxLength": 40,
                          "pattern": "^(0|[1-9][0-9]*)$"
                        },
                        "currency": {
                          "type": "string",
                          "pattern": "^[A-Z0-9]{2,12}$"
                        },
                        "scale": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 18
                        }
                      },
                      "required": [
                        "amountAtomic",
                        "currency",
                        "scale"
                      ],
                      "additionalProperties": false
                    },
                    "balanceVersion": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "asOf": {
                      "type": "string",
                      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                    },
                    "isDemo": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "balance",
                    "balanceVersion",
                    "asOf",
                    "isDemo"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/player/bets": {
      "post": {
        "summary": "Place bet (player session scope, idempotent by commandId)",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "betId": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 128
                    },
                    "commandId": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 128
                    },
                    "gameId": {
                      "type": "string",
                      "enum": [
                        "traffic-pulse",
                        "lane-duel",
                        "next-class",
                        "cycle-count",
                        "harbor-count"
                      ]
                    },
                    "gameRoundId": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 128
                    },
                    "partnerWalletRoundId": {
                      "anyOf": [
                        {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 128
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "selection": {
                      "type": "string",
                      "enum": [
                        "UNDER",
                        "RANGE",
                        "OVER",
                        "EXACT",
                        "EXACT_LOW",
                        "EXACT_HIGH",
                        "LANE_A",
                        "LANE_B",
                        "TIE",
                        "CAR",
                        "HEAVY",
                        "MOTORCYCLE",
                        "NO_EVENT",
                        "ZERO",
                        "ONE",
                        "TWO_PLUS"
                      ]
                    },
                    "stake": {
                      "type": "object",
                      "properties": {
                        "amountAtomic": {
                          "type": "string",
                          "maxLength": 40,
                          "pattern": "^(0|[1-9][0-9]*)$"
                        },
                        "currency": {
                          "type": "string",
                          "pattern": "^[A-Z0-9]{2,12}$"
                        },
                        "scale": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 18
                        }
                      },
                      "required": [
                        "amountAtomic",
                        "currency",
                        "scale"
                      ],
                      "additionalProperties": false
                    },
                    "funding": {
                      "type": "string",
                      "enum": [
                        "CASH",
                        "FREEBET"
                      ]
                    },
                    "cashDebit": {
                      "type": "object",
                      "properties": {
                        "amountAtomic": {
                          "type": "string",
                          "maxLength": 40,
                          "pattern": "^(0|[1-9][0-9]*)$"
                        },
                        "currency": {
                          "type": "string",
                          "pattern": "^[A-Z0-9]{2,12}$"
                        },
                        "scale": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 18
                        }
                      },
                      "required": [
                        "amountAtomic",
                        "currency",
                        "scale"
                      ],
                      "additionalProperties": false
                    },
                    "rewardId": {
                      "anyOf": [
                        {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 128
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "quote": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "gameRoundId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 128
                            },
                            "selection": {
                              "type": "string",
                              "enum": [
                                "UNDER",
                                "RANGE",
                                "OVER",
                                "EXACT",
                                "EXACT_LOW",
                                "EXACT_HIGH",
                                "LANE_A",
                                "LANE_B",
                                "TIE",
                                "CAR",
                                "HEAVY",
                                "MOTORCYCLE",
                                "NO_EVENT",
                                "ZERO",
                                "ONE",
                                "TWO_PLUS"
                              ]
                            },
                            "odds": {
                              "type": "object",
                              "properties": {
                                "numerator": {
                                  "type": "string",
                                  "maxLength": 30,
                                  "pattern": "^[1-9][0-9]*$"
                                },
                                "denominator": {
                                  "type": "string",
                                  "maxLength": 30,
                                  "pattern": "^[1-9][0-9]*$"
                                }
                              },
                              "required": [
                                "numerator",
                                "denominator"
                              ],
                              "additionalProperties": false
                            },
                            "oddsVersion": {
                              "type": "string",
                              "minLength": 1
                            },
                            "lightning": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "numerator": {
                                      "type": "string",
                                      "maxLength": 30,
                                      "pattern": "^[1-9][0-9]*$"
                                    },
                                    "denominator": {
                                      "type": "string",
                                      "maxLength": 30,
                                      "pattern": "^[1-9][0-9]*$"
                                    }
                                  },
                                  "required": [
                                    "numerator",
                                    "denominator"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "lightningTier": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "enum": [
                                    "COMMON",
                                    "RARE",
                                    "EPIC",
                                    "LEGENDARY"
                                  ]
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "boostBps": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "payoutCap": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "amountAtomic": {
                                      "type": "string",
                                      "maxLength": 40,
                                      "pattern": "^(0|[1-9][0-9]*)$"
                                    },
                                    "currency": {
                                      "type": "string",
                                      "pattern": "^[A-Z0-9]{2,12}$"
                                    },
                                    "scale": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 18
                                    }
                                  },
                                  "required": [
                                    "amountAtomic",
                                    "currency",
                                    "scale"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "promoPolicyVersion": {
                              "type": "string",
                              "minLength": 1
                            },
                            "freebetPolicy": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "enum": [
                                    "STAKE_INCLUDED",
                                    "PROFIT_ONLY"
                                  ]
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "quotedAt": {
                              "type": "string",
                              "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                            }
                          },
                          "required": [
                            "gameRoundId",
                            "selection",
                            "odds",
                            "oddsVersion",
                            "lightning",
                            "lightningTier",
                            "boostBps",
                            "payoutCap",
                            "promoPolicyVersion",
                            "freebetPolicy",
                            "quotedAt"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "state": {
                      "type": "string",
                      "enum": [
                        "SUBMITTED",
                        "DEBIT_PENDING",
                        "ACCEPTED",
                        "REJECTED",
                        "COMPENSATION_PENDING",
                        "COMPENSATED",
                        "RESULT_WON",
                        "RESULT_LOST",
                        "CREDIT_PENDING",
                        "SETTLED",
                        "REFUND_PENDING",
                        "VOIDED"
                      ]
                    },
                    "rejectReason": {
                      "anyOf": [
                        {
                          "type": "string",
                          "enum": [
                            "BETTING_CLOSED",
                            "INSUFFICIENT_FUNDS",
                            "SESSION_EXPIRED",
                            "INVALID_STAKE",
                            "CURRENCY_MISMATCH",
                            "QUOTE_CHANGED",
                            "LIABILITY_LIMIT",
                            "SOURCE_UNAVAILABLE",
                            "IDEMPOTENCY_CONFLICT",
                            "DEBIT_UNRESOLVED_AT_CLOSE",
                            "STAKE_LIMIT",
                            "REWARD_UNAVAILABLE",
                            "PROMO_NOT_STACKABLE",
                            "WALLET_UNAVAILABLE"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "payoutGross": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "amountAtomic": {
                              "type": "string",
                              "maxLength": 40,
                              "pattern": "^(0|[1-9][0-9]*)$"
                            },
                            "currency": {
                              "type": "string",
                              "pattern": "^[A-Z0-9]{2,12}$"
                            },
                            "scale": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 18
                            }
                          },
                          "required": [
                            "amountAtomic",
                            "currency",
                            "scale"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "payoutNet": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "amountAtomic": {
                              "type": "string",
                              "maxLength": 41,
                              "pattern": "^(0|-?[1-9][0-9]*)$"
                            },
                            "currency": {
                              "type": "string",
                              "pattern": "^[A-Z0-9]{2,12}$"
                            },
                            "scale": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 18
                            }
                          },
                          "required": [
                            "amountAtomic",
                            "currency",
                            "scale"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "submittedAt": {
                      "type": "string",
                      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                    },
                    "updatedAt": {
                      "type": "string",
                      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                    }
                  },
                  "required": [
                    "betId",
                    "commandId",
                    "gameId",
                    "gameRoundId",
                    "partnerWalletRoundId",
                    "selection",
                    "stake",
                    "funding",
                    "cashDebit",
                    "rewardId",
                    "quote",
                    "state",
                    "rejectReason",
                    "payoutGross",
                    "payoutNet",
                    "submittedAt",
                    "updatedAt"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "commandId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  },
                  "gameRoundId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  },
                  "selection": {
                    "type": "string",
                    "enum": [
                      "UNDER",
                      "RANGE",
                      "OVER",
                      "EXACT",
                      "EXACT_LOW",
                      "EXACT_HIGH",
                      "LANE_A",
                      "LANE_B",
                      "TIE",
                      "CAR",
                      "HEAVY",
                      "MOTORCYCLE",
                      "NO_EVENT",
                      "ZERO",
                      "ONE",
                      "TWO_PLUS"
                    ]
                  },
                  "stake": {
                    "type": "object",
                    "properties": {
                      "amountAtomic": {
                        "type": "string",
                        "maxLength": 40,
                        "pattern": "^(0|[1-9][0-9]*)$"
                      },
                      "currency": {
                        "type": "string",
                        "pattern": "^[A-Z0-9]{2,12}$"
                      },
                      "scale": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 18
                      }
                    },
                    "required": [
                      "amountAtomic",
                      "currency",
                      "scale"
                    ],
                    "additionalProperties": false
                  },
                  "expectedOddsVersion": {
                    "type": "string",
                    "minLength": 1
                  },
                  "rewardId": {
                    "anyOf": [
                      {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 128
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "commandId",
                  "gameRoundId",
                  "selection",
                  "stake",
                  "expectedOddsVersion"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      },
      "get": {
        "summary": "Bets of the session player (tenant from the session)",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "bets": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "betId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 128
                          },
                          "commandId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 128
                          },
                          "gameId": {
                            "type": "string",
                            "enum": [
                              "traffic-pulse",
                              "lane-duel",
                              "next-class",
                              "cycle-count",
                              "harbor-count"
                            ]
                          },
                          "gameRoundId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 128
                          },
                          "partnerWalletRoundId": {
                            "anyOf": [
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 128
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "selection": {
                            "type": "string",
                            "enum": [
                              "UNDER",
                              "RANGE",
                              "OVER",
                              "EXACT",
                              "EXACT_LOW",
                              "EXACT_HIGH",
                              "LANE_A",
                              "LANE_B",
                              "TIE",
                              "CAR",
                              "HEAVY",
                              "MOTORCYCLE",
                              "NO_EVENT",
                              "ZERO",
                              "ONE",
                              "TWO_PLUS"
                            ]
                          },
                          "stake": {
                            "type": "object",
                            "properties": {
                              "amountAtomic": {
                                "type": "string",
                                "maxLength": 40,
                                "pattern": "^(0|[1-9][0-9]*)$"
                              },
                              "currency": {
                                "type": "string",
                                "pattern": "^[A-Z0-9]{2,12}$"
                              },
                              "scale": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 18
                              }
                            },
                            "required": [
                              "amountAtomic",
                              "currency",
                              "scale"
                            ],
                            "additionalProperties": false
                          },
                          "funding": {
                            "type": "string",
                            "enum": [
                              "CASH",
                              "FREEBET"
                            ]
                          },
                          "cashDebit": {
                            "type": "object",
                            "properties": {
                              "amountAtomic": {
                                "type": "string",
                                "maxLength": 40,
                                "pattern": "^(0|[1-9][0-9]*)$"
                              },
                              "currency": {
                                "type": "string",
                                "pattern": "^[A-Z0-9]{2,12}$"
                              },
                              "scale": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 18
                              }
                            },
                            "required": [
                              "amountAtomic",
                              "currency",
                              "scale"
                            ],
                            "additionalProperties": false
                          },
                          "rewardId": {
                            "anyOf": [
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 128
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "quote": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "gameRoundId": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 128
                                  },
                                  "selection": {
                                    "type": "string",
                                    "enum": [
                                      "UNDER",
                                      "RANGE",
                                      "OVER",
                                      "EXACT",
                                      "EXACT_LOW",
                                      "EXACT_HIGH",
                                      "LANE_A",
                                      "LANE_B",
                                      "TIE",
                                      "CAR",
                                      "HEAVY",
                                      "MOTORCYCLE",
                                      "NO_EVENT",
                                      "ZERO",
                                      "ONE",
                                      "TWO_PLUS"
                                    ]
                                  },
                                  "odds": {
                                    "type": "object",
                                    "properties": {
                                      "numerator": {
                                        "type": "string",
                                        "maxLength": 30,
                                        "pattern": "^[1-9][0-9]*$"
                                      },
                                      "denominator": {
                                        "type": "string",
                                        "maxLength": 30,
                                        "pattern": "^[1-9][0-9]*$"
                                      }
                                    },
                                    "required": [
                                      "numerator",
                                      "denominator"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "oddsVersion": {
                                    "type": "string",
                                    "minLength": 1
                                  },
                                  "lightning": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "numerator": {
                                            "type": "string",
                                            "maxLength": 30,
                                            "pattern": "^[1-9][0-9]*$"
                                          },
                                          "denominator": {
                                            "type": "string",
                                            "maxLength": 30,
                                            "pattern": "^[1-9][0-9]*$"
                                          }
                                        },
                                        "required": [
                                          "numerator",
                                          "denominator"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "lightningTier": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "enum": [
                                          "COMMON",
                                          "RARE",
                                          "EPIC",
                                          "LEGENDARY"
                                        ]
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "boostBps": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "payoutCap": {
                                    "anyOf": [
                                      {
                                        "type": "object",
                                        "properties": {
                                          "amountAtomic": {
                                            "type": "string",
                                            "maxLength": 40,
                                            "pattern": "^(0|[1-9][0-9]*)$"
                                          },
                                          "currency": {
                                            "type": "string",
                                            "pattern": "^[A-Z0-9]{2,12}$"
                                          },
                                          "scale": {
                                            "type": "integer",
                                            "minimum": 0,
                                            "maximum": 18
                                          }
                                        },
                                        "required": [
                                          "amountAtomic",
                                          "currency",
                                          "scale"
                                        ],
                                        "additionalProperties": false
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "promoPolicyVersion": {
                                    "type": "string",
                                    "minLength": 1
                                  },
                                  "freebetPolicy": {
                                    "anyOf": [
                                      {
                                        "type": "string",
                                        "enum": [
                                          "STAKE_INCLUDED",
                                          "PROFIT_ONLY"
                                        ]
                                      },
                                      {
                                        "type": "null"
                                      }
                                    ]
                                  },
                                  "quotedAt": {
                                    "type": "string",
                                    "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                  }
                                },
                                "required": [
                                  "gameRoundId",
                                  "selection",
                                  "odds",
                                  "oddsVersion",
                                  "lightning",
                                  "lightningTier",
                                  "boostBps",
                                  "payoutCap",
                                  "promoPolicyVersion",
                                  "freebetPolicy",
                                  "quotedAt"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "SUBMITTED",
                              "DEBIT_PENDING",
                              "ACCEPTED",
                              "REJECTED",
                              "COMPENSATION_PENDING",
                              "COMPENSATED",
                              "RESULT_WON",
                              "RESULT_LOST",
                              "CREDIT_PENDING",
                              "SETTLED",
                              "REFUND_PENDING",
                              "VOIDED"
                            ]
                          },
                          "rejectReason": {
                            "anyOf": [
                              {
                                "type": "string",
                                "enum": [
                                  "BETTING_CLOSED",
                                  "INSUFFICIENT_FUNDS",
                                  "SESSION_EXPIRED",
                                  "INVALID_STAKE",
                                  "CURRENCY_MISMATCH",
                                  "QUOTE_CHANGED",
                                  "LIABILITY_LIMIT",
                                  "SOURCE_UNAVAILABLE",
                                  "IDEMPOTENCY_CONFLICT",
                                  "DEBIT_UNRESOLVED_AT_CLOSE",
                                  "STAKE_LIMIT",
                                  "REWARD_UNAVAILABLE",
                                  "PROMO_NOT_STACKABLE",
                                  "WALLET_UNAVAILABLE"
                                ]
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "payoutGross": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "amountAtomic": {
                                    "type": "string",
                                    "maxLength": 40,
                                    "pattern": "^(0|[1-9][0-9]*)$"
                                  },
                                  "currency": {
                                    "type": "string",
                                    "pattern": "^[A-Z0-9]{2,12}$"
                                  },
                                  "scale": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 18
                                  }
                                },
                                "required": [
                                  "amountAtomic",
                                  "currency",
                                  "scale"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "payoutNet": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "amountAtomic": {
                                    "type": "string",
                                    "maxLength": 41,
                                    "pattern": "^(0|-?[1-9][0-9]*)$"
                                  },
                                  "currency": {
                                    "type": "string",
                                    "pattern": "^[A-Z0-9]{2,12}$"
                                  },
                                  "scale": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 18
                                  }
                                },
                                "required": [
                                  "amountAtomic",
                                  "currency",
                                  "scale"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "submittedAt": {
                            "type": "string",
                            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                          },
                          "updatedAt": {
                            "type": "string",
                            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                          }
                        },
                        "required": [
                          "betId",
                          "commandId",
                          "gameId",
                          "gameRoundId",
                          "partnerWalletRoundId",
                          "selection",
                          "stake",
                          "funding",
                          "cashDebit",
                          "rewardId",
                          "quote",
                          "state",
                          "rejectReason",
                          "payoutGross",
                          "payoutNet",
                          "submittedAt",
                          "updatedAt"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "bets"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/player/session": {
      "get": {
        "summary": "Launch session: wallet currency (from the operator launch)",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "sessionId": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 128
                    },
                    "walletCurrency": {
                      "type": "object",
                      "properties": {
                        "assetId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 64
                        },
                        "code": {
                          "type": "string",
                          "pattern": "^[A-Z0-9]{2,12}$"
                        },
                        "kind": {
                          "type": "string",
                          "enum": [
                            "FIAT",
                            "CRYPTO"
                          ]
                        },
                        "scale": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 18
                        },
                        "network": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 64
                        },
                        "partnerAssetCode": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 64
                        },
                        "catalogueVersion": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 32
                        },
                        "demoOnly": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "assetId",
                        "code",
                        "kind",
                        "scale",
                        "catalogueVersion",
                        "demoOnly"
                      ],
                      "additionalProperties": false
                    },
                    "startedAt": {
                      "type": "string",
                      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                    },
                    "countryHint": {
                      "anyOf": [
                        {
                          "type": "string",
                          "pattern": "^[A-Z]{2}$"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "isDemo": {
                      "type": "boolean"
                    },
                    "moneyMode": {
                      "type": "string",
                      "enum": [
                        "DEMO",
                        "REAL",
                        "FUN"
                      ]
                    }
                  },
                  "required": [
                    "sessionId",
                    "walletCurrency",
                    "startedAt",
                    "countryHint",
                    "isDemo"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/launch-sessions": {
      "post": {
        "summary": "PARTNER (signed, launch:create): one-time launch code (60 s); entitlement, declared country, currency assertion and display currency checked",
        "parameters": [],
        "security": [
          {
            "urSignature": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "launchCode": {
                      "type": "string"
                    },
                    "launchUrl": {
                      "type": "string"
                    },
                    "expiresInS": {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    },
                    "currency": {
                      "type": "string"
                    },
                    "displayCurrency": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "brandId": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "launchCode",
                    "launchUrl",
                    "expiresInS",
                    "currency",
                    "displayCurrency",
                    "brandId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "brandId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64
                  },
                  "externalPlayerId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  },
                  "gameId": {
                    "type": "string",
                    "enum": [
                      "traffic-pulse",
                      "lane-duel",
                      "next-class",
                      "cycle-count",
                      "harbor-count"
                    ]
                  },
                  "country": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  },
                  "currency": {
                    "type": "string",
                    "pattern": "^[A-Z0-9]{2,10}$"
                  },
                  "displayCurrency": {
                    "type": "string",
                    "pattern": "^[A-Z0-9]{2,10}$"
                  },
                  "language": {
                    "type": "string",
                    "pattern": "^[a-z]{2}(-[A-Z]{2})?$"
                  },
                  "allowedOrigin": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 256,
                        "format": "uri"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "operatorToken": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 512,
                    "pattern": "^[\\x21-\\x7E]+$"
                  },
                  "device": {
                    "type": "string",
                    "enum": [
                      "desktop",
                      "mobile"
                    ]
                  },
                  "lobbyUrl": {
                    "type": "string",
                    "maxLength": 2048,
                    "format": "uri"
                  },
                  "depositUrl": {
                    "type": "string",
                    "maxLength": 2048,
                    "format": "uri"
                  },
                  "returnUrl": {
                    "type": "string",
                    "maxLength": 2048,
                    "format": "uri"
                  },
                  "siteName": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  }
                },
                "required": [
                  "brandId",
                  "externalPlayerId",
                  "gameId",
                  "country"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/v1/demo-sessions": {
      "post": {
        "summary": "PARTNER (signed, launch:create): demo (fun-play) launch — an anonymous demo player on the UrbanRats demo wallet; no wallet callback reaches the operator; not on leaderboards or campaigns",
        "parameters": [],
        "security": [
          {
            "urSignature": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "launchCode": {
                      "type": "string"
                    },
                    "launchUrl": {
                      "type": "string"
                    },
                    "expiresInS": {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    },
                    "currency": {
                      "type": "string"
                    },
                    "displayCurrency": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "brandId": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "launchCode",
                    "launchUrl",
                    "expiresInS",
                    "currency",
                    "displayCurrency",
                    "brandId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "brandId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64
                  },
                  "gameId": {
                    "type": "string",
                    "enum": [
                      "traffic-pulse",
                      "lane-duel",
                      "next-class",
                      "cycle-count",
                      "harbor-count"
                    ]
                  },
                  "country": {
                    "type": "string",
                    "pattern": "^[A-Z]{2}$"
                  },
                  "language": {
                    "type": "string",
                    "pattern": "^[a-z]{2}(-[A-Z]{2})?$"
                  },
                  "allowedOrigin": {
                    "anyOf": [
                      {
                        "type": "string",
                        "maxLength": 256,
                        "format": "uri"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "device": {
                    "type": "string",
                    "enum": [
                      "desktop",
                      "mobile"
                    ]
                  },
                  "lobbyUrl": {
                    "type": "string",
                    "maxLength": 2048,
                    "format": "uri"
                  },
                  "currency": {
                    "type": "string",
                    "pattern": "^[A-Z0-9]{2,10}$"
                  },
                  "siteName": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 120
                  }
                },
                "required": [
                  "brandId",
                  "gameId",
                  "country"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/v1/players/{externalPlayerId}/stats": {
      "get": {
        "summary": "PARTNER (signed, bets:read): one player’s statistics (counts, money per currency, recent results)",
        "parameters": [
          {
            "name": "externalPlayerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "urSignature": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "alias": {
                      "type": "string"
                    },
                    "firstPlayed": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "totals": {
                      "type": "object",
                      "properties": {
                        "rounds": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "bets": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "wins": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "exactHits": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "bestMultiplier": {
                          "type": "number"
                        },
                        "playMinutes": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        }
                      },
                      "required": [
                        "rounds",
                        "bets",
                        "wins",
                        "exactHits",
                        "bestMultiplier",
                        "playMinutes"
                      ],
                      "additionalProperties": false
                    },
                    "last30Days": {
                      "type": "object",
                      "properties": {
                        "rounds": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "bets": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "wins": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        }
                      },
                      "required": [
                        "rounds",
                        "bets",
                        "wins"
                      ],
                      "additionalProperties": false
                    },
                    "money": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "currency": {
                            "type": "string"
                          },
                          "scale": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          },
                          "stake": {
                            "type": "string"
                          },
                          "payout": {
                            "type": "string"
                          },
                          "net": {
                            "type": "string"
                          },
                          "biggestWin": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "currency",
                          "scale",
                          "stake",
                          "payout",
                          "net",
                          "biggestWin"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "favouriteSelection": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "recent": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "gameRoundId": {
                            "type": "string"
                          },
                          "at": {
                            "type": "string"
                          },
                          "selection": {
                            "type": "string"
                          },
                          "stake": {
                            "type": "string"
                          },
                          "payout": {
                            "type": "string"
                          },
                          "currency": {
                            "type": "string"
                          },
                          "scale": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          },
                          "finalCount": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": -9007199254740991,
                                "maximum": 9007199254740991
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "low": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": -9007199254740991,
                                "maximum": 9007199254740991
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "high": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": -9007199254740991,
                                "maximum": 9007199254740991
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "funding": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "gameRoundId",
                          "at",
                          "selection",
                          "stake",
                          "payout",
                          "currency",
                          "scale",
                          "finalCount",
                          "low",
                          "high",
                          "funding"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "alias",
                    "firstPlayed",
                    "totals",
                    "last30Days",
                    "money",
                    "favouriteSelection",
                    "recent"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/leaderboards": {
      "get": {
        "summary": "PARTNER (signed, games:read): leaderboards your brands take part in (current period)",
        "parameters": [],
        "security": [
          {
            "urSignature": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "leaderboards": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "boardId": {
                            "type": "string"
                          },
                          "name": {
                            "type": "string"
                          },
                          "metric": {
                            "type": "string"
                          },
                          "currency": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "period": {
                            "type": "string"
                          },
                          "startsAt": {
                            "type": "string"
                          },
                          "endsAt": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "boardId",
                          "name",
                          "metric",
                          "currency",
                          "period",
                          "startsAt",
                          "endsAt"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "leaderboards"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/leaderboards/{boardId}": {
      "get": {
        "summary": "PARTNER (signed, games:read): one leaderboard, top 100 by alias (yours: true marks your players)",
        "parameters": [
          {
            "name": "boardId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "urSignature": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "boardId": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "metric": {
                      "type": "string"
                    },
                    "top": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "rank": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          },
                          "alias": {
                            "type": "string"
                          },
                          "country": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "value": {
                            "type": "string"
                          },
                          "yours": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "rank",
                          "alias",
                          "country",
                          "value",
                          "yours"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "boardId",
                    "name",
                    "metric",
                    "top"
                  ],
                  "additionalProperties": {}
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/player/stats": {
      "get": {
        "summary": "The session player’s own statistics",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "alias": {
                      "type": "string"
                    },
                    "firstPlayed": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "totals": {
                      "type": "object",
                      "properties": {
                        "rounds": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "bets": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "wins": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "exactHits": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "bestMultiplier": {
                          "type": "number"
                        },
                        "playMinutes": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        }
                      },
                      "required": [
                        "rounds",
                        "bets",
                        "wins",
                        "exactHits",
                        "bestMultiplier",
                        "playMinutes"
                      ],
                      "additionalProperties": false
                    },
                    "last30Days": {
                      "type": "object",
                      "properties": {
                        "rounds": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "bets": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        },
                        "wins": {
                          "type": "integer",
                          "minimum": -9007199254740991,
                          "maximum": 9007199254740991
                        }
                      },
                      "required": [
                        "rounds",
                        "bets",
                        "wins"
                      ],
                      "additionalProperties": false
                    },
                    "money": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "currency": {
                            "type": "string"
                          },
                          "scale": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          },
                          "stake": {
                            "type": "string"
                          },
                          "payout": {
                            "type": "string"
                          },
                          "net": {
                            "type": "string"
                          },
                          "biggestWin": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "currency",
                          "scale",
                          "stake",
                          "payout",
                          "net",
                          "biggestWin"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "favouriteSelection": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "recent": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "gameRoundId": {
                            "type": "string"
                          },
                          "at": {
                            "type": "string"
                          },
                          "selection": {
                            "type": "string"
                          },
                          "stake": {
                            "type": "string"
                          },
                          "payout": {
                            "type": "string"
                          },
                          "currency": {
                            "type": "string"
                          },
                          "scale": {
                            "type": "integer",
                            "minimum": -9007199254740991,
                            "maximum": 9007199254740991
                          },
                          "finalCount": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": -9007199254740991,
                                "maximum": 9007199254740991
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "low": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": -9007199254740991,
                                "maximum": 9007199254740991
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "high": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "minimum": -9007199254740991,
                                "maximum": 9007199254740991
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "funding": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "gameRoundId",
                          "at",
                          "selection",
                          "stake",
                          "payout",
                          "currency",
                          "scale",
                          "finalCount",
                          "low",
                          "high",
                          "funding"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "alias",
                    "firstPlayed",
                    "totals",
                    "last30Days",
                    "money",
                    "favouriteSelection",
                    "recent"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/player/rules-intro": {
      "get": {
        "summary": "Illustrated counting rules intro: current version and whether to show it (per player, every device)",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "version": {
                      "type": "string"
                    },
                    "accepted": {
                      "type": "boolean"
                    },
                    "dontShow": {
                      "type": "boolean"
                    },
                    "acceptedAt": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "show": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "version",
                    "accepted",
                    "dontShow",
                    "acceptedAt",
                    "show"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      },
      "post": {
        "summary": "The player confirms the rules intro (append-only record; 409 RULES_CHANGED when the version moved on)",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "version": {
                      "type": "string"
                    },
                    "accepted": {
                      "type": "boolean",
                      "const": true
                    },
                    "dontShow": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "version",
                    "accepted",
                    "dontShow"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "version": {
                    "type": "string",
                    "maxLength": 64
                  },
                  "dontShow": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "version",
                  "dontShow"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/v1/player/sessions": {
      "post": {
        "summary": "One-time exchange of a launch code for a player session token",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "sessionToken": {
                      "type": "string"
                    },
                    "sessionId": {
                      "type": "string"
                    },
                    "expiresInS": {
                      "type": "integer",
                      "minimum": -9007199254740991,
                      "maximum": 9007199254740991
                    }
                  },
                  "required": [
                    "sessionToken",
                    "sessionId",
                    "expiresInS"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "launchCode": {
                    "type": "string",
                    "maxLength": 128
                  }
                },
                "required": [
                  "launchCode"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/v1/player/rounds/current": {
      "get": {
        "summary": "Current round of the session game",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "gameRoundId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 128
                        },
                        "state": {
                          "type": "string",
                          "enum": [
                            "SCHEDULED",
                            "BETTING_OPEN",
                            "BETTING_CLOSED",
                            "CAPTURING",
                            "VERIFYING",
                            "REVIEW_REQUIRED",
                            "RESULT_FINAL",
                            "SETTLING",
                            "SETTLED",
                            "VOIDING",
                            "VOIDED"
                          ]
                        },
                        "manifest": {
                          "type": "object",
                          "properties": {
                            "manifestVersion": {
                              "type": "number",
                              "const": 1
                            },
                            "gameRoundId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 128
                            },
                            "gameId": {
                              "type": "string",
                              "enum": [
                                "traffic-pulse",
                                "lane-duel",
                                "next-class",
                                "cycle-count",
                                "harbor-count"
                              ]
                            },
                            "rulesVersion": {
                              "type": "string",
                              "minLength": 1
                            },
                            "rulesHash": {
                              "type": "string",
                              "pattern": "^[0-9a-f]{64}$"
                            },
                            "modelVersion": {
                              "type": "string",
                              "minLength": 1
                            },
                            "modelHash": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "pattern": "^[0-9a-f]{64}$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "configHash": {
                              "type": "string",
                              "pattern": "^[0-9a-f]{64}$"
                            },
                            "cameraAlias": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 128
                            },
                            "sourceMode": {
                              "type": "string",
                              "enum": [
                                "LIVE",
                                "DELAYED_LIVE",
                                "RECORDED_DEMO",
                                "SIMULATION"
                              ]
                            },
                            "sourceEpoch": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 160
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "captureWindowPts": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "startMicros": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "endMicros": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    }
                                  },
                                  "required": [
                                    "startMicros",
                                    "endMicros"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "roi": {
                              "minItems": 3,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "x": {
                                    "type": "number",
                                    "minimum": 0,
                                    "maximum": 1
                                  },
                                  "y": {
                                    "type": "number",
                                    "minimum": 0,
                                    "maximum": 1
                                  }
                                },
                                "required": [
                                  "x",
                                  "y"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "line": {
                              "type": "object",
                              "properties": {
                                "lineId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 64
                                },
                                "a": {
                                  "type": "object",
                                  "properties": {
                                    "x": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "y": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    }
                                  },
                                  "required": [
                                    "x",
                                    "y"
                                  ],
                                  "additionalProperties": false
                                },
                                "b": {
                                  "type": "object",
                                  "properties": {
                                    "x": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "y": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    }
                                  },
                                  "required": [
                                    "x",
                                    "y"
                                  ],
                                  "additionalProperties": false
                                },
                                "countedDirection": {
                                  "type": "string",
                                  "enum": [
                                    "A_TO_B",
                                    "B_TO_A"
                                  ]
                                },
                                "curve": {
                                  "type": "object",
                                  "properties": {
                                    "x": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "y": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    }
                                  },
                                  "required": [
                                    "x",
                                    "y"
                                  ],
                                  "additionalProperties": false
                                },
                                "zone": {
                                  "type": "object",
                                  "properties": {
                                    "a": {
                                      "type": "object",
                                      "properties": {
                                        "x": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        },
                                        "y": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        }
                                      },
                                      "required": [
                                        "x",
                                        "y"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "b": {
                                      "type": "object",
                                      "properties": {
                                        "x": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        },
                                        "y": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        }
                                      },
                                      "required": [
                                        "x",
                                        "y"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "a",
                                    "b"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "lineId",
                                "a",
                                "b",
                                "countedDirection"
                              ],
                              "additionalProperties": false
                            },
                            "includedClasses": {
                              "minItems": 1,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "car",
                                  "bus",
                                  "truck",
                                  "motorcycle",
                                  "bicycle",
                                  "bicycle_pushed",
                                  "boat"
                                ]
                              }
                            },
                            "timing": {
                              "type": "object",
                              "properties": {
                                "bettingOpenAt": {
                                  "type": "string",
                                  "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                },
                                "bettingCloseAt": {
                                  "type": "string",
                                  "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                },
                                "captureStartAt": {
                                  "type": "string",
                                  "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                },
                                "captureEndAt": {
                                  "type": "string",
                                  "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                },
                                "guardMs": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "clockErrorBoundMs": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "verifyDeadlineAt": {
                                  "type": "string",
                                  "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                }
                              },
                              "required": [
                                "bettingOpenAt",
                                "bettingCloseAt",
                                "captureStartAt",
                                "captureEndAt",
                                "guardMs",
                                "clockErrorBoundMs",
                                "verifyDeadlineAt"
                              ],
                              "additionalProperties": false
                            },
                            "thresholds": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "low": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    "high": {
                                      "type": "integer",
                                      "minimum": -9007199254740991,
                                      "maximum": 9007199254740991
                                    }
                                  },
                                  "required": [
                                    "low",
                                    "high"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "bands": {
                              "type": "object",
                              "properties": {
                                "source": {
                                  "type": "string",
                                  "const": "CAMERA_RECENT"
                                },
                                "windows": {
                                  "type": "integer",
                                  "exclusiveMinimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "median": {
                                  "type": "number",
                                  "minimum": 0
                                },
                                "fromAt": {
                                  "type": "string",
                                  "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                },
                                "toAt": {
                                  "type": "string",
                                  "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                },
                                "counts": {
                                  "maxItems": 60,
                                  "type": "array",
                                  "items": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  }
                                }
                              },
                              "required": [
                                "source",
                                "windows",
                                "median",
                                "fromAt",
                                "toAt"
                              ],
                              "additionalProperties": false
                            },
                            "rules": {
                              "oneOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "COUNT_BANDS"
                                    },
                                    "thresholds": {
                                      "type": "object",
                                      "properties": {
                                        "low": {
                                          "type": "integer",
                                          "minimum": 1,
                                          "maximum": 9007199254740991
                                        },
                                        "high": {
                                          "type": "integer",
                                          "minimum": -9007199254740991,
                                          "maximum": 9007199254740991
                                        }
                                      },
                                      "required": [
                                        "low",
                                        "high"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "directions": {
                                      "type": "string",
                                      "enum": [
                                        "COUNTED_DIRECTION",
                                        "ANY"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "thresholds",
                                    "directions"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "COUNT_BUCKETS"
                                    },
                                    "buckets": {
                                      "minItems": 2,
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "selection": {
                                            "type": "string",
                                            "enum": [
                                              "UNDER",
                                              "RANGE",
                                              "OVER",
                                              "EXACT",
                                              "EXACT_LOW",
                                              "EXACT_HIGH",
                                              "LANE_A",
                                              "LANE_B",
                                              "TIE",
                                              "CAR",
                                              "HEAVY",
                                              "MOTORCYCLE",
                                              "NO_EVENT",
                                              "ZERO",
                                              "ONE",
                                              "TWO_PLUS"
                                            ]
                                          },
                                          "min": {
                                            "type": "integer",
                                            "minimum": 0,
                                            "maximum": 9007199254740991
                                          },
                                          "max": {
                                            "anyOf": [
                                              {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              },
                                              {
                                                "type": "null"
                                              }
                                            ]
                                          }
                                        },
                                        "required": [
                                          "selection",
                                          "min",
                                          "max"
                                        ],
                                        "additionalProperties": false
                                      }
                                    },
                                    "directions": {
                                      "type": "string",
                                      "enum": [
                                        "COUNTED_DIRECTION",
                                        "ANY"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "buckets",
                                    "directions"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "DUEL"
                                    },
                                    "labelA": {
                                      "type": "string",
                                      "maxLength": 40
                                    },
                                    "labelB": {
                                      "type": "string",
                                      "maxLength": 40
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "labelA",
                                    "labelB"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "object",
                                  "properties": {
                                    "kind": {
                                      "type": "string",
                                      "const": "FIRST_EVENT"
                                    },
                                    "groups": {
                                      "minItems": 1,
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "selection": {
                                            "type": "string",
                                            "enum": [
                                              "UNDER",
                                              "RANGE",
                                              "OVER",
                                              "EXACT",
                                              "EXACT_LOW",
                                              "EXACT_HIGH",
                                              "LANE_A",
                                              "LANE_B",
                                              "TIE",
                                              "CAR",
                                              "HEAVY",
                                              "MOTORCYCLE",
                                              "NO_EVENT",
                                              "ZERO",
                                              "ONE",
                                              "TWO_PLUS"
                                            ]
                                          },
                                          "classes": {
                                            "minItems": 1,
                                            "type": "array",
                                            "items": {
                                              "type": "string",
                                              "enum": [
                                                "car",
                                                "bus",
                                                "truck",
                                                "motorcycle",
                                                "bicycle",
                                                "bicycle_pushed",
                                                "boat"
                                              ]
                                            }
                                          }
                                        },
                                        "required": [
                                          "selection",
                                          "classes"
                                        ],
                                        "additionalProperties": false
                                      }
                                    },
                                    "simultaneityMs": {
                                      "type": "integer",
                                      "exclusiveMinimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "directions": {
                                      "type": "string",
                                      "enum": [
                                        "COUNTED_DIRECTION",
                                        "ANY"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "kind",
                                    "groups",
                                    "simultaneityMs",
                                    "directions"
                                  ],
                                  "additionalProperties": false
                                }
                              ]
                            },
                            "oddsVersion": {
                              "type": "string",
                              "minLength": 1
                            },
                            "odds": {
                              "minItems": 1,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "selection": {
                                    "type": "string",
                                    "enum": [
                                      "UNDER",
                                      "RANGE",
                                      "OVER",
                                      "EXACT",
                                      "EXACT_LOW",
                                      "EXACT_HIGH",
                                      "LANE_A",
                                      "LANE_B",
                                      "TIE",
                                      "CAR",
                                      "HEAVY",
                                      "MOTORCYCLE",
                                      "NO_EVENT",
                                      "ZERO",
                                      "ONE",
                                      "TWO_PLUS"
                                    ]
                                  },
                                  "odds": {
                                    "type": "object",
                                    "properties": {
                                      "numerator": {
                                        "type": "string",
                                        "maxLength": 30,
                                        "pattern": "^[1-9][0-9]*$"
                                      },
                                      "denominator": {
                                        "type": "string",
                                        "maxLength": 30,
                                        "pattern": "^[1-9][0-9]*$"
                                      }
                                    },
                                    "required": [
                                      "numerator",
                                      "denominator"
                                    ],
                                    "additionalProperties": false
                                  },
                                  "exampleOnly": {
                                    "type": "boolean"
                                  }
                                },
                                "required": [
                                  "selection",
                                  "odds",
                                  "exampleOnly"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "pricing": {
                              "type": "object",
                              "properties": {
                                "source": {
                                  "type": "string",
                                  "enum": [
                                    "EXAMPLE",
                                    "MODEL"
                                  ]
                                },
                                "modelId": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "edgeBps": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "quotes": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "selection": {
                                        "type": "string",
                                        "enum": [
                                          "UNDER",
                                          "RANGE",
                                          "OVER",
                                          "EXACT",
                                          "EXACT_LOW",
                                          "EXACT_HIGH",
                                          "LANE_A",
                                          "LANE_B",
                                          "TIE",
                                          "CAR",
                                          "HEAVY",
                                          "MOTORCYCLE",
                                          "NO_EVENT",
                                          "ZERO",
                                          "ONE",
                                          "TWO_PLUS"
                                        ]
                                      },
                                      "p": {
                                        "type": "number"
                                      },
                                      "pLow": {
                                        "type": "number"
                                      },
                                      "pHigh": {
                                        "type": "number"
                                      }
                                    },
                                    "required": [
                                      "selection",
                                      "p",
                                      "pLow",
                                      "pHigh"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "lightningWithheld": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                }
                              },
                              "required": [
                                "source",
                                "modelId",
                                "edgeBps",
                                "quotes"
                              ],
                              "additionalProperties": false
                            },
                            "reviewPolicyVersion": {
                              "type": "string",
                              "minLength": 1
                            },
                            "voidPolicyVersion": {
                              "type": "string",
                              "minLength": 1
                            },
                            "promoCommitment": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "pattern": "^[0-9a-f]{64}$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "lightning": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "policyVersion": {
                                      "type": "string",
                                      "minLength": 1
                                    },
                                    "commitment": {
                                      "type": "string",
                                      "pattern": "^[0-9a-f]{64}$"
                                    },
                                    "boosts": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "selection": {
                                            "type": "string",
                                            "enum": [
                                              "UNDER",
                                              "RANGE",
                                              "OVER",
                                              "EXACT",
                                              "EXACT_LOW",
                                              "EXACT_HIGH",
                                              "LANE_A",
                                              "LANE_B",
                                              "TIE",
                                              "CAR",
                                              "HEAVY",
                                              "MOTORCYCLE",
                                              "NO_EVENT",
                                              "ZERO",
                                              "ONE",
                                              "TWO_PLUS"
                                            ]
                                          },
                                          "tier": {
                                            "type": "string",
                                            "enum": [
                                              "COMMON",
                                              "RARE",
                                              "EPIC",
                                              "LEGENDARY"
                                            ]
                                          },
                                          "factor": {
                                            "type": "object",
                                            "properties": {
                                              "numerator": {
                                                "type": "string",
                                                "maxLength": 30,
                                                "pattern": "^[1-9][0-9]*$"
                                              },
                                              "denominator": {
                                                "type": "string",
                                                "maxLength": 30,
                                                "pattern": "^[1-9][0-9]*$"
                                              }
                                            },
                                            "required": [
                                              "numerator",
                                              "denominator"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "required": [
                                          "selection",
                                          "tier",
                                          "factor"
                                        ],
                                        "additionalProperties": false
                                      }
                                    }
                                  },
                                  "required": [
                                    "policyVersion",
                                    "commitment",
                                    "boosts"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "sourceClock": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "timestampKind": {
                                      "type": "string",
                                      "enum": [
                                        "CAPTURE",
                                        "PUBLISH",
                                        "INGEST",
                                        "SIMULATED_CAPTURE",
                                        "UNKNOWN"
                                      ]
                                    },
                                    "trust": {
                                      "type": "string",
                                      "enum": [
                                        "TRUSTED",
                                        "UNTRUSTED",
                                        "UNKNOWN"
                                      ]
                                    },
                                    "errorBoundMs": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "errorBoundMeasured": {
                                      "type": "boolean"
                                    },
                                    "monetaryEligible": {
                                      "type": "boolean"
                                    }
                                  },
                                  "required": [
                                    "timestampKind",
                                    "trust",
                                    "errorBoundMs",
                                    "errorBoundMeasured",
                                    "monetaryEligible"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "camera": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "cameraId": {
                                      "type": "string"
                                    },
                                    "name": {
                                      "type": [
                                        "string",
                                        "null"
                                      ]
                                    },
                                    "provider": {
                                      "type": "string"
                                    },
                                    "countryCode": {
                                      "type": [
                                        "string",
                                        "null"
                                      ]
                                    },
                                    "country": {
                                      "type": [
                                        "string",
                                        "null"
                                      ]
                                    },
                                    "city": {
                                      "type": [
                                        "string",
                                        "null"
                                      ]
                                    },
                                    "road": {
                                      "type": [
                                        "string",
                                        "null"
                                      ]
                                    },
                                    "region": {
                                      "type": [
                                        "string",
                                        "null"
                                      ]
                                    },
                                    "district": {
                                      "type": [
                                        "string",
                                        "null"
                                      ]
                                    },
                                    "locationAttribution": {
                                      "type": [
                                        "string",
                                        "null"
                                      ]
                                    },
                                    "latitude": {
                                      "type": [
                                        "number",
                                        "null"
                                      ]
                                    },
                                    "longitude": {
                                      "type": [
                                        "number",
                                        "null"
                                      ]
                                    },
                                    "rightsStatus": {
                                      "type": "string"
                                    },
                                    "calibrationVersion": {
                                      "type": "integer",
                                      "minimum": -9007199254740991,
                                      "maximum": 9007199254740991
                                    },
                                    "calibrationStatus": {
                                      "type": "string",
                                      "enum": [
                                        "PROVISIONAL",
                                        "VALIDATED"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "cameraId",
                                    "name",
                                    "provider",
                                    "countryCode",
                                    "country",
                                    "city",
                                    "road",
                                    "latitude",
                                    "longitude",
                                    "rightsStatus",
                                    "calibrationVersion",
                                    "calibrationStatus"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "manifestVersion",
                            "gameRoundId",
                            "gameId",
                            "rulesVersion",
                            "rulesHash",
                            "modelVersion",
                            "modelHash",
                            "configHash",
                            "cameraAlias",
                            "sourceMode",
                            "sourceEpoch",
                            "captureWindowPts",
                            "roi",
                            "line",
                            "includedClasses",
                            "timing",
                            "thresholds",
                            "rules",
                            "oddsVersion",
                            "odds",
                            "reviewPolicyVersion",
                            "voidPolicyVersion",
                            "promoCommitment",
                            "lightning"
                          ],
                          "additionalProperties": false
                        },
                        "count": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "finalCount": {
                          "anyOf": [
                            {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "winningSelections": {
                          "anyOf": [
                            {
                              "type": "array",
                              "items": {
                                "type": "string"
                              }
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "metrics": {
                          "type": "object",
                          "properties": {
                            "count": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "countA": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "countB": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "firstClass": {
                              "type": [
                                "string",
                                "null"
                              ]
                            }
                          },
                          "required": [
                            "count",
                            "countA",
                            "countB",
                            "firstClass"
                          ],
                          "additionalProperties": false
                        },
                        "sequence": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "playback": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "assetId": {
                                  "type": "string"
                                },
                                "startAt": {
                                  "type": "string",
                                  "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                },
                                "revealAt": {
                                  "type": "string",
                                  "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                },
                                "durationMs": {
                                  "type": "integer",
                                  "exclusiveMinimum": 0,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "assetId",
                                "startAt",
                                "revealAt",
                                "durationMs"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "gameRoundId",
                        "state",
                        "manifest",
                        "count",
                        "finalCount",
                        "winningSelections",
                        "metrics",
                        "sequence"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/player/rounds/{gameRoundId}": {
      "get": {
        "summary": "Round of the session game",
        "parameters": [
          {
            "name": "gameRoundId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "gameRoundId": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 128
                    },
                    "state": {
                      "type": "string",
                      "enum": [
                        "SCHEDULED",
                        "BETTING_OPEN",
                        "BETTING_CLOSED",
                        "CAPTURING",
                        "VERIFYING",
                        "REVIEW_REQUIRED",
                        "RESULT_FINAL",
                        "SETTLING",
                        "SETTLED",
                        "VOIDING",
                        "VOIDED"
                      ]
                    },
                    "manifest": {
                      "type": "object",
                      "properties": {
                        "manifestVersion": {
                          "type": "number",
                          "const": 1
                        },
                        "gameRoundId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 128
                        },
                        "gameId": {
                          "type": "string",
                          "enum": [
                            "traffic-pulse",
                            "lane-duel",
                            "next-class",
                            "cycle-count",
                            "harbor-count"
                          ]
                        },
                        "rulesVersion": {
                          "type": "string",
                          "minLength": 1
                        },
                        "rulesHash": {
                          "type": "string",
                          "pattern": "^[0-9a-f]{64}$"
                        },
                        "modelVersion": {
                          "type": "string",
                          "minLength": 1
                        },
                        "modelHash": {
                          "anyOf": [
                            {
                              "type": "string",
                              "pattern": "^[0-9a-f]{64}$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "configHash": {
                          "type": "string",
                          "pattern": "^[0-9a-f]{64}$"
                        },
                        "cameraAlias": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 128
                        },
                        "sourceMode": {
                          "type": "string",
                          "enum": [
                            "LIVE",
                            "DELAYED_LIVE",
                            "RECORDED_DEMO",
                            "SIMULATION"
                          ]
                        },
                        "sourceEpoch": {
                          "anyOf": [
                            {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 160
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "captureWindowPts": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "startMicros": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "endMicros": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "startMicros",
                                "endMicros"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "roi": {
                          "minItems": 3,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "x": {
                                "type": "number",
                                "minimum": 0,
                                "maximum": 1
                              },
                              "y": {
                                "type": "number",
                                "minimum": 0,
                                "maximum": 1
                              }
                            },
                            "required": [
                              "x",
                              "y"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "line": {
                          "type": "object",
                          "properties": {
                            "lineId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 64
                            },
                            "a": {
                              "type": "object",
                              "properties": {
                                "x": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                },
                                "y": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                }
                              },
                              "required": [
                                "x",
                                "y"
                              ],
                              "additionalProperties": false
                            },
                            "b": {
                              "type": "object",
                              "properties": {
                                "x": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                },
                                "y": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                }
                              },
                              "required": [
                                "x",
                                "y"
                              ],
                              "additionalProperties": false
                            },
                            "countedDirection": {
                              "type": "string",
                              "enum": [
                                "A_TO_B",
                                "B_TO_A"
                              ]
                            },
                            "curve": {
                              "type": "object",
                              "properties": {
                                "x": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                },
                                "y": {
                                  "type": "number",
                                  "minimum": 0,
                                  "maximum": 1
                                }
                              },
                              "required": [
                                "x",
                                "y"
                              ],
                              "additionalProperties": false
                            },
                            "zone": {
                              "type": "object",
                              "properties": {
                                "a": {
                                  "type": "object",
                                  "properties": {
                                    "x": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "y": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    }
                                  },
                                  "required": [
                                    "x",
                                    "y"
                                  ],
                                  "additionalProperties": false
                                },
                                "b": {
                                  "type": "object",
                                  "properties": {
                                    "x": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    },
                                    "y": {
                                      "type": "number",
                                      "minimum": 0,
                                      "maximum": 1
                                    }
                                  },
                                  "required": [
                                    "x",
                                    "y"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "a",
                                "b"
                              ],
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "lineId",
                            "a",
                            "b",
                            "countedDirection"
                          ],
                          "additionalProperties": false
                        },
                        "includedClasses": {
                          "minItems": 1,
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "car",
                              "bus",
                              "truck",
                              "motorcycle",
                              "bicycle",
                              "bicycle_pushed",
                              "boat"
                            ]
                          }
                        },
                        "timing": {
                          "type": "object",
                          "properties": {
                            "bettingOpenAt": {
                              "type": "string",
                              "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                            },
                            "bettingCloseAt": {
                              "type": "string",
                              "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                            },
                            "captureStartAt": {
                              "type": "string",
                              "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                            },
                            "captureEndAt": {
                              "type": "string",
                              "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                            },
                            "guardMs": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "clockErrorBoundMs": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "verifyDeadlineAt": {
                              "type": "string",
                              "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                            }
                          },
                          "required": [
                            "bettingOpenAt",
                            "bettingCloseAt",
                            "captureStartAt",
                            "captureEndAt",
                            "guardMs",
                            "clockErrorBoundMs",
                            "verifyDeadlineAt"
                          ],
                          "additionalProperties": false
                        },
                        "thresholds": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "low": {
                                  "type": "integer",
                                  "minimum": 1,
                                  "maximum": 9007199254740991
                                },
                                "high": {
                                  "type": "integer",
                                  "minimum": -9007199254740991,
                                  "maximum": 9007199254740991
                                }
                              },
                              "required": [
                                "low",
                                "high"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "bands": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "const": "CAMERA_RECENT"
                            },
                            "windows": {
                              "type": "integer",
                              "exclusiveMinimum": 0,
                              "maximum": 9007199254740991
                            },
                            "median": {
                              "type": "number",
                              "minimum": 0
                            },
                            "fromAt": {
                              "type": "string",
                              "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                            },
                            "toAt": {
                              "type": "string",
                              "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                            },
                            "counts": {
                              "maxItems": 60,
                              "type": "array",
                              "items": {
                                "type": "integer",
                                "minimum": 0,
                                "maximum": 9007199254740991
                              }
                            }
                          },
                          "required": [
                            "source",
                            "windows",
                            "median",
                            "fromAt",
                            "toAt"
                          ],
                          "additionalProperties": false
                        },
                        "rules": {
                          "oneOf": [
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "COUNT_BANDS"
                                },
                                "thresholds": {
                                  "type": "object",
                                  "properties": {
                                    "low": {
                                      "type": "integer",
                                      "minimum": 1,
                                      "maximum": 9007199254740991
                                    },
                                    "high": {
                                      "type": "integer",
                                      "minimum": -9007199254740991,
                                      "maximum": 9007199254740991
                                    }
                                  },
                                  "required": [
                                    "low",
                                    "high"
                                  ],
                                  "additionalProperties": false
                                },
                                "directions": {
                                  "type": "string",
                                  "enum": [
                                    "COUNTED_DIRECTION",
                                    "ANY"
                                  ]
                                }
                              },
                              "required": [
                                "kind",
                                "thresholds",
                                "directions"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "COUNT_BUCKETS"
                                },
                                "buckets": {
                                  "minItems": 2,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "selection": {
                                        "type": "string",
                                        "enum": [
                                          "UNDER",
                                          "RANGE",
                                          "OVER",
                                          "EXACT",
                                          "EXACT_LOW",
                                          "EXACT_HIGH",
                                          "LANE_A",
                                          "LANE_B",
                                          "TIE",
                                          "CAR",
                                          "HEAVY",
                                          "MOTORCYCLE",
                                          "NO_EVENT",
                                          "ZERO",
                                          "ONE",
                                          "TWO_PLUS"
                                        ]
                                      },
                                      "min": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      },
                                      "max": {
                                        "anyOf": [
                                          {
                                            "type": "integer",
                                            "minimum": 0,
                                            "maximum": 9007199254740991
                                          },
                                          {
                                            "type": "null"
                                          }
                                        ]
                                      }
                                    },
                                    "required": [
                                      "selection",
                                      "min",
                                      "max"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "directions": {
                                  "type": "string",
                                  "enum": [
                                    "COUNTED_DIRECTION",
                                    "ANY"
                                  ]
                                }
                              },
                              "required": [
                                "kind",
                                "buckets",
                                "directions"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "DUEL"
                                },
                                "labelA": {
                                  "type": "string",
                                  "maxLength": 40
                                },
                                "labelB": {
                                  "type": "string",
                                  "maxLength": 40
                                }
                              },
                              "required": [
                                "kind",
                                "labelA",
                                "labelB"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "object",
                              "properties": {
                                "kind": {
                                  "type": "string",
                                  "const": "FIRST_EVENT"
                                },
                                "groups": {
                                  "minItems": 1,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "selection": {
                                        "type": "string",
                                        "enum": [
                                          "UNDER",
                                          "RANGE",
                                          "OVER",
                                          "EXACT",
                                          "EXACT_LOW",
                                          "EXACT_HIGH",
                                          "LANE_A",
                                          "LANE_B",
                                          "TIE",
                                          "CAR",
                                          "HEAVY",
                                          "MOTORCYCLE",
                                          "NO_EVENT",
                                          "ZERO",
                                          "ONE",
                                          "TWO_PLUS"
                                        ]
                                      },
                                      "classes": {
                                        "minItems": 1,
                                        "type": "array",
                                        "items": {
                                          "type": "string",
                                          "enum": [
                                            "car",
                                            "bus",
                                            "truck",
                                            "motorcycle",
                                            "bicycle",
                                            "bicycle_pushed",
                                            "boat"
                                          ]
                                        }
                                      }
                                    },
                                    "required": [
                                      "selection",
                                      "classes"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "simultaneityMs": {
                                  "type": "integer",
                                  "exclusiveMinimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "directions": {
                                  "type": "string",
                                  "enum": [
                                    "COUNTED_DIRECTION",
                                    "ANY"
                                  ]
                                }
                              },
                              "required": [
                                "kind",
                                "groups",
                                "simultaneityMs",
                                "directions"
                              ],
                              "additionalProperties": false
                            }
                          ]
                        },
                        "oddsVersion": {
                          "type": "string",
                          "minLength": 1
                        },
                        "odds": {
                          "minItems": 1,
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "selection": {
                                "type": "string",
                                "enum": [
                                  "UNDER",
                                  "RANGE",
                                  "OVER",
                                  "EXACT",
                                  "EXACT_LOW",
                                  "EXACT_HIGH",
                                  "LANE_A",
                                  "LANE_B",
                                  "TIE",
                                  "CAR",
                                  "HEAVY",
                                  "MOTORCYCLE",
                                  "NO_EVENT",
                                  "ZERO",
                                  "ONE",
                                  "TWO_PLUS"
                                ]
                              },
                              "odds": {
                                "type": "object",
                                "properties": {
                                  "numerator": {
                                    "type": "string",
                                    "maxLength": 30,
                                    "pattern": "^[1-9][0-9]*$"
                                  },
                                  "denominator": {
                                    "type": "string",
                                    "maxLength": 30,
                                    "pattern": "^[1-9][0-9]*$"
                                  }
                                },
                                "required": [
                                  "numerator",
                                  "denominator"
                                ],
                                "additionalProperties": false
                              },
                              "exampleOnly": {
                                "type": "boolean"
                              }
                            },
                            "required": [
                              "selection",
                              "odds",
                              "exampleOnly"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "pricing": {
                          "type": "object",
                          "properties": {
                            "source": {
                              "type": "string",
                              "enum": [
                                "EXAMPLE",
                                "MODEL"
                              ]
                            },
                            "modelId": {
                              "type": [
                                "string",
                                "null"
                              ]
                            },
                            "edgeBps": {
                              "anyOf": [
                                {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "quotes": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "selection": {
                                    "type": "string",
                                    "enum": [
                                      "UNDER",
                                      "RANGE",
                                      "OVER",
                                      "EXACT",
                                      "EXACT_LOW",
                                      "EXACT_HIGH",
                                      "LANE_A",
                                      "LANE_B",
                                      "TIE",
                                      "CAR",
                                      "HEAVY",
                                      "MOTORCYCLE",
                                      "NO_EVENT",
                                      "ZERO",
                                      "ONE",
                                      "TWO_PLUS"
                                    ]
                                  },
                                  "p": {
                                    "type": "number"
                                  },
                                  "pLow": {
                                    "type": "number"
                                  },
                                  "pHigh": {
                                    "type": "number"
                                  }
                                },
                                "required": [
                                  "selection",
                                  "p",
                                  "pLow",
                                  "pHigh"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "lightningWithheld": {
                              "type": [
                                "string",
                                "null"
                              ]
                            }
                          },
                          "required": [
                            "source",
                            "modelId",
                            "edgeBps",
                            "quotes"
                          ],
                          "additionalProperties": false
                        },
                        "reviewPolicyVersion": {
                          "type": "string",
                          "minLength": 1
                        },
                        "voidPolicyVersion": {
                          "type": "string",
                          "minLength": 1
                        },
                        "promoCommitment": {
                          "anyOf": [
                            {
                              "type": "string",
                              "pattern": "^[0-9a-f]{64}$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "lightning": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "policyVersion": {
                                  "type": "string",
                                  "minLength": 1
                                },
                                "commitment": {
                                  "type": "string",
                                  "pattern": "^[0-9a-f]{64}$"
                                },
                                "boosts": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "selection": {
                                        "type": "string",
                                        "enum": [
                                          "UNDER",
                                          "RANGE",
                                          "OVER",
                                          "EXACT",
                                          "EXACT_LOW",
                                          "EXACT_HIGH",
                                          "LANE_A",
                                          "LANE_B",
                                          "TIE",
                                          "CAR",
                                          "HEAVY",
                                          "MOTORCYCLE",
                                          "NO_EVENT",
                                          "ZERO",
                                          "ONE",
                                          "TWO_PLUS"
                                        ]
                                      },
                                      "tier": {
                                        "type": "string",
                                        "enum": [
                                          "COMMON",
                                          "RARE",
                                          "EPIC",
                                          "LEGENDARY"
                                        ]
                                      },
                                      "factor": {
                                        "type": "object",
                                        "properties": {
                                          "numerator": {
                                            "type": "string",
                                            "maxLength": 30,
                                            "pattern": "^[1-9][0-9]*$"
                                          },
                                          "denominator": {
                                            "type": "string",
                                            "maxLength": 30,
                                            "pattern": "^[1-9][0-9]*$"
                                          }
                                        },
                                        "required": [
                                          "numerator",
                                          "denominator"
                                        ],
                                        "additionalProperties": false
                                      }
                                    },
                                    "required": [
                                      "selection",
                                      "tier",
                                      "factor"
                                    ],
                                    "additionalProperties": false
                                  }
                                }
                              },
                              "required": [
                                "policyVersion",
                                "commitment",
                                "boosts"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "sourceClock": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "timestampKind": {
                                  "type": "string",
                                  "enum": [
                                    "CAPTURE",
                                    "PUBLISH",
                                    "INGEST",
                                    "SIMULATED_CAPTURE",
                                    "UNKNOWN"
                                  ]
                                },
                                "trust": {
                                  "type": "string",
                                  "enum": [
                                    "TRUSTED",
                                    "UNTRUSTED",
                                    "UNKNOWN"
                                  ]
                                },
                                "errorBoundMs": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "errorBoundMeasured": {
                                  "type": "boolean"
                                },
                                "monetaryEligible": {
                                  "type": "boolean"
                                }
                              },
                              "required": [
                                "timestampKind",
                                "trust",
                                "errorBoundMs",
                                "errorBoundMeasured",
                                "monetaryEligible"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "camera": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "cameraId": {
                                  "type": "string"
                                },
                                "name": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "provider": {
                                  "type": "string"
                                },
                                "countryCode": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "country": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "city": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "road": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "region": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "district": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "locationAttribution": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "latitude": {
                                  "type": [
                                    "number",
                                    "null"
                                  ]
                                },
                                "longitude": {
                                  "type": [
                                    "number",
                                    "null"
                                  ]
                                },
                                "rightsStatus": {
                                  "type": "string"
                                },
                                "calibrationVersion": {
                                  "type": "integer",
                                  "minimum": -9007199254740991,
                                  "maximum": 9007199254740991
                                },
                                "calibrationStatus": {
                                  "type": "string",
                                  "enum": [
                                    "PROVISIONAL",
                                    "VALIDATED"
                                  ]
                                }
                              },
                              "required": [
                                "cameraId",
                                "name",
                                "provider",
                                "countryCode",
                                "country",
                                "city",
                                "road",
                                "latitude",
                                "longitude",
                                "rightsStatus",
                                "calibrationVersion",
                                "calibrationStatus"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        }
                      },
                      "required": [
                        "manifestVersion",
                        "gameRoundId",
                        "gameId",
                        "rulesVersion",
                        "rulesHash",
                        "modelVersion",
                        "modelHash",
                        "configHash",
                        "cameraAlias",
                        "sourceMode",
                        "sourceEpoch",
                        "captureWindowPts",
                        "roi",
                        "line",
                        "includedClasses",
                        "timing",
                        "thresholds",
                        "rules",
                        "oddsVersion",
                        "odds",
                        "reviewPolicyVersion",
                        "voidPolicyVersion",
                        "promoCommitment",
                        "lightning"
                      ],
                      "additionalProperties": false
                    },
                    "count": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "finalCount": {
                      "anyOf": [
                        {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "winningSelections": {
                      "anyOf": [
                        {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "metrics": {
                      "type": "object",
                      "properties": {
                        "count": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "countA": {
                          "anyOf": [
                            {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "countB": {
                          "anyOf": [
                            {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "firstClass": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      },
                      "required": [
                        "count",
                        "countA",
                        "countB",
                        "firstClass"
                      ],
                      "additionalProperties": false
                    },
                    "sequence": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "playback": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "assetId": {
                              "type": "string"
                            },
                            "startAt": {
                              "type": "string",
                              "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                            },
                            "revealAt": {
                              "type": "string",
                              "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                            },
                            "durationMs": {
                              "type": "integer",
                              "exclusiveMinimum": 0,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "assetId",
                            "startAt",
                            "revealAt",
                            "durationMs"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "gameRoundId",
                    "state",
                    "manifest",
                    "count",
                    "finalCount",
                    "winningSelections",
                    "metrics",
                    "sequence"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/player/evidence/{gameRoundId}": {
      "get": {
        "summary": "Evidence bundle (hash-checked read from the evidence store)",
        "parameters": [
          {
            "name": "gameRoundId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "gameRoundId": {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 128
                        },
                        "manifestHash": {
                          "type": "string",
                          "pattern": "^[0-9a-f]{64}$"
                        },
                        "mediaSegmentHashes": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "pattern": "^[0-9a-f]{64}$"
                          }
                        },
                        "events": {
                          "type": "array",
                          "items": {
                            "type": "object",
                            "properties": {
                              "eventId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 128
                              },
                              "gameRoundId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 128
                              },
                              "cameraAlias": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 128
                              },
                              "sourceEpoch": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 128
                              },
                              "trackId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 128
                              },
                              "lineId": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 64
                              },
                              "direction": {
                                "type": "string",
                                "enum": [
                                  "A_TO_B",
                                  "B_TO_A"
                                ]
                              },
                              "vehicleClass": {
                                "type": "string",
                                "enum": [
                                  "car",
                                  "bus",
                                  "truck",
                                  "motorcycle",
                                  "bicycle",
                                  "bicycle_pushed",
                                  "boat"
                                ]
                              },
                              "confidence": {
                                "type": "number",
                                "minimum": 0,
                                "maximum": 1
                              },
                              "framePts": {
                                "type": "object",
                                "properties": {
                                  "sourceEpoch": {
                                    "type": "string",
                                    "minLength": 1,
                                    "maxLength": 128
                                  },
                                  "ptsMicros": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  }
                                },
                                "required": [
                                  "sourceEpoch",
                                  "ptsMicros"
                                ],
                                "additionalProperties": false
                              },
                              "capturedAt": {
                                "anyOf": [
                                  {
                                    "type": "string",
                                    "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                  },
                                  {
                                    "type": "null"
                                  }
                                ]
                              },
                              "modelVersion": {
                                "type": "string",
                                "minLength": 1
                              },
                              "configVersion": {
                                "type": "string",
                                "minLength": 1
                              },
                              "evidenceRef": {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 512
                              },
                              "uncertain": {
                                "type": "boolean"
                              },
                              "origin": {
                                "type": "string",
                                "enum": [
                                  "VIDEO_INFERENCE",
                                  "SIMULATION_FIXTURE"
                                ]
                              }
                            },
                            "required": [
                              "eventId",
                              "gameRoundId",
                              "cameraAlias",
                              "sourceEpoch",
                              "trackId",
                              "lineId",
                              "direction",
                              "vehicleClass",
                              "confidence",
                              "framePts",
                              "capturedAt",
                              "modelVersion",
                              "configVersion",
                              "evidenceRef",
                              "uncertain",
                              "origin"
                            ],
                            "additionalProperties": false
                          }
                        },
                        "count": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "winningSelections": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "modelHash": {
                          "anyOf": [
                            {
                              "type": "string",
                              "pattern": "^[0-9a-f]{64}$"
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "mediaRef": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "sourceId": {
                                  "type": "string"
                                },
                                "sourceEpoch": {
                                  "type": "string"
                                },
                                "window": {
                                  "type": "object",
                                  "properties": {
                                    "startMicros": {
                                      "type": "integer",
                                      "minimum": -9007199254740991,
                                      "maximum": 9007199254740991
                                    },
                                    "endMicros": {
                                      "type": "integer",
                                      "minimum": -9007199254740991,
                                      "maximum": 9007199254740991
                                    }
                                  },
                                  "required": [
                                    "startMicros",
                                    "endMicros"
                                  ],
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "sourceId",
                                "sourceEpoch",
                                "window"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "roundState": {
                          "type": "string"
                        },
                        "configHash": {
                          "type": "string",
                          "pattern": "^[0-9a-f]{64}$"
                        },
                        "status": {
                          "type": "string",
                          "enum": [
                            "COMPLETE",
                            "INSUFFICIENT",
                            "SIMULATION_ONLY"
                          ]
                        },
                        "evidenceVerified": {
                          "type": "boolean"
                        },
                        "countIndependentlyConfirmed": {
                          "type": "boolean"
                        },
                        "generatedAt": {
                          "type": "string",
                          "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                        },
                        "lightningReveal": {
                          "anyOf": [
                            {
                              "type": "object",
                              "properties": {
                                "serverSeedHex": {
                                  "type": "string",
                                  "pattern": "^[0-9a-f]{64}$"
                                },
                                "commitment": {
                                  "type": "string",
                                  "pattern": "^[0-9a-f]{64}$"
                                }
                              },
                              "required": [
                                "serverSeedHex",
                                "commitment"
                              ],
                              "additionalProperties": false
                            },
                            {
                              "type": "null"
                            }
                          ]
                        },
                        "proof": {
                          "type": "object",
                          "properties": {
                            "manifest": {
                              "type": "object",
                              "properties": {
                                "manifestVersion": {
                                  "type": "number",
                                  "const": 1
                                },
                                "gameRoundId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 128
                                },
                                "gameId": {
                                  "type": "string",
                                  "enum": [
                                    "traffic-pulse",
                                    "lane-duel",
                                    "next-class",
                                    "cycle-count",
                                    "harbor-count"
                                  ]
                                },
                                "rulesVersion": {
                                  "type": "string",
                                  "minLength": 1
                                },
                                "rulesHash": {
                                  "type": "string",
                                  "pattern": "^[0-9a-f]{64}$"
                                },
                                "modelVersion": {
                                  "type": "string",
                                  "minLength": 1
                                },
                                "modelHash": {
                                  "anyOf": [
                                    {
                                      "type": "string",
                                      "pattern": "^[0-9a-f]{64}$"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "configHash": {
                                  "type": "string",
                                  "pattern": "^[0-9a-f]{64}$"
                                },
                                "cameraAlias": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 128
                                },
                                "sourceMode": {
                                  "type": "string",
                                  "enum": [
                                    "LIVE",
                                    "DELAYED_LIVE",
                                    "RECORDED_DEMO",
                                    "SIMULATION"
                                  ]
                                },
                                "sourceEpoch": {
                                  "anyOf": [
                                    {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 160
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "captureWindowPts": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "startMicros": {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        },
                                        "endMicros": {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        }
                                      },
                                      "required": [
                                        "startMicros",
                                        "endMicros"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "roi": {
                                  "minItems": 3,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "x": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      },
                                      "y": {
                                        "type": "number",
                                        "minimum": 0,
                                        "maximum": 1
                                      }
                                    },
                                    "required": [
                                      "x",
                                      "y"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "line": {
                                  "type": "object",
                                  "properties": {
                                    "lineId": {
                                      "type": "string",
                                      "minLength": 1,
                                      "maxLength": 64
                                    },
                                    "a": {
                                      "type": "object",
                                      "properties": {
                                        "x": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        },
                                        "y": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        }
                                      },
                                      "required": [
                                        "x",
                                        "y"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "b": {
                                      "type": "object",
                                      "properties": {
                                        "x": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        },
                                        "y": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        }
                                      },
                                      "required": [
                                        "x",
                                        "y"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "countedDirection": {
                                      "type": "string",
                                      "enum": [
                                        "A_TO_B",
                                        "B_TO_A"
                                      ]
                                    },
                                    "curve": {
                                      "type": "object",
                                      "properties": {
                                        "x": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        },
                                        "y": {
                                          "type": "number",
                                          "minimum": 0,
                                          "maximum": 1
                                        }
                                      },
                                      "required": [
                                        "x",
                                        "y"
                                      ],
                                      "additionalProperties": false
                                    },
                                    "zone": {
                                      "type": "object",
                                      "properties": {
                                        "a": {
                                          "type": "object",
                                          "properties": {
                                            "x": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "y": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            }
                                          },
                                          "required": [
                                            "x",
                                            "y"
                                          ],
                                          "additionalProperties": false
                                        },
                                        "b": {
                                          "type": "object",
                                          "properties": {
                                            "x": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            },
                                            "y": {
                                              "type": "number",
                                              "minimum": 0,
                                              "maximum": 1
                                            }
                                          },
                                          "required": [
                                            "x",
                                            "y"
                                          ],
                                          "additionalProperties": false
                                        }
                                      },
                                      "required": [
                                        "a",
                                        "b"
                                      ],
                                      "additionalProperties": false
                                    }
                                  },
                                  "required": [
                                    "lineId",
                                    "a",
                                    "b",
                                    "countedDirection"
                                  ],
                                  "additionalProperties": false
                                },
                                "includedClasses": {
                                  "minItems": 1,
                                  "type": "array",
                                  "items": {
                                    "type": "string",
                                    "enum": [
                                      "car",
                                      "bus",
                                      "truck",
                                      "motorcycle",
                                      "bicycle",
                                      "bicycle_pushed",
                                      "boat"
                                    ]
                                  }
                                },
                                "timing": {
                                  "type": "object",
                                  "properties": {
                                    "bettingOpenAt": {
                                      "type": "string",
                                      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                    },
                                    "bettingCloseAt": {
                                      "type": "string",
                                      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                    },
                                    "captureStartAt": {
                                      "type": "string",
                                      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                    },
                                    "captureEndAt": {
                                      "type": "string",
                                      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                    },
                                    "guardMs": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "clockErrorBoundMs": {
                                      "anyOf": [
                                        {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "verifyDeadlineAt": {
                                      "type": "string",
                                      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                    }
                                  },
                                  "required": [
                                    "bettingOpenAt",
                                    "bettingCloseAt",
                                    "captureStartAt",
                                    "captureEndAt",
                                    "guardMs",
                                    "clockErrorBoundMs",
                                    "verifyDeadlineAt"
                                  ],
                                  "additionalProperties": false
                                },
                                "thresholds": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "low": {
                                          "type": "integer",
                                          "minimum": 1,
                                          "maximum": 9007199254740991
                                        },
                                        "high": {
                                          "type": "integer",
                                          "minimum": -9007199254740991,
                                          "maximum": 9007199254740991
                                        }
                                      },
                                      "required": [
                                        "low",
                                        "high"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "bands": {
                                  "type": "object",
                                  "properties": {
                                    "source": {
                                      "type": "string",
                                      "const": "CAMERA_RECENT"
                                    },
                                    "windows": {
                                      "type": "integer",
                                      "exclusiveMinimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "median": {
                                      "type": "number",
                                      "minimum": 0
                                    },
                                    "fromAt": {
                                      "type": "string",
                                      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                    },
                                    "toAt": {
                                      "type": "string",
                                      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                    },
                                    "counts": {
                                      "maxItems": 60,
                                      "type": "array",
                                      "items": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 9007199254740991
                                      }
                                    }
                                  },
                                  "required": [
                                    "source",
                                    "windows",
                                    "median",
                                    "fromAt",
                                    "toAt"
                                  ],
                                  "additionalProperties": false
                                },
                                "rules": {
                                  "oneOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "COUNT_BANDS"
                                        },
                                        "thresholds": {
                                          "type": "object",
                                          "properties": {
                                            "low": {
                                              "type": "integer",
                                              "minimum": 1,
                                              "maximum": 9007199254740991
                                            },
                                            "high": {
                                              "type": "integer",
                                              "minimum": -9007199254740991,
                                              "maximum": 9007199254740991
                                            }
                                          },
                                          "required": [
                                            "low",
                                            "high"
                                          ],
                                          "additionalProperties": false
                                        },
                                        "directions": {
                                          "type": "string",
                                          "enum": [
                                            "COUNTED_DIRECTION",
                                            "ANY"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "thresholds",
                                        "directions"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "COUNT_BUCKETS"
                                        },
                                        "buckets": {
                                          "minItems": 2,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "selection": {
                                                "type": "string",
                                                "enum": [
                                                  "UNDER",
                                                  "RANGE",
                                                  "OVER",
                                                  "EXACT",
                                                  "EXACT_LOW",
                                                  "EXACT_HIGH",
                                                  "LANE_A",
                                                  "LANE_B",
                                                  "TIE",
                                                  "CAR",
                                                  "HEAVY",
                                                  "MOTORCYCLE",
                                                  "NO_EVENT",
                                                  "ZERO",
                                                  "ONE",
                                                  "TWO_PLUS"
                                                ]
                                              },
                                              "min": {
                                                "type": "integer",
                                                "minimum": 0,
                                                "maximum": 9007199254740991
                                              },
                                              "max": {
                                                "anyOf": [
                                                  {
                                                    "type": "integer",
                                                    "minimum": 0,
                                                    "maximum": 9007199254740991
                                                  },
                                                  {
                                                    "type": "null"
                                                  }
                                                ]
                                              }
                                            },
                                            "required": [
                                              "selection",
                                              "min",
                                              "max"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "directions": {
                                          "type": "string",
                                          "enum": [
                                            "COUNTED_DIRECTION",
                                            "ANY"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "buckets",
                                        "directions"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "DUEL"
                                        },
                                        "labelA": {
                                          "type": "string",
                                          "maxLength": 40
                                        },
                                        "labelB": {
                                          "type": "string",
                                          "maxLength": 40
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "labelA",
                                        "labelB"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "object",
                                      "properties": {
                                        "kind": {
                                          "type": "string",
                                          "const": "FIRST_EVENT"
                                        },
                                        "groups": {
                                          "minItems": 1,
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "selection": {
                                                "type": "string",
                                                "enum": [
                                                  "UNDER",
                                                  "RANGE",
                                                  "OVER",
                                                  "EXACT",
                                                  "EXACT_LOW",
                                                  "EXACT_HIGH",
                                                  "LANE_A",
                                                  "LANE_B",
                                                  "TIE",
                                                  "CAR",
                                                  "HEAVY",
                                                  "MOTORCYCLE",
                                                  "NO_EVENT",
                                                  "ZERO",
                                                  "ONE",
                                                  "TWO_PLUS"
                                                ]
                                              },
                                              "classes": {
                                                "minItems": 1,
                                                "type": "array",
                                                "items": {
                                                  "type": "string",
                                                  "enum": [
                                                    "car",
                                                    "bus",
                                                    "truck",
                                                    "motorcycle",
                                                    "bicycle",
                                                    "bicycle_pushed",
                                                    "boat"
                                                  ]
                                                }
                                              }
                                            },
                                            "required": [
                                              "selection",
                                              "classes"
                                            ],
                                            "additionalProperties": false
                                          }
                                        },
                                        "simultaneityMs": {
                                          "type": "integer",
                                          "exclusiveMinimum": 0,
                                          "maximum": 9007199254740991
                                        },
                                        "directions": {
                                          "type": "string",
                                          "enum": [
                                            "COUNTED_DIRECTION",
                                            "ANY"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "kind",
                                        "groups",
                                        "simultaneityMs",
                                        "directions"
                                      ],
                                      "additionalProperties": false
                                    }
                                  ]
                                },
                                "oddsVersion": {
                                  "type": "string",
                                  "minLength": 1
                                },
                                "odds": {
                                  "minItems": 1,
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "properties": {
                                      "selection": {
                                        "type": "string",
                                        "enum": [
                                          "UNDER",
                                          "RANGE",
                                          "OVER",
                                          "EXACT",
                                          "EXACT_LOW",
                                          "EXACT_HIGH",
                                          "LANE_A",
                                          "LANE_B",
                                          "TIE",
                                          "CAR",
                                          "HEAVY",
                                          "MOTORCYCLE",
                                          "NO_EVENT",
                                          "ZERO",
                                          "ONE",
                                          "TWO_PLUS"
                                        ]
                                      },
                                      "odds": {
                                        "type": "object",
                                        "properties": {
                                          "numerator": {
                                            "type": "string",
                                            "maxLength": 30,
                                            "pattern": "^[1-9][0-9]*$"
                                          },
                                          "denominator": {
                                            "type": "string",
                                            "maxLength": 30,
                                            "pattern": "^[1-9][0-9]*$"
                                          }
                                        },
                                        "required": [
                                          "numerator",
                                          "denominator"
                                        ],
                                        "additionalProperties": false
                                      },
                                      "exampleOnly": {
                                        "type": "boolean"
                                      }
                                    },
                                    "required": [
                                      "selection",
                                      "odds",
                                      "exampleOnly"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "pricing": {
                                  "type": "object",
                                  "properties": {
                                    "source": {
                                      "type": "string",
                                      "enum": [
                                        "EXAMPLE",
                                        "MODEL"
                                      ]
                                    },
                                    "modelId": {
                                      "type": [
                                        "string",
                                        "null"
                                      ]
                                    },
                                    "edgeBps": {
                                      "anyOf": [
                                        {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "quotes": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "properties": {
                                          "selection": {
                                            "type": "string",
                                            "enum": [
                                              "UNDER",
                                              "RANGE",
                                              "OVER",
                                              "EXACT",
                                              "EXACT_LOW",
                                              "EXACT_HIGH",
                                              "LANE_A",
                                              "LANE_B",
                                              "TIE",
                                              "CAR",
                                              "HEAVY",
                                              "MOTORCYCLE",
                                              "NO_EVENT",
                                              "ZERO",
                                              "ONE",
                                              "TWO_PLUS"
                                            ]
                                          },
                                          "p": {
                                            "type": "number"
                                          },
                                          "pLow": {
                                            "type": "number"
                                          },
                                          "pHigh": {
                                            "type": "number"
                                          }
                                        },
                                        "required": [
                                          "selection",
                                          "p",
                                          "pLow",
                                          "pHigh"
                                        ],
                                        "additionalProperties": false
                                      }
                                    },
                                    "lightningWithheld": {
                                      "type": [
                                        "string",
                                        "null"
                                      ]
                                    }
                                  },
                                  "required": [
                                    "source",
                                    "modelId",
                                    "edgeBps",
                                    "quotes"
                                  ],
                                  "additionalProperties": false
                                },
                                "reviewPolicyVersion": {
                                  "type": "string",
                                  "minLength": 1
                                },
                                "voidPolicyVersion": {
                                  "type": "string",
                                  "minLength": 1
                                },
                                "promoCommitment": {
                                  "anyOf": [
                                    {
                                      "type": "string",
                                      "pattern": "^[0-9a-f]{64}$"
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "lightning": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "policyVersion": {
                                          "type": "string",
                                          "minLength": 1
                                        },
                                        "commitment": {
                                          "type": "string",
                                          "pattern": "^[0-9a-f]{64}$"
                                        },
                                        "boosts": {
                                          "type": "array",
                                          "items": {
                                            "type": "object",
                                            "properties": {
                                              "selection": {
                                                "type": "string",
                                                "enum": [
                                                  "UNDER",
                                                  "RANGE",
                                                  "OVER",
                                                  "EXACT",
                                                  "EXACT_LOW",
                                                  "EXACT_HIGH",
                                                  "LANE_A",
                                                  "LANE_B",
                                                  "TIE",
                                                  "CAR",
                                                  "HEAVY",
                                                  "MOTORCYCLE",
                                                  "NO_EVENT",
                                                  "ZERO",
                                                  "ONE",
                                                  "TWO_PLUS"
                                                ]
                                              },
                                              "tier": {
                                                "type": "string",
                                                "enum": [
                                                  "COMMON",
                                                  "RARE",
                                                  "EPIC",
                                                  "LEGENDARY"
                                                ]
                                              },
                                              "factor": {
                                                "type": "object",
                                                "properties": {
                                                  "numerator": {
                                                    "type": "string",
                                                    "maxLength": 30,
                                                    "pattern": "^[1-9][0-9]*$"
                                                  },
                                                  "denominator": {
                                                    "type": "string",
                                                    "maxLength": 30,
                                                    "pattern": "^[1-9][0-9]*$"
                                                  }
                                                },
                                                "required": [
                                                  "numerator",
                                                  "denominator"
                                                ],
                                                "additionalProperties": false
                                              }
                                            },
                                            "required": [
                                              "selection",
                                              "tier",
                                              "factor"
                                            ],
                                            "additionalProperties": false
                                          }
                                        }
                                      },
                                      "required": [
                                        "policyVersion",
                                        "commitment",
                                        "boosts"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "sourceClock": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "timestampKind": {
                                          "type": "string",
                                          "enum": [
                                            "CAPTURE",
                                            "PUBLISH",
                                            "INGEST",
                                            "SIMULATED_CAPTURE",
                                            "UNKNOWN"
                                          ]
                                        },
                                        "trust": {
                                          "type": "string",
                                          "enum": [
                                            "TRUSTED",
                                            "UNTRUSTED",
                                            "UNKNOWN"
                                          ]
                                        },
                                        "errorBoundMs": {
                                          "type": "integer",
                                          "minimum": 0,
                                          "maximum": 9007199254740991
                                        },
                                        "errorBoundMeasured": {
                                          "type": "boolean"
                                        },
                                        "monetaryEligible": {
                                          "type": "boolean"
                                        }
                                      },
                                      "required": [
                                        "timestampKind",
                                        "trust",
                                        "errorBoundMs",
                                        "errorBoundMeasured",
                                        "monetaryEligible"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "camera": {
                                  "anyOf": [
                                    {
                                      "type": "object",
                                      "properties": {
                                        "cameraId": {
                                          "type": "string"
                                        },
                                        "name": {
                                          "type": [
                                            "string",
                                            "null"
                                          ]
                                        },
                                        "provider": {
                                          "type": "string"
                                        },
                                        "countryCode": {
                                          "type": [
                                            "string",
                                            "null"
                                          ]
                                        },
                                        "country": {
                                          "type": [
                                            "string",
                                            "null"
                                          ]
                                        },
                                        "city": {
                                          "type": [
                                            "string",
                                            "null"
                                          ]
                                        },
                                        "road": {
                                          "type": [
                                            "string",
                                            "null"
                                          ]
                                        },
                                        "region": {
                                          "type": [
                                            "string",
                                            "null"
                                          ]
                                        },
                                        "district": {
                                          "type": [
                                            "string",
                                            "null"
                                          ]
                                        },
                                        "locationAttribution": {
                                          "type": [
                                            "string",
                                            "null"
                                          ]
                                        },
                                        "latitude": {
                                          "type": [
                                            "number",
                                            "null"
                                          ]
                                        },
                                        "longitude": {
                                          "type": [
                                            "number",
                                            "null"
                                          ]
                                        },
                                        "rightsStatus": {
                                          "type": "string"
                                        },
                                        "calibrationVersion": {
                                          "type": "integer",
                                          "minimum": -9007199254740991,
                                          "maximum": 9007199254740991
                                        },
                                        "calibrationStatus": {
                                          "type": "string",
                                          "enum": [
                                            "PROVISIONAL",
                                            "VALIDATED"
                                          ]
                                        }
                                      },
                                      "required": [
                                        "cameraId",
                                        "name",
                                        "provider",
                                        "countryCode",
                                        "country",
                                        "city",
                                        "road",
                                        "latitude",
                                        "longitude",
                                        "rightsStatus",
                                        "calibrationVersion",
                                        "calibrationStatus"
                                      ],
                                      "additionalProperties": false
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "manifestVersion",
                                "gameRoundId",
                                "gameId",
                                "rulesVersion",
                                "rulesHash",
                                "modelVersion",
                                "modelHash",
                                "configHash",
                                "cameraAlias",
                                "sourceMode",
                                "sourceEpoch",
                                "captureWindowPts",
                                "roi",
                                "line",
                                "includedClasses",
                                "timing",
                                "thresholds",
                                "rules",
                                "oddsVersion",
                                "odds",
                                "reviewPolicyVersion",
                                "voidPolicyVersion",
                                "promoCommitment",
                                "lightning"
                              ],
                              "additionalProperties": false
                            },
                            "manifestSignature": {
                              "type": "object",
                              "properties": {
                                "keyId": {
                                  "type": "string"
                                },
                                "algorithm": {
                                  "type": "string",
                                  "const": "Ed25519"
                                },
                                "signature": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "keyId",
                                "algorithm",
                                "signature"
                              ],
                              "additionalProperties": false
                            },
                            "manifestWitness": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "witness": {
                                      "type": "string"
                                    },
                                    "seq": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "subjectKind": {
                                      "type": "string",
                                      "enum": [
                                        "MANIFEST",
                                        "RESULT"
                                      ]
                                    },
                                    "subjectRef": {
                                      "type": "string"
                                    },
                                    "subjectHash": {
                                      "type": "string",
                                      "pattern": "^[0-9a-f]{64}$"
                                    },
                                    "receivedAt": {
                                      "type": "string",
                                      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                    },
                                    "prevReceiptHash": {
                                      "type": "string",
                                      "pattern": "^[0-9a-f]{64}$"
                                    },
                                    "receiptHash": {
                                      "type": "string",
                                      "pattern": "^[0-9a-f]{64}$"
                                    },
                                    "keyId": {
                                      "type": "string"
                                    },
                                    "signature": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "witness",
                                    "seq",
                                    "subjectKind",
                                    "subjectRef",
                                    "subjectHash",
                                    "receivedAt",
                                    "prevReceiptHash",
                                    "receiptHash",
                                    "keyId",
                                    "signature"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "resultRecord": {
                              "type": "object",
                              "properties": {
                                "recordVersion": {
                                  "type": "number",
                                  "const": 1
                                },
                                "gameRoundId": {
                                  "type": "string",
                                  "minLength": 1,
                                  "maxLength": 128
                                },
                                "manifestHash": {
                                  "type": "string",
                                  "pattern": "^[0-9a-f]{64}$"
                                },
                                "roundState": {
                                  "type": "string"
                                },
                                "finalCount": {
                                  "anyOf": [
                                    {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    {
                                      "type": "null"
                                    }
                                  ]
                                },
                                "winningSelections": {
                                  "type": "array",
                                  "items": {
                                    "type": "string"
                                  }
                                },
                                "eventCount": {
                                  "type": "integer",
                                  "minimum": 0,
                                  "maximum": 9007199254740991
                                },
                                "eventLogHash": {
                                  "type": "string",
                                  "pattern": "^[0-9a-f]{64}$"
                                },
                                "evidence": {
                                  "type": "object",
                                  "properties": {
                                    "status": {
                                      "type": "string",
                                      "enum": [
                                        "COMPLETE",
                                        "INSUFFICIENT",
                                        "SIMULATION_ONLY"
                                      ]
                                    },
                                    "sourceEpoch": {
                                      "type": [
                                        "string",
                                        "null"
                                      ]
                                    },
                                    "segmentCount": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "firstSeq": {
                                      "anyOf": [
                                        {
                                          "type": "integer",
                                          "minimum": -9007199254740991,
                                          "maximum": 9007199254740991
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "lastSeq": {
                                      "anyOf": [
                                        {
                                          "type": "integer",
                                          "minimum": -9007199254740991,
                                          "maximum": 9007199254740991
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "chainHead": {
                                      "anyOf": [
                                        {
                                          "type": "string",
                                          "pattern": "^[0-9a-f]{64}$"
                                        },
                                        {
                                          "type": "null"
                                        }
                                      ]
                                    },
                                    "problems": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    },
                                    "alarms": {
                                      "type": "array",
                                      "items": {
                                        "type": "string"
                                      }
                                    }
                                  },
                                  "required": [
                                    "status",
                                    "sourceEpoch",
                                    "segmentCount",
                                    "firstSeq",
                                    "lastSeq",
                                    "chainHead",
                                    "problems",
                                    "alarms"
                                  ],
                                  "additionalProperties": false
                                },
                                "reason": {
                                  "type": [
                                    "string",
                                    "null"
                                  ]
                                },
                                "decidedAt": {
                                  "type": "string",
                                  "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                }
                              },
                              "required": [
                                "recordVersion",
                                "gameRoundId",
                                "manifestHash",
                                "roundState",
                                "finalCount",
                                "winningSelections",
                                "eventCount",
                                "eventLogHash",
                                "evidence",
                                "reason",
                                "decidedAt"
                              ],
                              "additionalProperties": false
                            },
                            "resultHash": {
                              "type": "string",
                              "pattern": "^[0-9a-f]{64}$"
                            },
                            "resultSignature": {
                              "type": "object",
                              "properties": {
                                "keyId": {
                                  "type": "string"
                                },
                                "algorithm": {
                                  "type": "string",
                                  "const": "Ed25519"
                                },
                                "signature": {
                                  "type": "string"
                                }
                              },
                              "required": [
                                "keyId",
                                "algorithm",
                                "signature"
                              ],
                              "additionalProperties": false
                            },
                            "resultWitness": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "witness": {
                                      "type": "string"
                                    },
                                    "seq": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 9007199254740991
                                    },
                                    "subjectKind": {
                                      "type": "string",
                                      "enum": [
                                        "MANIFEST",
                                        "RESULT"
                                      ]
                                    },
                                    "subjectRef": {
                                      "type": "string"
                                    },
                                    "subjectHash": {
                                      "type": "string",
                                      "pattern": "^[0-9a-f]{64}$"
                                    },
                                    "receivedAt": {
                                      "type": "string",
                                      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                    },
                                    "prevReceiptHash": {
                                      "type": "string",
                                      "pattern": "^[0-9a-f]{64}$"
                                    },
                                    "receiptHash": {
                                      "type": "string",
                                      "pattern": "^[0-9a-f]{64}$"
                                    },
                                    "keyId": {
                                      "type": "string"
                                    },
                                    "signature": {
                                      "type": "string"
                                    }
                                  },
                                  "required": [
                                    "witness",
                                    "seq",
                                    "subjectKind",
                                    "subjectRef",
                                    "subjectHash",
                                    "receivedAt",
                                    "prevReceiptHash",
                                    "receiptHash",
                                    "keyId",
                                    "signature"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "segments": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "sourceEpoch": {
                                    "type": "string"
                                  },
                                  "seq": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "ptsStartMicros": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "ptsEndMicros": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "captureStart": {
                                    "type": "string",
                                    "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                  },
                                  "captureEnd": {
                                    "type": "string",
                                    "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                  },
                                  "timestampKind": {
                                    "type": "string"
                                  },
                                  "rawSha256": {
                                    "type": "string",
                                    "pattern": "^[0-9a-f]{64}$"
                                  },
                                  "redactedSha256": {
                                    "type": "string",
                                    "pattern": "^[0-9a-f]{64}$"
                                  },
                                  "transform": {
                                    "type": "string"
                                  },
                                  "prevChainHash": {
                                    "type": "string",
                                    "pattern": "^[0-9a-f]{64}$"
                                  },
                                  "chainHash": {
                                    "type": "string",
                                    "pattern": "^[0-9a-f]{64}$"
                                  },
                                  "rawAvailable": {
                                    "type": "boolean"
                                  },
                                  "redactedAvailable": {
                                    "type": "boolean"
                                  }
                                },
                                "required": [
                                  "sourceEpoch",
                                  "seq",
                                  "ptsStartMicros",
                                  "ptsEndMicros",
                                  "captureStart",
                                  "captureEnd",
                                  "timestampKind",
                                  "rawSha256",
                                  "redactedSha256",
                                  "transform",
                                  "prevChainHash",
                                  "chainHash",
                                  "rawAvailable",
                                  "redactedAvailable"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "keysUrl": {
                              "type": "string"
                            },
                            "witnessIndependent": {
                              "type": "boolean"
                            }
                          },
                          "required": [
                            "manifest",
                            "manifestSignature",
                            "manifestWitness",
                            "resultRecord",
                            "resultHash",
                            "resultSignature",
                            "resultWitness",
                            "segments",
                            "keysUrl",
                            "witnessIndependent"
                          ],
                          "additionalProperties": false
                        }
                      },
                      "required": [
                        "gameRoundId",
                        "manifestHash",
                        "mediaSegmentHashes",
                        "events",
                        "count",
                        "winningSelections",
                        "modelHash",
                        "mediaRef",
                        "roundState",
                        "configHash",
                        "status",
                        "evidenceVerified",
                        "countIndependentlyConfirmed",
                        "generatedAt",
                        "lightningReveal"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/bets/{betId}": {
      "get": {
        "summary": "PARTNER (signed, bets:read): bet by id (other tenants: 404)",
        "parameters": [
          {
            "name": "betId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "urSignature": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "betId": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 128
                    },
                    "commandId": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 128
                    },
                    "gameId": {
                      "type": "string",
                      "enum": [
                        "traffic-pulse",
                        "lane-duel",
                        "next-class",
                        "cycle-count",
                        "harbor-count"
                      ]
                    },
                    "gameRoundId": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 128
                    },
                    "partnerWalletRoundId": {
                      "anyOf": [
                        {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 128
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "selection": {
                      "type": "string",
                      "enum": [
                        "UNDER",
                        "RANGE",
                        "OVER",
                        "EXACT",
                        "EXACT_LOW",
                        "EXACT_HIGH",
                        "LANE_A",
                        "LANE_B",
                        "TIE",
                        "CAR",
                        "HEAVY",
                        "MOTORCYCLE",
                        "NO_EVENT",
                        "ZERO",
                        "ONE",
                        "TWO_PLUS"
                      ]
                    },
                    "stake": {
                      "type": "object",
                      "properties": {
                        "amountAtomic": {
                          "type": "string",
                          "maxLength": 40,
                          "pattern": "^(0|[1-9][0-9]*)$"
                        },
                        "currency": {
                          "type": "string",
                          "pattern": "^[A-Z0-9]{2,12}$"
                        },
                        "scale": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 18
                        }
                      },
                      "required": [
                        "amountAtomic",
                        "currency",
                        "scale"
                      ],
                      "additionalProperties": false
                    },
                    "funding": {
                      "type": "string",
                      "enum": [
                        "CASH",
                        "FREEBET"
                      ]
                    },
                    "cashDebit": {
                      "type": "object",
                      "properties": {
                        "amountAtomic": {
                          "type": "string",
                          "maxLength": 40,
                          "pattern": "^(0|[1-9][0-9]*)$"
                        },
                        "currency": {
                          "type": "string",
                          "pattern": "^[A-Z0-9]{2,12}$"
                        },
                        "scale": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 18
                        }
                      },
                      "required": [
                        "amountAtomic",
                        "currency",
                        "scale"
                      ],
                      "additionalProperties": false
                    },
                    "rewardId": {
                      "anyOf": [
                        {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 128
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "quote": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "gameRoundId": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 128
                            },
                            "selection": {
                              "type": "string",
                              "enum": [
                                "UNDER",
                                "RANGE",
                                "OVER",
                                "EXACT",
                                "EXACT_LOW",
                                "EXACT_HIGH",
                                "LANE_A",
                                "LANE_B",
                                "TIE",
                                "CAR",
                                "HEAVY",
                                "MOTORCYCLE",
                                "NO_EVENT",
                                "ZERO",
                                "ONE",
                                "TWO_PLUS"
                              ]
                            },
                            "odds": {
                              "type": "object",
                              "properties": {
                                "numerator": {
                                  "type": "string",
                                  "maxLength": 30,
                                  "pattern": "^[1-9][0-9]*$"
                                },
                                "denominator": {
                                  "type": "string",
                                  "maxLength": 30,
                                  "pattern": "^[1-9][0-9]*$"
                                }
                              },
                              "required": [
                                "numerator",
                                "denominator"
                              ],
                              "additionalProperties": false
                            },
                            "oddsVersion": {
                              "type": "string",
                              "minLength": 1
                            },
                            "lightning": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "numerator": {
                                      "type": "string",
                                      "maxLength": 30,
                                      "pattern": "^[1-9][0-9]*$"
                                    },
                                    "denominator": {
                                      "type": "string",
                                      "maxLength": 30,
                                      "pattern": "^[1-9][0-9]*$"
                                    }
                                  },
                                  "required": [
                                    "numerator",
                                    "denominator"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "lightningTier": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "enum": [
                                    "COMMON",
                                    "RARE",
                                    "EPIC",
                                    "LEGENDARY"
                                  ]
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "boostBps": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "payoutCap": {
                              "anyOf": [
                                {
                                  "type": "object",
                                  "properties": {
                                    "amountAtomic": {
                                      "type": "string",
                                      "maxLength": 40,
                                      "pattern": "^(0|[1-9][0-9]*)$"
                                    },
                                    "currency": {
                                      "type": "string",
                                      "pattern": "^[A-Z0-9]{2,12}$"
                                    },
                                    "scale": {
                                      "type": "integer",
                                      "minimum": 0,
                                      "maximum": 18
                                    }
                                  },
                                  "required": [
                                    "amountAtomic",
                                    "currency",
                                    "scale"
                                  ],
                                  "additionalProperties": false
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "promoPolicyVersion": {
                              "type": "string",
                              "minLength": 1
                            },
                            "freebetPolicy": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "enum": [
                                    "STAKE_INCLUDED",
                                    "PROFIT_ONLY"
                                  ]
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "quotedAt": {
                              "type": "string",
                              "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                            }
                          },
                          "required": [
                            "gameRoundId",
                            "selection",
                            "odds",
                            "oddsVersion",
                            "lightning",
                            "lightningTier",
                            "boostBps",
                            "payoutCap",
                            "promoPolicyVersion",
                            "freebetPolicy",
                            "quotedAt"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "state": {
                      "type": "string",
                      "enum": [
                        "SUBMITTED",
                        "DEBIT_PENDING",
                        "ACCEPTED",
                        "REJECTED",
                        "COMPENSATION_PENDING",
                        "COMPENSATED",
                        "RESULT_WON",
                        "RESULT_LOST",
                        "CREDIT_PENDING",
                        "SETTLED",
                        "REFUND_PENDING",
                        "VOIDED"
                      ]
                    },
                    "rejectReason": {
                      "anyOf": [
                        {
                          "type": "string",
                          "enum": [
                            "BETTING_CLOSED",
                            "INSUFFICIENT_FUNDS",
                            "SESSION_EXPIRED",
                            "INVALID_STAKE",
                            "CURRENCY_MISMATCH",
                            "QUOTE_CHANGED",
                            "LIABILITY_LIMIT",
                            "SOURCE_UNAVAILABLE",
                            "IDEMPOTENCY_CONFLICT",
                            "DEBIT_UNRESOLVED_AT_CLOSE",
                            "STAKE_LIMIT",
                            "REWARD_UNAVAILABLE",
                            "PROMO_NOT_STACKABLE",
                            "WALLET_UNAVAILABLE"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "payoutGross": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "amountAtomic": {
                              "type": "string",
                              "maxLength": 40,
                              "pattern": "^(0|[1-9][0-9]*)$"
                            },
                            "currency": {
                              "type": "string",
                              "pattern": "^[A-Z0-9]{2,12}$"
                            },
                            "scale": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 18
                            }
                          },
                          "required": [
                            "amountAtomic",
                            "currency",
                            "scale"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "payoutNet": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "amountAtomic": {
                              "type": "string",
                              "maxLength": 41,
                              "pattern": "^(0|-?[1-9][0-9]*)$"
                            },
                            "currency": {
                              "type": "string",
                              "pattern": "^[A-Z0-9]{2,12}$"
                            },
                            "scale": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 18
                            }
                          },
                          "required": [
                            "amountAtomic",
                            "currency",
                            "scale"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "submittedAt": {
                      "type": "string",
                      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                    },
                    "updatedAt": {
                      "type": "string",
                      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                    }
                  },
                  "required": [
                    "betId",
                    "commandId",
                    "gameId",
                    "gameRoundId",
                    "partnerWalletRoundId",
                    "selection",
                    "stake",
                    "funding",
                    "cashDebit",
                    "rewardId",
                    "quote",
                    "state",
                    "rejectReason",
                    "payoutGross",
                    "payoutNet",
                    "submittedAt",
                    "updatedAt"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/admin/login": {
      "post": {
        "summary": "Admin sign-in: SSO adapter identity + TOTP",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "token": {
                      "type": "string"
                    },
                    "user": {
                      "type": "string"
                    },
                    "sso": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "token",
                    "user",
                    "sso"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "userId": {
                    "type": "string"
                  },
                  "totp": {
                    "type": "string"
                  }
                },
                "required": [
                  "userId",
                  "totp"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/v1/admin/games/{gameId}/pause": {
      "post": {
        "summary": "Stop/allow opening NEW rounds (audited, reason required)",
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "message"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "paused": {
                    "type": "boolean"
                  },
                  "reason": {
                    "type": "string",
                    "minLength": 10
                  }
                },
                "required": [
                  "paused",
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/v1/admin/change-requests": {
      "post": {
        "summary": "Maker: request a review decision, config change or key rotation",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "requestId": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "requestId",
                    "status"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "kind": {
                    "type": "string",
                    "enum": [
                      "REVIEW_DECISION",
                      "CONFIG_CHANGE",
                      "KEY_ROTATION"
                    ]
                  },
                  "target": {
                    "type": "string"
                  },
                  "summary": {
                    "type": "string"
                  },
                  "payload": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string"
                    },
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  "reason": {
                    "type": "string",
                    "minLength": 10
                  }
                },
                "required": [
                  "kind",
                  "target",
                  "summary",
                  "payload",
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/v1/admin/change-requests/{requestId}/decision": {
      "post": {
        "summary": "Checker: approve/reject (different user, approve permission, reason)",
        "parameters": [
          {
            "name": "requestId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "requestId": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string"
                    },
                    "result": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  },
                  "required": [
                    "requestId",
                    "status",
                    "result"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$schema": "https://json-schema.org/draft/2020-12/schema",
                "type": "object",
                "properties": {
                  "approve": {
                    "type": "boolean"
                  },
                  "reason": {
                    "type": "string",
                    "minLength": 10
                  }
                },
                "required": [
                  "approve",
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        }
      }
    },
    "/v1/time": {
      "get": {
        "summary": "Server time for display (betting windows use the database clock)",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "serverTime": {
                      "type": "string"
                    },
                    "uncertaintyMs": {
                      "type": "number"
                    },
                    "note": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "serverTime",
                    "uncertaintyMs",
                    "note"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/player/rewards": {
      "get": {
        "summary": "Inventory, level, check-in, feature flags and the promo policies in force",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "promotionId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 128
                          },
                          "kind": {
                            "type": "string",
                            "enum": [
                              "FREEBET",
                              "BOOST"
                            ]
                          },
                          "state": {
                            "type": "string",
                            "enum": [
                              "GRANTED",
                              "RESERVED",
                              "CONSUMED",
                              "CANCELLED",
                              "EXPIRED"
                            ]
                          },
                          "origin": {
                            "type": "string",
                            "enum": [
                              "OPERATOR_GRANT",
                              "DAILY_CHECKIN",
                              "LEVEL_UP",
                              "LEADERBOARD",
                              "DROP",
                              "CAMPAIGN"
                            ]
                          },
                          "grantKey": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 128
                          },
                          "policyVersion": {
                            "type": "string",
                            "minLength": 1
                          },
                          "faceValue": {
                            "anyOf": [
                              {
                                "type": "object",
                                "properties": {
                                  "amountAtomic": {
                                    "type": "string",
                                    "maxLength": 40,
                                    "pattern": "^(0|[1-9][0-9]*)$"
                                  },
                                  "currency": {
                                    "type": "string",
                                    "pattern": "^[A-Z0-9]{2,12}$"
                                  },
                                  "scale": {
                                    "type": "integer",
                                    "minimum": 0,
                                    "maximum": 18
                                  }
                                },
                                "required": [
                                  "amountAtomic",
                                  "currency",
                                  "scale"
                                ],
                                "additionalProperties": false
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "freebetPolicy": {
                            "anyOf": [
                              {
                                "type": "string",
                                "enum": [
                                  "STAKE_INCLUDED",
                                  "PROFIT_ONLY"
                                ]
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "boostBps": {
                            "anyOf": [
                              {
                                "type": "integer",
                                "exclusiveMinimum": 0,
                                "maximum": 9007199254740991
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "games": {
                            "minItems": 1,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "traffic-pulse",
                                "lane-duel",
                                "next-class",
                                "cycle-count",
                                "harbor-count"
                              ]
                            }
                          },
                          "currency": {
                            "type": "string",
                            "pattern": "^[A-Z0-9]{2,12}$"
                          },
                          "grantedAt": {
                            "type": "string",
                            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                          },
                          "expiresAt": {
                            "anyOf": [
                              {
                                "type": "string",
                                "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "betId": {
                            "anyOf": [
                              {
                                "type": "string",
                                "minLength": 1,
                                "maxLength": 128
                              },
                              {
                                "type": "null"
                              }
                            ]
                          },
                          "realMoneyEnabled": {
                            "type": "boolean",
                            "const": false
                          }
                        },
                        "required": [
                          "promotionId",
                          "kind",
                          "state",
                          "origin",
                          "grantKey",
                          "policyVersion",
                          "faceValue",
                          "freebetPolicy",
                          "boostBps",
                          "games",
                          "currency",
                          "grantedAt",
                          "expiresAt",
                          "betId",
                          "realMoneyEnabled"
                        ],
                        "additionalProperties": false
                      }
                    },
                    "level": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "level": {
                              "type": "integer",
                              "exclusiveMinimum": 0,
                              "maximum": 9007199254740991
                            },
                            "xp": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "xpForNext": {
                              "type": "integer",
                              "exclusiveMinimum": 0,
                              "maximum": 9007199254740991
                            },
                            "policyVersion": {
                              "type": "string",
                              "minLength": 1
                            }
                          },
                          "required": [
                            "level",
                            "xp",
                            "xpForNext",
                            "policyVersion"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "checkin": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "lastClaimDay": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            },
                            "streakDays": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 9007199254740991
                            },
                            "canClaim": {
                              "type": "boolean"
                            },
                            "nextClaimAt": {
                              "anyOf": [
                                {
                                  "type": "string",
                                  "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                                },
                                {
                                  "type": "null"
                                }
                              ]
                            }
                          },
                          "required": [
                            "lastClaimDay",
                            "streakDays",
                            "canClaim",
                            "nextClaimAt"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "flags": {
                      "type": "object",
                      "properties": {
                        "inventory": {
                          "type": "boolean"
                        },
                        "freebets": {
                          "type": "boolean"
                        },
                        "boosts": {
                          "type": "boolean"
                        },
                        "lightning": {
                          "type": "boolean"
                        },
                        "level": {
                          "type": "boolean"
                        },
                        "dailyCheckin": {
                          "type": "boolean"
                        },
                        "streak": {
                          "type": "boolean"
                        },
                        "comeback": {
                          "type": "boolean"
                        },
                        "realMoney": {
                          "type": "boolean",
                          "const": false
                        }
                      },
                      "required": [
                        "inventory",
                        "freebets",
                        "boosts",
                        "lightning",
                        "level",
                        "dailyCheckin",
                        "streak",
                        "comeback",
                        "realMoney"
                      ],
                      "additionalProperties": false
                    },
                    "promoPolicy": {
                      "type": "object",
                      "properties": {
                        "policyVersion": {
                          "type": "string",
                          "minLength": 1
                        },
                        "formula": {
                          "type": "string",
                          "const": "floor(stake*oN*lN*(10000+bps)/(oD*lD*10000)); min(gross,cap)"
                        },
                        "payoutCap": {
                          "type": "object",
                          "properties": {
                            "amountAtomic": {
                              "type": "string",
                              "maxLength": 40,
                              "pattern": "^(0|[1-9][0-9]*)$"
                            },
                            "currency": {
                              "type": "string",
                              "pattern": "^[A-Z0-9]{2,12}$"
                            },
                            "scale": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 18
                            }
                          },
                          "required": [
                            "amountAtomic",
                            "currency",
                            "scale"
                          ],
                          "additionalProperties": false
                        },
                        "maxBoostBpsPerBet": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "maxRewardsPerBet": {
                          "type": "integer",
                          "minimum": 0,
                          "maximum": 9007199254740991
                        },
                        "freebetWithLightning": {
                          "type": "boolean"
                        },
                        "boostWithLightning": {
                          "type": "boolean"
                        },
                        "voidPolicy": {
                          "type": "string",
                          "enum": [
                            "RESTORE_IF_NOT_EXPIRED"
                          ]
                        },
                        "realMoneyEnabled": {
                          "type": "boolean",
                          "const": false
                        }
                      },
                      "required": [
                        "policyVersion",
                        "formula",
                        "payoutCap",
                        "maxBoostBpsPerBet",
                        "maxRewardsPerBet",
                        "freebetWithLightning",
                        "boostWithLightning",
                        "voidPolicy",
                        "realMoneyEnabled"
                      ],
                      "additionalProperties": false
                    },
                    "lightningPolicy": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "policyVersion": {
                              "type": "string",
                              "minLength": 1
                            },
                            "tiers": {
                              "minItems": 1,
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "tier": {
                                    "type": "string",
                                    "enum": [
                                      "COMMON",
                                      "RARE",
                                      "EPIC",
                                      "LEGENDARY"
                                    ]
                                  },
                                  "weight": {
                                    "type": "integer",
                                    "exclusiveMinimum": 0,
                                    "maximum": 9007199254740991
                                  },
                                  "factor": {
                                    "type": "object",
                                    "properties": {
                                      "numerator": {
                                        "type": "string",
                                        "maxLength": 30,
                                        "pattern": "^[1-9][0-9]*$"
                                      },
                                      "denominator": {
                                        "type": "string",
                                        "maxLength": 30,
                                        "pattern": "^[1-9][0-9]*$"
                                      }
                                    },
                                    "required": [
                                      "numerator",
                                      "denominator"
                                    ],
                                    "additionalProperties": false
                                  }
                                },
                                "required": [
                                  "tier",
                                  "weight",
                                  "factor"
                                ],
                                "additionalProperties": false
                              }
                            },
                            "eligibleMarkets": {
                              "minItems": 1,
                              "type": "array",
                              "items": {
                                "type": "string",
                                "enum": [
                                  "MAIN",
                                  "EXACT_SIDE"
                                ]
                              }
                            },
                            "selectionsPerRound": {
                              "type": "integer",
                              "exclusiveMinimum": 0,
                              "maximum": 9007199254740991
                            }
                          },
                          "required": [
                            "policyVersion",
                            "tiers",
                            "eligibleMarkets",
                            "selectionsPerRound"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "items",
                    "level",
                    "checkin",
                    "flags",
                    "promoPolicy",
                    "lightningPolicy"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/player/checkins": {
      "post": {
        "summary": "Daily check-in (idempotent per UTC day)",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "lastClaimDay": {
                      "anyOf": [
                        {
                          "type": "string",
                          "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "streakDays": {
                      "type": "integer",
                      "minimum": 0,
                      "maximum": 9007199254740991
                    },
                    "canClaim": {
                      "type": "boolean"
                    },
                    "nextClaimAt": {
                      "anyOf": [
                        {
                          "type": "string",
                          "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "lastClaimDay",
                    "streakDays",
                    "canClaim",
                    "nextClaimAt"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/player/fx-quotes": {
      "get": {
        "summary": "Display-only FX quotes (settlement is always the wallet currency)",
        "parameters": [],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "quotes": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "rateId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64
                          },
                          "provider": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64
                          },
                          "base": {
                            "type": "string",
                            "pattern": "^[A-Z0-9]{2,12}$"
                          },
                          "quote": {
                            "type": "string",
                            "pattern": "^[A-Z0-9]{2,12}$"
                          },
                          "rate": {
                            "type": "object",
                            "properties": {
                              "numerator": {
                                "type": "string",
                                "maxLength": 30,
                                "pattern": "^[1-9][0-9]*$"
                              },
                              "denominator": {
                                "type": "string",
                                "maxLength": 30,
                                "pattern": "^[1-9][0-9]*$"
                              }
                            },
                            "required": [
                              "numerator",
                              "denominator"
                            ],
                            "additionalProperties": false
                          },
                          "asOf": {
                            "type": "string",
                            "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                          },
                          "ttlMs": {
                            "type": "integer",
                            "exclusiveMinimum": 0,
                            "maximum": 9007199254740991
                          },
                          "exampleOnly": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "rateId",
                          "provider",
                          "base",
                          "quote",
                          "rate",
                          "asOf",
                          "ttlMs",
                          "exampleOnly"
                        ],
                        "additionalProperties": false
                      }
                    }
                  },
                  "required": [
                    "quotes"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    },
    "/v1/rewards/{promotionId}/cancel": {
      "post": {
        "summary": "PARTNER (signed, rewards:write): cancel an unused reward (idempotent)",
        "parameters": [
          {
            "name": "promotionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "security": [
          {
            "urSignature": []
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "promotionId": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 128
                    },
                    "kind": {
                      "type": "string",
                      "enum": [
                        "FREEBET",
                        "BOOST"
                      ]
                    },
                    "state": {
                      "type": "string",
                      "enum": [
                        "GRANTED",
                        "RESERVED",
                        "CONSUMED",
                        "CANCELLED",
                        "EXPIRED"
                      ]
                    },
                    "origin": {
                      "type": "string",
                      "enum": [
                        "OPERATOR_GRANT",
                        "DAILY_CHECKIN",
                        "LEVEL_UP",
                        "LEADERBOARD",
                        "DROP",
                        "CAMPAIGN"
                      ]
                    },
                    "grantKey": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 128
                    },
                    "policyVersion": {
                      "type": "string",
                      "minLength": 1
                    },
                    "faceValue": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "amountAtomic": {
                              "type": "string",
                              "maxLength": 40,
                              "pattern": "^(0|[1-9][0-9]*)$"
                            },
                            "currency": {
                              "type": "string",
                              "pattern": "^[A-Z0-9]{2,12}$"
                            },
                            "scale": {
                              "type": "integer",
                              "minimum": 0,
                              "maximum": 18
                            }
                          },
                          "required": [
                            "amountAtomic",
                            "currency",
                            "scale"
                          ],
                          "additionalProperties": false
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "freebetPolicy": {
                      "anyOf": [
                        {
                          "type": "string",
                          "enum": [
                            "STAKE_INCLUDED",
                            "PROFIT_ONLY"
                          ]
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "boostBps": {
                      "anyOf": [
                        {
                          "type": "integer",
                          "exclusiveMinimum": 0,
                          "maximum": 9007199254740991
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "games": {
                      "minItems": 1,
                      "type": "array",
                      "items": {
                        "type": "string",
                        "enum": [
                          "traffic-pulse",
                          "lane-duel",
                          "next-class",
                          "cycle-count",
                          "harbor-count"
                        ]
                      }
                    },
                    "currency": {
                      "type": "string",
                      "pattern": "^[A-Z0-9]{2,12}$"
                    },
                    "grantedAt": {
                      "type": "string",
                      "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                    },
                    "expiresAt": {
                      "anyOf": [
                        {
                          "type": "string",
                          "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{3}Z$"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "betId": {
                      "anyOf": [
                        {
                          "type": "string",
                          "minLength": 1,
                          "maxLength": 128
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "realMoneyEnabled": {
                      "type": "boolean",
                      "const": false
                    }
                  },
                  "required": [
                    "promotionId",
                    "kind",
                    "state",
                    "origin",
                    "grantKey",
                    "policyVersion",
                    "faceValue",
                    "freebetPolicy",
                    "boostBps",
                    "games",
                    "currency",
                    "grantedAt",
                    "expiresAt",
                    "betId",
                    "realMoneyEnabled"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "default": {
            "description": "Error",
            "content": {
              "application/json": {
                "schema": {
                  "$schema": "https://json-schema.org/draft/2020-12/schema",
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "message": {
                      "type": "string",
                      "maxLength": 1024
                    },
                    "correlationId": {
                      "type": "string",
                      "maxLength": 128
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "correlationId"
                  ],
                  "additionalProperties": false
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "urSignature": {
        "type": "apiKey",
        "in": "header",
        "name": "x-ur-signature",
        "description": "Ed25519 over the canonical request (UR1-ED25519-REQUEST); also x-ur-key-id, x-ur-timestamp (ms, ±60 s), x-ur-nonce (single use). See docs/PARTNER-API.md."
      }
    }
  },
  "x-error-codes": {
    "BAD_REQUEST": {
      "status": 400,
      "retry": "NO",
      "meaning": "Body/query does not match the schema (unknown fields are rejected)."
    },
    "SIGNATURE_MISSING": {
      "status": 401,
      "retry": "AFTER_FIX",
      "meaning": "x-ur-key-id, x-ur-timestamp, x-ur-nonce and x-ur-signature are required."
    },
    "NONCE_INVALID": {
      "status": 401,
      "retry": "AFTER_FIX",
      "meaning": "Nonce must be 16–64 characters [A-Za-z0-9_-]."
    },
    "TIMESTAMP_SKEW": {
      "status": 401,
      "retry": "AFTER_FIX",
      "meaning": "Timestamp more than 60 s from our clock; fix your clock (NTP)."
    },
    "KEY_UNKNOWN": {
      "status": 401,
      "retry": "AFTER_FIX",
      "meaning": "Unknown key id."
    },
    "KEY_REVOKED": {
      "status": 401,
      "retry": "AFTER_FIX",
      "meaning": "Key revoked; use your current key."
    },
    "KEY_EXPIRED": {
      "status": 401,
      "retry": "AFTER_FIX",
      "meaning": "Key expired (rotation overlap ended)."
    },
    "SIGNATURE_INVALID": {
      "status": 401,
      "retry": "AFTER_FIX",
      "meaning": "Signature does not match the canonical request."
    },
    "NONCE_REPLAY": {
      "status": 401,
      "retry": "SAFE",
      "meaning": "Nonce already used: resend with a new nonce (business ids unchanged)."
    },
    "IP_NOT_ALLOWED": {
      "status": 403,
      "retry": "AFTER_FIX",
      "meaning": "Source address outside the key allowlist."
    },
    "SCOPE_MISSING": {
      "status": 403,
      "retry": "AFTER_FIX",
      "meaning": "Key lacks the scope for this route."
    },
    "NOT_FOUND": {
      "status": 404,
      "retry": "NO",
      "meaning": "Not found in your tenant (other tenants’ ids are indistinguishable from unknown ids)."
    },
    "GAME_NOT_ENTITLED": {
      "status": 403,
      "retry": "NO",
      "meaning": "Brand is not entitled to this game."
    },
    "OPERATOR_SUSPENDED": {
      "status": 403,
      "retry": "AFTER_FIX",
      "meaning": "Operator is suspended by UrbanRats; launches are refused until it is reactivated."
    },
    "DEMO_PLAYER_RESERVED": {
      "status": 400,
      "retry": "NO",
      "meaning": "Player ids starting with demo: are reserved for demo sessions (POST /v1/demo-sessions)."
    },
    "NAVIGATION_URL_INVALID": {
      "status": 400,
      "retry": "NO",
      "meaning": "lobbyUrl, depositUrl and returnUrl must be absolute https URLs without credentials."
    },
    "GAME_RETIRED": {
      "status": 403,
      "retry": "NO",
      "meaning": "The game is no longer offered; use the catalogue (GET /v1/games)."
    },
    "CURRENCY_REQUIRED": {
      "status": 400,
      "retry": "AFTER_FIX",
      "meaning": "Aggregators: send currency (the site or the template allows several wallet currencies)."
    },
    "CURRENCY_NOT_ALLOWED": {
      "status": 409,
      "retry": "NO",
      "meaning": "Aggregators: the wallet currency is not enabled in your aggregator template."
    },
    "SITE_LIMIT": {
      "status": 403,
      "retry": "AFTER_FIX",
      "meaning": "Aggregators: the agreed maximum number of sites is reached; ask UrbanRats to raise it."
    },
    "BRAND_SUSPENDED": {
      "status": 403,
      "retry": "AFTER_FIX",
      "meaning": "Brand (site) is suspended; launches are refused until it is reactivated."
    },
    "COUNTRY_NOT_ALLOWED": {
      "status": 403,
      "retry": "NO",
      "meaning": "Declared country not allowed for this brand/game."
    },
    "REAL_MONEY_UNAVAILABLE": {
      "status": 503,
      "retry": "AFTER_FIX",
      "meaning": "The site is in real-money mode but your seamless wallet is not connected; real-money launches resume when it is."
    },
    "CURRENCY_MISMATCH": {
      "status": 409,
      "retry": "NO",
      "meaning": "Asserted currency differs from the brand wallet currency."
    },
    "DISPLAY_CURRENCY_NOT_ALLOWED": {
      "status": 400,
      "retry": "NO",
      "meaning": "Display currency not enabled for the brand."
    },
    "ORIGIN_NOT_ALLOWED": {
      "status": 400,
      "retry": "NO",
      "meaning": "Embed origin not in the brand allowlist."
    },
    "IDEMPOTENCY_CONFLICT": {
      "status": 409,
      "retry": "NO",
      "meaning": "Same idempotency id reused with a different payload."
    },
    "REWARD_NOT_CANCELLABLE": {
      "status": 409,
      "retry": "NO",
      "meaning": "Reward already reserved/consumed/expired."
    },
    "CALLBACK_HOST_NOT_REGISTERED": {
      "status": 400,
      "retry": "AFTER_FIX",
      "meaning": "Callback host is not registered for your operator."
    },
    "CALLBACK_URL_REJECTED": {
      "status": 400,
      "retry": "AFTER_FIX",
      "meaning": "Callback URL scheme/credentials/address not allowed (https, public address, no redirects)."
    },
    "RATE_LIMITED": {
      "status": 429,
      "retry": "SAFE",
      "meaning": "Slow down; retry with backoff."
    }
  }
}
