{
  "components": {
    "schemas": {
      "AIAnalysisDBInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/AIAnalysisDBInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "eventId": {}
        },
        "required": [
          "eventId"
        ],
        "type": "object"
      },
      "AIAnalysisInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/AIAnalysisInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "action": {
            "type": "string"
          },
          "awayTeamName": {
            "type": "string"
          },
          "eventId": {},
          "homeTeamName": {
            "type": "string"
          },
          "matchDate": {
            "type": "string"
          },
          "tournamentName": {
            "type": "string"
          }
        },
        "required": [
          "action",
          "eventId",
          "homeTeamName",
          "awayTeamName",
          "tournamentName",
          "matchDate"
        ],
        "type": "object"
      },
      "ActivityInfo": {
        "additionalProperties": false,
        "properties": {
          "lastGameWithTeam": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "startedLastGame": {
            "type": "boolean"
          }
        },
        "required": [
          "startedLastGame",
          "lastGameWithTeam"
        ],
        "type": "object"
      },
      "AdminBotRoutingGetOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/AdminBotRoutingGetOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "superadmin_default_target": {
            "type": "string"
          },
          "workers_force_prod": {
            "type": "boolean"
          }
        },
        "required": [
          "superadmin_default_target",
          "workers_force_prod"
        ],
        "type": "object"
      },
      "AdminBotRoutingPutInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/AdminBotRoutingPutInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "superadmin_default_target": {
            "type": [
              "string",
              "null"
            ]
          },
          "workers_force_prod": {
            "type": [
              "boolean",
              "null"
            ]
          }
        },
        "required": [
          "superadmin_default_target",
          "workers_force_prod"
        ],
        "type": "object"
      },
      "AdminBotRoutingPutOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/AdminBotRoutingPutOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "superadmin_default_target": {
            "type": "string"
          },
          "updated": {
            "type": "boolean"
          },
          "workers_force_prod": {
            "type": "boolean"
          }
        },
        "required": [
          "superadmin_default_target",
          "updated",
          "workers_force_prod"
        ],
        "type": "object"
      },
      "AdminPlayerAssignmentsReconcileInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/AdminPlayerAssignmentsReconcileInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "options": {
            "$ref": "#/components/schemas/OptionsStruct"
          },
          "playerIds": {
            "items": {
              "format": "double",
              "type": "number"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "teamId": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "tournamentId": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "playerIds",
          "teamId",
          "tournamentId",
          "options"
        ],
        "type": "object"
      },
      "AdminPlayerAssignmentsReconcileOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/AdminPlayerAssignmentsReconcileOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "batchSize": {
            "format": "int64",
            "type": "integer"
          },
          "batchesQueued": {
            "format": "int64",
            "type": "integer"
          },
          "dryRun": {
            "type": "boolean"
          },
          "errors": {},
          "messageIds": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "success": {
            "type": "boolean"
          },
          "totalPlayers": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "success",
          "totalPlayers"
        ],
        "type": "object"
      },
      "AdminSendCustomMessageInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/AdminSendCustomMessageInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "message": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "message"
        ],
        "type": "object"
      },
      "AdminSendCustomMessageOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/AdminSendCustomMessageOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "subscriberCount": {
            "format": "int64",
            "type": "integer"
          },
          "success": {
            "type": "boolean"
          }
        },
        "required": [
          "message",
          "subscriberCount",
          "success"
        ],
        "type": "object"
      },
      "AwayTeamStruct": {
        "additionalProperties": false,
        "properties": {
          "id": {},
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "slug"
        ],
        "type": "object"
      },
      "BasketballBoxScore": {
        "additionalProperties": false,
        "properties": {
          "assists": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "blocks": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "blocksReceived": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "defensiveRebounds": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "effectiveFieldGoalPercentage": {
            "type": [
              "string",
              "null"
            ]
          },
          "efficiencyRating": {
            "type": [
              "string",
              "null"
            ]
          },
          "eventId": {
            "format": "int64",
            "type": "integer"
          },
          "fantasyScore": {
            "format": "double",
            "type": "number"
          },
          "fieldGoalsMade": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "flagrantFouls": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "fouledOut": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "foulsDrawn": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "freeThrowsMade": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "minutesPlayed": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "offensiveRebounds": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "personalFouls": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "playerId": {
            "format": "int64",
            "type": "integer"
          },
          "plusMinus": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "points": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "pointsAssists": {
            "format": "int64",
            "type": "integer"
          },
          "pointsRebounds": {
            "format": "int64",
            "type": "integer"
          },
          "pointsReboundsAssists": {
            "format": "int64",
            "type": "integer"
          },
          "position": {
            "type": [
              "string",
              "null"
            ]
          },
          "reboundsAssists": {
            "format": "int64",
            "type": "integer"
          },
          "steals": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "stealsBlocks": {
            "format": "int64",
            "type": "integer"
          },
          "teamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "technicalFouls": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "threePointersMade": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "totalRebounds": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "trueShootingPercentage": {
            "type": [
              "string",
              "null"
            ]
          },
          "turnovers": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "usage": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "eventId",
          "playerId",
          "teamId",
          "minutesPlayed",
          "points",
          "fieldGoalsMade",
          "threePointersMade",
          "freeThrowsMade",
          "offensiveRebounds",
          "defensiveRebounds",
          "totalRebounds",
          "assists",
          "steals",
          "blocks",
          "turnovers",
          "personalFouls",
          "plusMinus",
          "efficiencyRating",
          "effectiveFieldGoalPercentage",
          "trueShootingPercentage",
          "usage",
          "blocksReceived",
          "foulsDrawn",
          "technicalFouls",
          "flagrantFouls",
          "fouledOut",
          "position",
          "pointsReboundsAssists",
          "pointsAssists",
          "pointsRebounds",
          "reboundsAssists",
          "stealsBlocks",
          "fantasyScore"
        ],
        "type": "object"
      },
      "BasketballEventPlayerOddsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/BasketballEventPlayerOddsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "BasketballEventsByDateOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/BasketballEventsByDateOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "BasketballPlayerAllOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/BasketballPlayerAllOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "BasketballPlayerDetailOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/BasketballPlayerDetailOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "contentEncoding": "base64",
            "type": "string"
          },
          "nextEvent": {}
        },
        "required": [
          "data",
          "nextEvent"
        ],
        "type": "object"
      },
      "BasketballPlayerLine": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "position": {
            "type": [
              "string",
              "null"
            ]
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          },
          "stats": {
            "additionalProperties": {
              "$ref": "#/components/schemas/BasketballBoxScore"
            },
            "type": "object"
          }
        },
        "required": [
          "id",
          "slug",
          "name",
          "position",
          "stats"
        ],
        "type": "object"
      },
      "BasketballPlayerPerformanceOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/BasketballPlayerPerformanceOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "BasketballSearchOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/BasketballSearchOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "fixtures": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "players": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "teams": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "fixtures",
          "players",
          "teams"
        ],
        "type": "object"
      },
      "BasketballTeamDetailOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/BasketballTeamDetailOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {}
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "BasketballTeamPerformanceOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/BasketballTeamPerformanceOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "BasketballTeamPlayersPerformanceOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/BasketballTeamPlayersPerformanceOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "currentFixturePlayerStats": {
            "items": {
              "format": "int64",
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/BasketballPlayerLine"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "events": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "currentFixturePlayerStats",
          "data",
          "events"
        ],
        "type": "object"
      },
      "BasketballTeamSummary": {
        "additionalProperties": false,
        "properties": {
          "countrySlug": {
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "shortname": {
            "type": [
              "string",
              "null"
            ]
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "slug",
          "shortname",
          "countrySlug"
        ],
        "type": "object"
      },
      "BasketballTeamUpcomingEventsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/BasketballTeamUpcomingEventsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pagination": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "type": "object"
      },
      "BasketballTournamentEventsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/BasketballTournamentEventsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "BasketballTournamentGroup": {
        "additionalProperties": false,
        "properties": {
          "country": {
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "isFavorite": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "shouldShow": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          },
          "uniqueTournamentId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "slug",
          "uniqueTournamentId",
          "country",
          "isFavorite",
          "shouldShow"
        ],
        "type": "object"
      },
      "BasketballTournamentTeamsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/BasketballTournamentTeamsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/BasketballTeamSummary"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "BasketballTournamentsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/BasketballTournamentsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/BasketballTournamentGroup"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "BatchCardOdds": {
        "additionalProperties": false,
        "properties": {
          "bookmaker": {
            "type": "string"
          },
          "line": {
            "format": "double",
            "type": "number"
          },
          "overOdds": {
            "type": [
              "string",
              "null"
            ]
          },
          "underOdds": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "line",
          "overOdds",
          "underOdds",
          "bookmaker"
        ],
        "type": "object"
      },
      "BatchExtraStatsResult": {
        "additionalProperties": false,
        "properties": {
          "awayTeamName": {
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/CommentaryPlayerStats"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "eventId": {
            "format": "int64",
            "type": "integer"
          },
          "hasCommentary": {
            "type": "boolean"
          },
          "homeTeamName": {
            "type": "string"
          },
          "matchStatus": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "eventId",
          "hasCommentary",
          "data"
        ],
        "type": "object"
      },
      "BettingOddsRulesBot": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/BettingOddsRulesBot.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "createdAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "isEnabled": {
            "type": "boolean"
          },
          "label": {
            "type": "string"
          },
          "marketDescription": {
            "type": "string"
          },
          "total": {
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "label",
          "marketDescription",
          "total",
          "isEnabled",
          "createdAt",
          "updatedAt"
        ],
        "type": "object"
      },
      "BookmakerOdd": {
        "additionalProperties": false,
        "properties": {
          "bookmaker": {
            "type": "string"
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "odd": {
            "format": "double",
            "type": "number"
          }
        },
        "required": [
          "id",
          "bookmaker",
          "odd"
        ],
        "type": "object"
      },
      "BotPromptTemplates": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/BotPromptTemplates.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "content": {
            "type": "string"
          },
          "createdAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "isActive": {
            "type": "boolean"
          },
          "name": {
            "type": "string"
          },
          "updatedAt": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "content",
          "isActive",
          "createdAt",
          "updatedAt"
        ],
        "type": "object"
      },
      "BotTelegramOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/BotTelegramOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "ok": {
            "type": "boolean"
          },
          "test": {
            "type": "boolean"
          }
        },
        "required": [
          "ok"
        ],
        "type": "object"
      },
      "CardLine": {
        "additionalProperties": false,
        "properties": {
          "lambda": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "line": {
            "format": "double",
            "type": "number"
          },
          "oddsDifference": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "overOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "underOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "line",
          "overOdds",
          "underOdds",
          "oddsDifference",
          "lambda"
        ],
        "type": "object"
      },
      "Categories": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/Categories.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "alpha2": {
            "type": [
              "string",
              "null"
            ]
          },
          "flag": {
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "slug",
          "flag",
          "alpha2"
        ],
        "type": "object"
      },
      "CategoryBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/CategoryBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "alpha2": {
            "type": [
              "string",
              "null"
            ]
          },
          "flag": {
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "slug",
          "flag",
          "alpha2"
        ],
        "type": "object"
      },
      "CategoryCreateCreatedBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/CategoryCreateCreatedBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "message": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "message",
          "name"
        ],
        "type": "object"
      },
      "ChatInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ChatInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "messages": {
            "items": {
              "$ref": "#/components/schemas/UiMessage"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "messages"
        ],
        "type": "object"
      },
      "ChatStruct": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "type"
        ],
        "type": "object"
      },
      "CommentaryPlayerStats": {
        "additionalProperties": false,
        "properties": {
          "firstHalfFouls": {
            "format": "int64",
            "type": "integer"
          },
          "firstHalfFoulsWon": {
            "format": "int64",
            "type": "integer"
          },
          "firstHalfShots": {
            "format": "int64",
            "type": "integer"
          },
          "firstHalfShotsOnTarget": {
            "format": "int64",
            "type": "integer"
          },
          "headedShot": {
            "format": "int64",
            "type": "integer"
          },
          "headedShotOnTarget": {
            "format": "int64",
            "type": "integer"
          },
          "playerId": {
            "type": "string"
          },
          "playerName": {
            "type": "string"
          },
          "playerSlug": {
            "type": "string"
          },
          "shotsOnTargetOutsideBox": {
            "format": "int64",
            "type": "integer"
          },
          "shotsOutsideBox": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "playerId",
          "playerName",
          "playerSlug",
          "shotsOutsideBox",
          "shotsOnTargetOutsideBox",
          "headedShot",
          "headedShotOnTarget",
          "firstHalfFouls",
          "firstHalfFoulsWon",
          "firstHalfShots",
          "firstHalfShotsOnTarget"
        ],
        "type": "object"
      },
      "ComparisonMarket": {
        "additionalProperties": false,
        "properties": {
          "category": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "outcomes": {
            "items": {
              "$ref": "#/components/schemas/ComparisonOutcome"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "name",
          "category",
          "outcomes"
        ],
        "type": "object"
      },
      "ComparisonOutcome": {
        "additionalProperties": false,
        "properties": {
          "bestOdds": {
            "$ref": "#/components/schemas/ComparisonQuote"
          },
          "bookmakerOdds": {
            "items": {
              "$ref": "#/components/schemas/ComparisonQuote"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "label": {
            "type": "string"
          }
        },
        "required": [
          "label",
          "bookmakerOdds"
        ],
        "type": "object"
      },
      "ComparisonQuote": {
        "additionalProperties": false,
        "properties": {
          "bookmaker": {
            "type": "string"
          },
          "line": {
            "format": "double",
            "type": "number"
          },
          "odds": {
            "type": "string"
          }
        },
        "required": [
          "bookmaker",
          "odds"
        ],
        "type": "object"
      },
      "ConsolidatedTournament": {
        "additionalProperties": false,
        "properties": {
          "categorySlug": {
            "type": [
              "string",
              "null"
            ]
          },
          "country": {
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "internalId": {
            "format": "int64",
            "type": "integer"
          },
          "isFavorite": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "name": {
            "type": "string"
          },
          "shouldShow": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "slug": {
            "type": "string"
          },
          "uniqueTournamentId": {
            "format": "int64",
            "type": "integer"
          },
          "uniqueTournamentSlug": {
            "type": [
              "string",
              "null"
            ]
          },
          "upcomingFixtureCount": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "internalId",
          "name",
          "slug",
          "uniqueTournamentId",
          "uniqueTournamentSlug",
          "categorySlug",
          "country",
          "isFavorite",
          "shouldShow",
          "upcomingFixtureCount"
        ],
        "type": "object"
      },
      "Countries": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/Countries.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "alpha2": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          }
        },
        "required": [
          "alpha2",
          "name",
          "slug"
        ],
        "type": "object"
      },
      "CountryBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/CountryBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "alpha2": {
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "name",
          "slug",
          "alpha2"
        ],
        "type": "object"
      },
      "CountryCreateCreatedBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/CountryCreateCreatedBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "alpha2": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          }
        },
        "required": [
          "alpha2",
          "message",
          "name",
          "slug"
        ],
        "type": "object"
      },
      "DailyFixture": {
        "additionalProperties": false,
        "properties": {
          "actualAwayCards": {
            "format": "int64",
            "type": "integer"
          },
          "actualAwayRedCards": {
            "format": "int64",
            "type": "integer"
          },
          "actualAwayYellowCards": {
            "format": "int64",
            "type": "integer"
          },
          "actualHomeCards": {
            "format": "int64",
            "type": "integer"
          },
          "actualHomeRedCards": {
            "format": "int64",
            "type": "integer"
          },
          "actualHomeYellowCards": {
            "format": "int64",
            "type": "integer"
          },
          "awayTeam": {
            "type": "string"
          },
          "bet365CardOdds": {
            "additionalProperties": {},
            "type": "object"
          },
          "homeTeam": {
            "type": "string"
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "league": {
            "type": "string"
          },
          "matchDate": {
            "type": "string"
          },
          "matchTime": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "teamCardsAwayOdds": {
            "additionalProperties": {},
            "type": "object"
          },
          "teamCardsHomeOdds": {
            "additionalProperties": {},
            "type": "object"
          },
          "uniqueTournamentId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "homeTeam",
          "awayTeam",
          "league",
          "uniqueTournamentId",
          "matchDate",
          "matchTime",
          "status",
          "bet365CardOdds",
          "teamCardsHomeOdds",
          "teamCardsAwayOdds"
        ],
        "type": "object"
      },
      "DashboardBackfillShotmapInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DashboardBackfillShotmapInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "limit": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "options": {
            "$ref": "#/components/schemas/OptionsStruct1"
          }
        },
        "required": [
          "options",
          "limit"
        ],
        "type": "object"
      },
      "DashboardBasketballLoadByDateInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DashboardBasketballLoadByDateInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "date": {},
          "endDate": {},
          "startDate": {}
        },
        "required": [
          "date",
          "startDate",
          "endDate"
        ],
        "type": "object"
      },
      "DashboardBasketballLoadByIDsInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DashboardBasketballLoadByIDsInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "eventIds": {
            "items": {},
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "eventIds"
        ],
        "type": "object"
      },
      "DashboardBasketballLoadBySeasonInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DashboardBasketballLoadBySeasonInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "options": {},
          "seasonIds": {
            "items": {},
            "type": [
              "array",
              "null"
            ]
          },
          "uniqueTournamentId": {}
        },
        "required": [
          "uniqueTournamentId",
          "seasonIds",
          "options"
        ],
        "type": "object"
      },
      "DashboardBettingOddsRulesCreateInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DashboardBettingOddsRulesCreateInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "marketDescription": {
            "type": "string"
          },
          "total": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "label",
          "marketDescription",
          "total"
        ],
        "type": "object"
      },
      "DashboardBettingOddsRulesToggleInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DashboardBettingOddsRulesToggleInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "id": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "enabled"
        ],
        "type": "object"
      },
      "DashboardBotAlertsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DashboardBotAlertsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pagination": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "type": "object"
      },
      "DashboardBotToggleOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DashboardBotToggleOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "additionalProperties": {},
            "type": "object"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "message"
        ],
        "type": "object"
      },
      "DashboardDailySpreadsheetOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DashboardDailySpreadsheetOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/DailyFixture"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "DashboardLeagueGroupLeaguesAddInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DashboardLeagueGroupLeaguesAddInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "tournamentIds": {
            "items": {
              "format": "int64",
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "tournamentIds"
        ],
        "type": "object"
      },
      "DashboardLeagueGroupLeaguesRemoveInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DashboardLeagueGroupLeaguesRemoveInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "tournamentIds": {
            "items": {
              "format": "int64",
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "tournamentIds"
        ],
        "type": "object"
      },
      "DashboardLeagueGroupsCreateInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DashboardLeagueGroupsCreateInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "name",
          "description"
        ],
        "type": "object"
      },
      "DashboardLeagueGroupsUpdateInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DashboardLeagueGroupsUpdateInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "description"
        ],
        "type": "object"
      },
      "DashboardLeagueListRow": {
        "additionalProperties": false,
        "properties": {
          "ai_analysis_allowed": {
            "type": "boolean"
          },
          "country": {
            "type": [
              "string",
              "null"
            ]
          },
          "heatmapLoad": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "isFavorite": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "logo": {
            "type": "string"
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "onForTelegramBot": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "predictlineup_allowed": {
            "type": "boolean"
          },
          "primaryColor": {
            "type": [
              "string",
              "null"
            ]
          },
          "shotmapLoad": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "shouldShow": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          },
          "uniqueTournamentId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "slug",
          "shouldShow",
          "isFavorite",
          "heatmapLoad",
          "shotmapLoad",
          "predictlineup_allowed",
          "ai_analysis_allowed",
          "onForTelegramBot",
          "primaryColor",
          "uniqueTournamentId",
          "country",
          "logo"
        ],
        "type": "object"
      },
      "DashboardLeagueLoadDataInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DashboardLeagueLoadDataInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "leagueId": {},
          "options": {},
          "seasonIds": {
            "items": {},
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "leagueId",
          "seasonIds",
          "options"
        ],
        "type": "object"
      },
      "DashboardLeagueRow": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DashboardLeagueRow.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "ai_analysis_allowed": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "country": {
            "type": [
              "string",
              "null"
            ]
          },
          "heatmapLoad": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "isFavorite": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "predictlineup_allowed": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "shotmapLoad": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "shouldShow": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          },
          "uniqueTournamentId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "slug",
          "shouldShow",
          "isFavorite",
          "heatmapLoad",
          "shotmapLoad",
          "predictlineup_allowed",
          "ai_analysis_allowed",
          "uniqueTournamentId",
          "country"
        ],
        "type": "object"
      },
      "DashboardLeagueUpdateInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DashboardLeagueUpdateInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "ai_analysis_allowed": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "heatmapLoad": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "id": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "isFavorite": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "predictlineup_allowed": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "shotmapLoad": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "shouldShow": {
            "type": [
              "boolean",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "shouldShow",
          "isFavorite",
          "heatmapLoad",
          "shotmapLoad",
          "predictlineup_allowed",
          "ai_analysis_allowed"
        ],
        "type": "object"
      },
      "DashboardPositionRulesCreateInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DashboardPositionRulesCreateInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "fromPosition": {
            "type": "string"
          },
          "leagueGroupId": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "ruleType": {
            "type": "string"
          },
          "toPosition": {
            "type": "string"
          }
        },
        "required": [
          "fromPosition",
          "toPosition",
          "ruleType",
          "leagueGroupId"
        ],
        "type": "object"
      },
      "DashboardPositionRulesUpdateInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DashboardPositionRulesUpdateInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "enabled": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "id": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "leagueGroupId": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "ruleType": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "enabled",
          "ruleType",
          "leagueGroupId"
        ],
        "type": "object"
      },
      "DashboardPromptTemplateUpdateInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DashboardPromptTemplateUpdateInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "content": {
            "type": [
              "string",
              "null"
            ]
          },
          "isActive": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "name",
          "content",
          "isActive"
        ],
        "type": "object"
      },
      "DashboardPromptTemplatesCreateInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DashboardPromptTemplatesCreateInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "content": {
            "type": [
              "string",
              "null"
            ]
          },
          "isActive": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "name",
          "content",
          "isActive"
        ],
        "type": "object"
      },
      "DashboardSportsmonkMappingListOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DashboardSportsmonkMappingListOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/Item1"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pagination": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "type": "object"
      },
      "DashboardSportsmonkMappingUpdateInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DashboardSportsmonkMappingUpdateInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "teamId": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "teamName": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "teamId",
          "teamName"
        ],
        "type": "object"
      },
      "DashboardSportsmonkMappingUpdateOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DashboardSportsmonkMappingUpdateOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/DashboardSportsmonkMappingUpdateOKBodyDataStruct"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "message"
        ],
        "type": "object"
      },
      "DashboardSportsmonkMappingUpdateOKBodyDataStruct": {
        "additionalProperties": false,
        "properties": {
          "teamId": {
            "format": "int64",
            "type": "integer"
          },
          "teamName": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "teamId",
          "teamName"
        ],
        "type": "object"
      },
      "DashboardStaleOddsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DashboardStaleOddsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "page": {
            "format": "int64",
            "type": "integer"
          },
          "pageSize": {
            "format": "int64",
            "type": "integer"
          },
          "totalCount": {
            "format": "int64",
            "type": "integer"
          },
          "totalPages": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "data",
          "page",
          "pageSize",
          "totalCount",
          "totalPages"
        ],
        "type": "object"
      },
      "DashboardStatsRulesCreateInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DashboardStatsRulesCreateInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "statisticKey": {
            "type": "string"
          },
          "statisticsLabel": {
            "type": "string"
          }
        },
        "required": [
          "statisticsLabel",
          "statisticKey"
        ],
        "type": "object"
      },
      "DashboardStatsRulesToggleInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DashboardStatsRulesToggleInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "enabled": {
            "type": "boolean"
          },
          "id": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "enabled"
        ],
        "type": "object"
      },
      "DashboardSystemStatsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DashboardSystemStatsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/SystemStats"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pagination": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "type": "object"
      },
      "DataVisualizerByIDsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DataVisualizerByIDsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/DataVisualizerEvent"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "DataVisualizerEvent": {
        "additionalProperties": false,
        "properties": {
          "awayScore": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "awayTeam": {
            "type": "string"
          },
          "awayTeamId": {
            "format": "int64",
            "type": "integer"
          },
          "corruptedPlayerStatsCount": {
            "format": "int64",
            "type": "integer"
          },
          "hasCorruptedPlayerStats": {
            "type": "boolean"
          },
          "hasCorruptedTeamStats": {
            "type": "boolean"
          },
          "hasPlayerStats": {
            "type": "boolean"
          },
          "hasStats": {
            "type": "boolean"
          },
          "homeScore": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "homeTeam": {
            "type": "string"
          },
          "homeTeamId": {
            "format": "int64",
            "type": "integer"
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "isUnsupportedTournament": {
            "type": "boolean"
          },
          "league": {
            "type": "string"
          },
          "matchDate": {
            "type": "string"
          },
          "matchTime": {
            "type": "string"
          },
          "playerStatsCount": {
            "format": "int64",
            "type": "integer"
          },
          "slug": {
            "type": "string"
          },
          "statsCount": {
            "format": "int64",
            "type": "integer"
          },
          "status": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "homeTeam",
          "awayTeam",
          "homeTeamId",
          "awayTeamId",
          "league",
          "matchDate",
          "matchTime",
          "status",
          "homeScore",
          "awayScore",
          "hasStats",
          "statsCount",
          "hasCorruptedTeamStats",
          "hasPlayerStats",
          "playerStatsCount",
          "hasCorruptedPlayerStats",
          "corruptedPlayerStatsCount",
          "isUnsupportedTournament",
          "slug"
        ],
        "type": "object"
      },
      "DataVisualizerOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/DataVisualizerOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/DataVisualizerEvent"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "ErrorDetail": {
        "additionalProperties": false,
        "properties": {
          "location": {
            "description": "Where the error occurred, e.g. 'body.items[3].tags' or 'path.thing-id'",
            "type": "string"
          },
          "message": {
            "description": "Error message text",
            "type": "string"
          },
          "value": {
            "description": "The value at the given location"
          }
        },
        "type": "object"
      },
      "ErrorModel": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ErrorModel.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "detail": {
            "description": "A human-readable explanation specific to this occurrence of the problem.",
            "examples": [
              "Property foo is required but is missing."
            ],
            "type": "string"
          },
          "errors": {
            "description": "Optional list of individual error details",
            "items": {
              "$ref": "#/components/schemas/ErrorDetail"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "instance": {
            "description": "A URI reference that identifies the specific occurrence of the problem.",
            "examples": [
              "https://example.com/error-log/abc123"
            ],
            "format": "uri",
            "type": "string"
          },
          "status": {
            "description": "HTTP status code",
            "examples": [
              400
            ],
            "format": "int64",
            "type": "integer"
          },
          "title": {
            "description": "A short, human-readable summary of the problem type. This value should not change between occurrences of the error.",
            "examples": [
              "Bad Request"
            ],
            "type": "string"
          },
          "type": {
            "default": "about:blank",
            "description": "A URI reference to human-readable documentation for the error.",
            "examples": [
              "https://example.com/errors/example"
            ],
            "format": "uri",
            "type": "string"
          }
        },
        "type": "object"
      },
      "EventBulkTeamOddsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/EventBulkTeamOddsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "bookmakerSummary": {
            "additionalProperties": {
              "format": "int64",
              "type": "integer"
            },
            "type": "object"
          },
          "data": {
            "additionalProperties": {},
            "type": "object"
          },
          "eventIds": {
            "items": {
              "format": "int64",
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "eventsWithOdds": {
            "format": "int64",
            "type": "integer"
          },
          "totalEvents": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "EventCountsByDatesOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/EventCountsByDatesOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "additionalProperties": {
              "format": "int64",
              "type": "integer"
            },
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "EventCreateCreatedBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/EventCreateCreatedBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "event": {
            "$ref": "#/components/schemas/Events"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "event",
          "message"
        ],
        "type": "object"
      },
      "EventExpectedCardsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/EventExpectedCardsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "awayTeam": {
            "$ref": "#/components/schemas/TeamExpectedCards"
          },
          "bookmaker": {},
          "eventId": {
            "format": "int64",
            "type": "integer"
          },
          "homeTeam": {
            "$ref": "#/components/schemas/TeamExpectedCards"
          },
          "totalExpectedCards": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "awayTeam",
          "bookmaker",
          "eventId",
          "homeTeam",
          "totalExpectedCards"
        ],
        "type": "object"
      },
      "EventExtraStatsBatchInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/EventExtraStatsBatchInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "eventIds": {
            "items": {},
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "eventIds"
        ],
        "type": "object"
      },
      "EventExtraStatsBatchOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/EventExtraStatsBatchOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "results": {
            "items": {
              "$ref": "#/components/schemas/BatchExtraStatsResult"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "results"
        ],
        "type": "object"
      },
      "EventExtraStatsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/EventExtraStatsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/CommentaryPlayerStats"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "eventId": {
            "format": "int64",
            "type": "integer"
          },
          "hasCommentary": {
            "type": "boolean"
          },
          "matchStatus": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "hasCommentary"
        ],
        "type": "object"
      },
      "EventFormationsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/EventFormationsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "EventHeatmapOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/EventHeatmapOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "EventLineupAnalysisOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/EventLineupAnalysisOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/SorareInsideLineups"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "EventLineupPreviewOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/EventLineupPreviewOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/SorareInsideLineups"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "EventLineupStatusOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/EventLineupStatusOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "additionalProperties": {
              "type": "string"
            },
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "EventListOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/EventListOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/Events"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pagination": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "type": "object"
      },
      "EventLiveScoresOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/EventLiveScoresOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "EventOddsComparisonOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/EventOddsComparisonOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "availableBookmakers": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "markets": {
            "items": {
              "$ref": "#/components/schemas/ComparisonMarket"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "availableBookmakers",
          "markets"
        ],
        "type": "object"
      },
      "EventOddsMovementsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/EventOddsMovementsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "eventId": {
            "format": "int64",
            "type": "integer"
          },
          "market": {
            "type": "string"
          },
          "series": {
            "items": {
              "$ref": "#/components/schemas/MovementSeries"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "eventId",
          "market",
          "series"
        ],
        "type": "object"
      },
      "EventPlayerOddsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/EventPlayerOddsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "bookmakerSummary": {
            "additionalProperties": {
              "format": "int64",
              "type": "integer"
            },
            "type": "object"
          },
          "cacheKey": {
            "type": "string"
          },
          "data": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "EventPlayersOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/EventPlayersOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "EventPredictedFormationsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/EventPredictedFormationsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "EventPredictedTeamsLineupOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/EventPredictedTeamsLineupOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "awayTeam": {
            "additionalProperties": {},
            "type": "object"
          },
          "homeTeam": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "awayTeam",
          "homeTeam"
        ],
        "type": "object"
      },
      "EventShotmapOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/EventShotmapOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "event": {
            "$ref": "#/components/schemas/EventShotmapOKBodyEventStruct"
          },
          "message": {
            "type": "string"
          },
          "npXGSummary": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "EventShotmapOKBodyEventStruct": {
        "additionalProperties": false,
        "properties": {
          "awayScoreCurrent": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "awayTeamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "homeScoreCurrent": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "homeTeamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "homeTeamId",
          "awayTeamId",
          "homeScoreCurrent",
          "awayScoreCurrent"
        ],
        "type": "object"
      },
      "EventTeamLineupOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/EventTeamLineupOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "EventTeamOddsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/EventTeamOddsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "bookmakerSummary": {
            "additionalProperties": {
              "format": "int64",
              "type": "integer"
            },
            "type": "object"
          },
          "data": {
            "additionalProperties": {},
            "type": "object"
          },
          "eventId": {
            "type": "string"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "EventTeamsShotsModelOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/EventTeamsShotsModelOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "EventTeamsShotsModelOddsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/EventTeamsShotsModelOddsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "EventUpdateOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/EventUpdateOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "event": {
            "$ref": "#/components/schemas/Events"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "event",
          "message"
        ],
        "type": "object"
      },
      "Events": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/Events.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "awayScoreCurrent": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "awayScoreNormaltime": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "awayTeamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "coverage": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "customId": {
            "type": [
              "string",
              "null"
            ]
          },
          "defaultOvertimeLength": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "defaultPeriodCount": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "defaultPeriodLength": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "fanRatingEvent": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "hasGlobalHighlights": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "homeScoreCurrent": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "homeScoreNormaltime": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "homeTeamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "injuryTime1": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "injuryTime2": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "internalId": {
            "format": "int64",
            "type": "integer"
          },
          "lineupConfirmed": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "nextAutoPlayerUpdate": {
            "type": [
              "string",
              "null"
            ]
          },
          "period1Away": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "period1Home": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "period2Away": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "period2Home": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "refereeId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "roundInfo": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "roundSlug": {
            "type": [
              "string",
              "null"
            ]
          },
          "seasonId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "type": [
              "string",
              "null"
            ]
          },
          "timeCurrentPeriodStartTimestamp": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "timeStartTimestamp": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "tournamentId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "uniqueTournamentId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "venueId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "winnerCode": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "internalId",
          "slug",
          "customId",
          "status",
          "winnerCode",
          "roundInfo",
          "roundSlug",
          "timeCurrentPeriodStartTimestamp",
          "timeStartTimestamp",
          "venueId",
          "homeTeamId",
          "awayTeamId",
          "homeScoreCurrent",
          "awayScoreCurrent",
          "homeScoreNormaltime",
          "awayScoreNormaltime",
          "coverage",
          "fanRatingEvent",
          "hasGlobalHighlights",
          "defaultPeriodCount",
          "defaultPeriodLength",
          "defaultOvertimeLength",
          "period1Home",
          "period1Away",
          "period2Home",
          "period2Away",
          "injuryTime1",
          "injuryTime2",
          "tournamentId",
          "refereeId",
          "uniqueTournamentId",
          "seasonId",
          "lineupConfirmed",
          "nextAutoPlayerUpdate"
        ],
        "type": "object"
      },
      "EventsByDateOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/EventsByDateOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {},
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "FavoriteBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/FavoriteBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          },
          "playerId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "teamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "teamId",
          "playerId",
          "notes"
        ],
        "type": "object"
      },
      "FavoritePlayerCheckOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/FavoritePlayerCheckOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "isFavorite": {
            "type": "boolean"
          }
        },
        "required": [
          "isFavorite"
        ],
        "type": "object"
      },
      "FavoritePlayersListOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/FavoritePlayersListOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "FavoriteTeamCheckOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/FavoriteTeamCheckOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "isFavorite": {
            "type": "boolean"
          }
        },
        "required": [
          "isFavorite"
        ],
        "type": "object"
      },
      "FavoriteTeamsListOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/FavoriteTeamsListOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "GlmBet": {
        "additionalProperties": false,
        "properties": {
          "bestOverBookmaker": {
            "type": [
              "string",
              "null"
            ]
          },
          "bestOverEdge": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "bestOverOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "bestUnderBookmaker": {
            "type": [
              "string",
              "null"
            ]
          },
          "bestUnderEdge": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "bestUnderOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "bookmakers": {
            "items": {
              "$ref": "#/components/schemas/GlmBookmakerQuote"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "fairOverOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "fairUnderOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "line": {
            "format": "double",
            "type": "number"
          },
          "probOver": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "probUnder": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "line",
          "fairOverOdds",
          "fairUnderOdds",
          "probOver",
          "probUnder",
          "bookmakers",
          "bestOverOdds",
          "bestOverBookmaker",
          "bestOverEdge",
          "bestUnderOdds",
          "bestUnderBookmaker",
          "bestUnderEdge"
        ],
        "type": "object"
      },
      "GlmBookmakerQuote": {
        "additionalProperties": false,
        "properties": {
          "bookmakerName": {
            "type": "string"
          },
          "overEdge": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "overOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "underEdge": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "underOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "bookmakerName",
          "overOdds",
          "underOdds",
          "overEdge",
          "underEdge"
        ],
        "type": "object"
      },
      "GlmMatch": {
        "additionalProperties": false,
        "properties": {
          "awayBets": {
            "items": {
              "$ref": "#/components/schemas/GlmBet"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "awayLambda": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "awayTeamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "awayTeamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "eventId": {
            "format": "int64",
            "type": "integer"
          },
          "homeBets": {
            "items": {
              "$ref": "#/components/schemas/GlmBet"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "homeLambda": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "homeTeamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "homeTeamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "internalId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "leagueName": {
            "type": [
              "string",
              "null"
            ]
          },
          "matchDate": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          },
          "totalBets": {
            "items": {
              "$ref": "#/components/schemas/GlmBet"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "totalLambda": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "uniqueTournamentId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "eventId",
          "matchDate",
          "homeTeamId",
          "homeTeamName",
          "awayTeamId",
          "awayTeamName",
          "uniqueTournamentId",
          "leagueName",
          "slug",
          "internalId",
          "homeLambda",
          "awayLambda",
          "totalLambda",
          "homeBets",
          "awayBets",
          "totalBets"
        ],
        "type": "object"
      },
      "HealthOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/HealthOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "environment": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "timestamp": {
            "type": "string"
          },
          "uptime": {
            "format": "double",
            "type": "number"
          }
        },
        "required": [
          "environment",
          "status",
          "timestamp",
          "uptime"
        ],
        "type": "object"
      },
      "HeatmapData": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "playerId": {
            "format": "int64",
            "type": "integer"
          },
          "points": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "seasonId": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "playerId",
          "seasonId",
          "points"
        ],
        "type": "object"
      },
      "HomeTeamStruct": {
        "additionalProperties": false,
        "properties": {
          "id": {},
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "slug"
        ],
        "type": "object"
      },
      "ImageGetOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ImageGetOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "url"
        ],
        "type": "object"
      },
      "ImageIngestInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ImageIngestInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "id": {},
          "type": {
            "type": "string"
          }
        },
        "required": [
          "type",
          "id"
        ],
        "type": "object"
      },
      "ImageURLOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ImageURLOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "url"
        ],
        "type": "object"
      },
      "IncidentBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/IncidentBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "awayPenaltiesPeriod1": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "awayPenaltiesPeriod2": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "awayRedCardsPeriod1": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "awayRedCardsPeriod2": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "awayYellowCardsPeriod1": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "awayYellowCardsPeriod2": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "eventId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "homePenaltiesPeriod1": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "homePenaltiesPeriod2": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "homeRedCardsPeriod1": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "homeRedCardsPeriod2": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "homeYellowCardsPeriod1": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "homeYellowCardsPeriod2": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "id": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "eventId",
          "homeYellowCardsPeriod1",
          "awayYellowCardsPeriod1",
          "homeRedCardsPeriod1",
          "awayRedCardsPeriod1",
          "homePenaltiesPeriod1",
          "awayPenaltiesPeriod1",
          "homeYellowCardsPeriod2",
          "awayYellowCardsPeriod2",
          "homeRedCardsPeriod2",
          "awayRedCardsPeriod2",
          "homePenaltiesPeriod2",
          "awayPenaltiesPeriod2"
        ],
        "type": "object"
      },
      "IncidentCreateCreatedBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/IncidentCreateCreatedBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "message"
        ],
        "type": "object"
      },
      "Incidents": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/Incidents.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "awayPenaltiesPeriod1": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "awayPenaltiesPeriod2": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "awayRedCardsPeriod1": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "awayRedCardsPeriod2": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "awayYellowCardsPeriod1": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "awayYellowCardsPeriod2": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "createdAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "eventId": {
            "format": "int64",
            "type": "integer"
          },
          "homePenaltiesPeriod1": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "homePenaltiesPeriod2": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "homeRedCardsPeriod1": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "homeRedCardsPeriod2": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "homeYellowCardsPeriod1": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "homeYellowCardsPeriod2": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "id": {
            "type": "string"
          },
          "updatedAt": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "eventId",
          "homeYellowCardsPeriod1",
          "homeYellowCardsPeriod2",
          "awayYellowCardsPeriod1",
          "awayYellowCardsPeriod2",
          "homeRedCardsPeriod1",
          "homeRedCardsPeriod2",
          "awayRedCardsPeriod1",
          "awayRedCardsPeriod2",
          "homePenaltiesPeriod1",
          "homePenaltiesPeriod2",
          "awayPenaltiesPeriod1",
          "awayPenaltiesPeriod2",
          "createdAt",
          "updatedAt"
        ],
        "type": "object"
      },
      "Item": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "uniqueTournamentId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "uniqueTournamentId",
          "name"
        ],
        "type": "object"
      },
      "Item1": {
        "additionalProperties": false,
        "properties": {
          "teamId": {
            "format": "int64",
            "type": "integer"
          },
          "teamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "teamSlug": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "teamId",
          "teamName",
          "teamSlug"
        ],
        "type": "object"
      },
      "Item2": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "uniqueTournamentId": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "uniqueTournamentId",
          "name"
        ],
        "type": "object"
      },
      "Item3": {
        "additionalProperties": false,
        "properties": {
          "market": {
            "type": "string"
          },
          "playerName": {
            "type": "string"
          }
        },
        "required": [
          "playerName",
          "market"
        ],
        "type": "object"
      },
      "Item4": {
        "additionalProperties": false,
        "properties": {
          "away_score": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "away_team_id": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "away_team_name": {
            "type": [
              "string",
              "null"
            ]
          },
          "away_team_slug": {
            "type": [
              "string",
              "null"
            ]
          },
          "away_value": {
            "type": [
              "string",
              "null"
            ]
          },
          "event_id": {
            "format": "int64",
            "type": "integer"
          },
          "home_score": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "home_team_id": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "home_team_name": {
            "type": [
              "string",
              "null"
            ]
          },
          "home_team_slug": {
            "type": [
              "string",
              "null"
            ]
          },
          "home_value": {
            "type": [
              "string",
              "null"
            ]
          },
          "league_id": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "league_name": {
            "type": [
              "string",
              "null"
            ]
          },
          "league_slug": {
            "type": [
              "string",
              "null"
            ]
          },
          "time_start_timestamp": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "event_id",
          "home_team_id",
          "away_team_id",
          "time_start_timestamp",
          "home_score",
          "away_score",
          "home_value",
          "away_value",
          "home_team_name",
          "away_team_name",
          "home_team_slug",
          "away_team_slug",
          "league_name",
          "league_id",
          "league_slug"
        ],
        "type": "object"
      },
      "Item5": {
        "additionalProperties": false,
        "properties": {
          "assists": {
            "format": "int64",
            "type": "integer"
          },
          "goals": {
            "format": "int64",
            "type": "integer"
          },
          "isSubstitute": {
            "type": "boolean"
          },
          "jerseyNo": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "minutesPlayed": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "playerId": {
            "format": "int64",
            "type": "integer"
          },
          "playerInternalId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "position": {
            "type": [
              "string",
              "null"
            ]
          },
          "substitutedIn": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "substitutedOut": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "playerId",
          "playerInternalId",
          "name",
          "jerseyNo",
          "position",
          "minutesPlayed",
          "substitutedIn",
          "substitutedOut",
          "isSubstitute",
          "goals",
          "assists"
        ],
        "type": "object"
      },
      "Item6": {
        "additionalProperties": false,
        "properties": {
          "matchId": {
            "format": "int64",
            "type": "integer"
          },
          "playerId": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "playerId",
          "matchId"
        ],
        "type": "object"
      },
      "LeagueGroup": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/LeagueGroup.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "createdAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "memberCount": {
            "format": "int64",
            "type": "integer"
          },
          "members": {
            "items": {
              "$ref": "#/components/schemas/LeagueGroupMember"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "name": {
            "type": "string"
          },
          "updatedAt": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "members",
          "memberCount",
          "id",
          "name",
          "description",
          "createdAt",
          "updatedAt"
        ],
        "type": "object"
      },
      "LeagueGroupMember": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          },
          "tournamentId": {
            "format": "int64",
            "type": "integer"
          },
          "uniqueTournamentId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "tournamentId",
          "name",
          "slug",
          "uniqueTournamentId"
        ],
        "type": "object"
      },
      "LineupEvent": {
        "additionalProperties": false,
        "properties": {
          "awayTeamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "awayTeamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "homeTeamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "homeTeamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "internalId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "lineupType": {
            "type": "string"
          },
          "matchTime": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "tournamentName": {
            "type": [
              "string",
              "null"
            ]
          },
          "uniqueTournamentId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "internalId",
          "homeTeamName",
          "awayTeamName",
          "homeTeamId",
          "awayTeamId",
          "matchTime",
          "tournamentName",
          "uniqueTournamentId",
          "lineupType"
        ],
        "type": "object"
      },
      "LineupPlayer": {
        "additionalProperties": false,
        "properties": {
          "awayTeamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "awayTeamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "categoryFlag": {
            "type": [
              "string",
              "null"
            ]
          },
          "eventId": {
            "format": "int64",
            "type": "integer"
          },
          "eventSlug": {
            "type": [
              "string",
              "null"
            ]
          },
          "homeTeamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "homeTeamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "internalId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "jerseyNumber": {
            "type": [
              "string",
              "null"
            ]
          },
          "matchTime": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "playerFullName": {
            "type": [
              "string",
              "null"
            ]
          },
          "playerId": {
            "format": "int64",
            "type": "integer"
          },
          "playerInternalId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "playerName": {
            "type": [
              "string",
              "null"
            ]
          },
          "playerSlug": {
            "type": [
              "string",
              "null"
            ]
          },
          "position": {
            "type": "string"
          },
          "positionChange": {
            "$ref": "#/components/schemas/PositionChangeInfo"
          },
          "predictedAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "predictionType": {
            "type": [
              "string",
              "null"
            ]
          },
          "teamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "teamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "tournamentName": {
            "type": [
              "string",
              "null"
            ]
          },
          "uniqueTournamentId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "viewPriority": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "playerId",
          "playerName",
          "playerFullName",
          "playerSlug",
          "playerInternalId",
          "jerseyNumber",
          "position",
          "predictionType",
          "predictedAt",
          "teamId",
          "teamName",
          "eventId",
          "internalId",
          "eventSlug",
          "matchTime",
          "homeTeamId",
          "homeTeamName",
          "awayTeamId",
          "awayTeamName",
          "tournamentName",
          "uniqueTournamentId",
          "categoryFlag",
          "viewPriority",
          "positionChange"
        ],
        "type": "object"
      },
      "LineupsPlayersOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/LineupsPlayersOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/LineupPlayer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "events": {
            "items": {
              "$ref": "#/components/schemas/LineupEvent"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pagination": {
            "additionalProperties": {},
            "type": "object"
          },
          "positionChangeCount": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "data",
          "events",
          "pagination",
          "positionChangeCount"
        ],
        "type": "object"
      },
      "LiveFoulCardAlertLeaguesOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/LiveFoulCardAlertLeaguesOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "leagues": {
            "items": {
              "$ref": "#/components/schemas/Item2"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "leagues"
        ],
        "type": "object"
      },
      "LiveFoulCardAlertsDisableOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/LiveFoulCardAlertsDisableOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "success": {
            "type": "boolean"
          }
        },
        "required": [
          "success"
        ],
        "type": "object"
      },
      "LiveFoulCardAlertsGetOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/LiveFoulCardAlertsGetOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "eligible": {
            "type": "boolean"
          },
          "isLiveAlertActive": {
            "type": "boolean"
          },
          "preferences": {
            "additionalProperties": {},
            "type": "object"
          },
          "telegramLinked": {
            "type": "boolean"
          }
        },
        "required": [
          "eligible",
          "isLiveAlertActive",
          "preferences",
          "telegramLinked"
        ],
        "type": "object"
      },
      "LiveFoulCardAlertsUpdateInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/LiveFoulCardAlertsUpdateInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "mutedUniqueTournamentIds": {
            "items": {
              "format": "int64",
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "notify2Fouls": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "notify3Fouls": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "notify4Fouls": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "notify5PlusFouls": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "notifyYellowCards": {
            "type": [
              "boolean",
              "null"
            ]
          }
        },
        "required": [
          "notify2Fouls",
          "notify3Fouls",
          "notify4Fouls",
          "notify5PlusFouls",
          "notifyYellowCards",
          "mutedUniqueTournamentIds"
        ],
        "type": "object"
      },
      "LiveFoulCardAlertsUpdateOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/LiveFoulCardAlertsUpdateOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "success": {
            "type": "boolean"
          }
        },
        "required": [
          "success"
        ],
        "type": "object"
      },
      "MCPGetInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/MCPGetInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "id": {},
          "method": {
            "type": "string"
          },
          "params": {}
        },
        "required": [
          "method",
          "params",
          "id"
        ],
        "type": "object"
      },
      "MCPGetOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/MCPGetOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "authRequired": {
            "type": "boolean"
          },
          "description": {
            "type": "string"
          },
          "documentation": {
            "type": "string"
          },
          "endpoints": {
            "additionalProperties": {},
            "type": "object"
          },
          "id": {},
          "jsonrpc": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "protocol": {
            "type": "string"
          },
          "protocolVersion": {
            "type": "string"
          },
          "result": {},
          "tools": {
            "format": "int64",
            "type": "integer"
          },
          "version": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "MCPOptionsInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/MCPOptionsInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "id": {},
          "method": {
            "type": "string"
          },
          "params": {}
        },
        "required": [
          "method",
          "params",
          "id"
        ],
        "type": "object"
      },
      "MCPOptionsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/MCPOptionsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "authRequired": {
            "type": "boolean"
          },
          "description": {
            "type": "string"
          },
          "documentation": {
            "type": "string"
          },
          "endpoints": {
            "additionalProperties": {},
            "type": "object"
          },
          "id": {},
          "jsonrpc": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "protocol": {
            "type": "string"
          },
          "protocolVersion": {
            "type": "string"
          },
          "result": {},
          "tools": {
            "format": "int64",
            "type": "integer"
          },
          "version": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "MCPPostInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/MCPPostInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "id": {},
          "method": {
            "type": "string"
          },
          "params": {}
        },
        "required": [
          "method",
          "params",
          "id"
        ],
        "type": "object"
      },
      "MCPPostOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/MCPPostOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "authRequired": {
            "type": "boolean"
          },
          "description": {
            "type": "string"
          },
          "documentation": {
            "type": "string"
          },
          "endpoints": {
            "additionalProperties": {},
            "type": "object"
          },
          "id": {},
          "jsonrpc": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "protocol": {
            "type": "string"
          },
          "protocolVersion": {
            "type": "string"
          },
          "result": {},
          "tools": {
            "format": "int64",
            "type": "integer"
          },
          "version": {
            "type": "string"
          }
        },
        "type": "object"
      },
      "MCPSSEGetInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/MCPSSEGetInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "id": {},
          "method": {
            "type": "string"
          },
          "params": {
            "$ref": "#/components/schemas/ParamsStruct"
          }
        },
        "required": [
          "method",
          "params",
          "id"
        ],
        "type": "object"
      },
      "MCPSSEOptionsInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/MCPSSEOptionsInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "id": {},
          "method": {
            "type": "string"
          },
          "params": {
            "$ref": "#/components/schemas/ParamsStruct"
          }
        },
        "required": [
          "method",
          "params",
          "id"
        ],
        "type": "object"
      },
      "MCPSSEPostInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/MCPSSEPostInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "id": {},
          "method": {
            "type": "string"
          },
          "params": {
            "$ref": "#/components/schemas/ParamsStruct"
          }
        },
        "required": [
          "method",
          "params",
          "id"
        ],
        "type": "object"
      },
      "ManagerCreateCreatedBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ManagerCreateCreatedBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "message": {
            "type": "string"
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "message",
          "name"
        ],
        "type": "object"
      },
      "ManagerCreateInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ManagerCreateInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "name"
        ],
        "type": "object"
      },
      "ManagerUpdateInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ManagerUpdateInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "countrySlug": {
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "shortName": {
            "type": [
              "string",
              "null"
            ]
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "name",
          "slug",
          "shortName",
          "countrySlug"
        ],
        "type": "object"
      },
      "Managers": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/Managers.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "countrySlug": {
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "shortName": {
            "type": [
              "string",
              "null"
            ]
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "slug",
          "shortName",
          "countrySlug"
        ],
        "type": "object"
      },
      "MatchesRecentOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/MatchesRecentOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "matches": {
            "items": {
              "$ref": "#/components/schemas/RecentMatch"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "matches"
        ],
        "type": "object"
      },
      "MatchupEdgesOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/MatchupEdgesOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "debug": {
            "additionalProperties": {},
            "type": "object"
          },
          "groups": {
            "items": {
              "$ref": "#/components/schemas/MatchupInsight"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "insights": {
            "items": {
              "$ref": "#/components/schemas/MatchupInsight"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "lookback": {
            "format": "int64",
            "type": "integer"
          },
          "opponent": {},
          "positions": {
            "items": {
              "$ref": "#/components/schemas/MatchupInsight"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "team": {}
        },
        "required": [
          "groups",
          "insights",
          "lookback",
          "opponent",
          "positions",
          "team"
        ],
        "type": "object"
      },
      "MatchupInsight": {
        "additionalProperties": false,
        "properties": {
          "leagueAvg": {
            "format": "double",
            "type": "number"
          },
          "metricKey": {
            "type": "string"
          },
          "opponentAvg": {
            "format": "double",
            "type": "number"
          },
          "percentDiff": {
            "format": "double",
            "type": "number"
          },
          "position": {
            "type": "string"
          },
          "stat": {
            "type": "string"
          }
        },
        "required": [
          "position",
          "stat",
          "metricKey",
          "percentDiff",
          "opponentAvg",
          "leagueAvg"
        ],
        "type": "object"
      },
      "MessageEnvelope": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/MessageEnvelope.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "message"
        ],
        "type": "object"
      },
      "ModelBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ModelBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "group": {
            "type": [
              "string",
              "null"
            ]
          },
          "lastXMatches": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "marketType": {
            "type": [
              "string",
              "null"
            ]
          },
          "minimumMatches": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "onlyIfPlayerStarted": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "opponentMultiplier": {
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "name",
          "lastXMatches",
          "minimumMatches",
          "onlyIfPlayerStarted",
          "marketType",
          "opponentMultiplier",
          "group",
          "description",
          "status"
        ],
        "type": "object"
      },
      "ModelListOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ModelListOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "count": {
            "format": "int64",
            "type": "integer"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/Models"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "count",
          "data"
        ],
        "type": "object"
      },
      "Models": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/Models.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "group": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "lastXMatches": {
            "format": "int64",
            "type": "integer"
          },
          "marketType": {
            "type": "string"
          },
          "minimumMatches": {
            "format": "int64",
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "onlyIfPlayerStarted": {
            "type": "boolean"
          },
          "opponentMultiplier": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "lastXMatches",
          "minimumMatches",
          "onlyIfPlayerStarted",
          "marketType",
          "opponentMultiplier",
          "status",
          "group",
          "description",
          "createdAt",
          "updatedAt"
        ],
        "type": "object"
      },
      "MovementPoint": {
        "additionalProperties": false,
        "properties": {
          "odds": {
            "format": "double",
            "type": "number"
          },
          "t": {
            "type": "string"
          }
        },
        "required": [
          "t",
          "odds"
        ],
        "type": "object"
      },
      "MovementSeries": {
        "additionalProperties": false,
        "properties": {
          "bookmaker": {
            "type": "string"
          },
          "bookmakerId": {
            "format": "int64",
            "type": "integer"
          },
          "currentOdds": {
            "format": "double",
            "type": "number"
          },
          "line": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "openingOdds": {
            "format": "double",
            "type": "number"
          },
          "player": {
            "type": [
              "string",
              "null"
            ]
          },
          "playerId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "playerKey": {
            "type": [
              "string",
              "null"
            ]
          },
          "points": {
            "items": {
              "$ref": "#/components/schemas/MovementPoint"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "selection": {
            "type": "string"
          }
        },
        "required": [
          "bookmakerId",
          "bookmaker",
          "selection",
          "line",
          "player",
          "playerKey",
          "playerId",
          "openingOdds",
          "currentOdds",
          "points"
        ],
        "type": "object"
      },
      "OddsBatchCardOddsInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/OddsBatchCardOddsInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "eventIds": {
            "items": {
              "format": "double",
              "type": "number"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "eventIds"
        ],
        "type": "object"
      },
      "OpponentRanking": {
        "additionalProperties": false,
        "properties": {
          "eventId": {
            "format": "int64",
            "type": "integer"
          },
          "isPreviousSeason": {
            "type": "boolean"
          },
          "leagueAverage": {
            "format": "double",
            "type": "number"
          },
          "opponentAverage": {
            "format": "double",
            "type": "number"
          },
          "opponentTeamId": {
            "format": "int64",
            "type": "integer"
          },
          "opponentTeamName": {
            "type": "string"
          },
          "opponentTeamSlug": {
            "type": "string"
          },
          "rank": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "seasonId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "statType": {
            "type": "string"
          },
          "total": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "eventId",
          "opponentTeamId",
          "opponentTeamName",
          "opponentTeamSlug",
          "rank",
          "total",
          "statType",
          "leagueAverage",
          "opponentAverage",
          "seasonId",
          "isPreviousSeason"
        ],
        "type": "object"
      },
      "OpponentRankingsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/OpponentRankingsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/OpponentRanking"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "OptionsStruct": {
        "additionalProperties": false,
        "properties": {
          "batchSize": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "dryRun": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "forceRefresh": {
            "type": [
              "boolean",
              "null"
            ]
          }
        },
        "required": [
          "forceRefresh",
          "dryRun",
          "batchSize"
        ],
        "type": "object"
      },
      "OptionsStruct1": {
        "additionalProperties": false,
        "properties": {
          "batchDelay": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "batchSize": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "maxRetries": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "retryDelay": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "batchSize",
          "batchDelay",
          "maxRetries",
          "retryDelay"
        ],
        "type": "object"
      },
      "OutlierMarket": {
        "additionalProperties": false,
        "properties": {
          "away_team_id": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "awayteam": {
            "type": "string"
          },
          "best_odds": {
            "$ref": "#/components/schemas/OutlierMarketBestOddsStruct"
          },
          "bookmakers": {
            "items": {
              "$ref": "#/components/schemas/BookmakerOdd"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "home_team_id": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "hometeam": {
            "type": "string"
          },
          "line": {
            "type": "string"
          },
          "market": {
            "type": "string"
          },
          "market_id": {
            "type": "string"
          },
          "market_original": {
            "type": "string"
          },
          "market_type": {
            "type": "string"
          },
          "player_id": {
            "format": "int64",
            "type": "integer"
          },
          "playername": {
            "type": "string"
          }
        },
        "required": [
          "market_id",
          "player_id",
          "playername",
          "home_team_id",
          "away_team_id",
          "hometeam",
          "awayteam",
          "market",
          "market_original",
          "market_type",
          "line",
          "best_odds",
          "bookmakers"
        ],
        "type": "object"
      },
      "OutlierMarketBestOddsStruct": {
        "additionalProperties": false,
        "properties": {
          "highest": {
            "$ref": "#/components/schemas/BookmakerOdd"
          }
        },
        "required": [
          "highest"
        ],
        "type": "object"
      },
      "ParamsStruct": {
        "additionalProperties": false,
        "properties": {
          "args": {
            "additionalProperties": {},
            "type": "object"
          },
          "arguments": {
            "additionalProperties": {},
            "type": "object"
          },
          "name": {
            "type": "string"
          },
          "tool": {
            "type": "string"
          }
        },
        "required": [
          "tool",
          "name",
          "arguments",
          "args"
        ],
        "type": "object"
      },
      "PlayerAllOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PlayerAllOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "PlayerCardStatsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PlayerCardStatsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "games": {
            "items": {
              "additionalProperties": {},
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "gamesAnalyzed": {
            "format": "int64",
            "type": "integer"
          },
          "playerCards": {
            "additionalProperties": {},
            "type": "object"
          },
          "playerId": {
            "format": "int64",
            "type": "integer"
          },
          "playerPercentage": {},
          "teamCards": {
            "additionalProperties": {},
            "type": "object"
          },
          "teamId": {}
        },
        "required": [
          "games",
          "gamesAnalyzed",
          "playerCards",
          "playerId",
          "playerPercentage",
          "teamCards",
          "teamId"
        ],
        "type": "object"
      },
      "PlayerCreateCreatedBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PlayerCreateCreatedBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "team": {
            "$ref": "#/components/schemas/Players"
          }
        },
        "required": [
          "message",
          "team"
        ],
        "type": "object"
      },
      "PlayerCreateInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PlayerCreateInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "contractuntil": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "countrySlug": {
            "type": [
              "string",
              "null"
            ]
          },
          "dateofbirth": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "deceased": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "gender": {
            "type": [
              "string",
              "null"
            ]
          },
          "height": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "jerseynumber": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "marketvalue": {
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "position": {
            "type": [
              "string",
              "null"
            ]
          },
          "preferredfoot": {
            "type": [
              "string",
              "null"
            ]
          },
          "shortname": {
            "type": [
              "string",
              "null"
            ]
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          },
          "teamid": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "usercount": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "slug",
          "shortname",
          "position",
          "jerseynumber",
          "height",
          "preferredfoot",
          "usercount",
          "deceased",
          "gender",
          "countrySlug",
          "dateofbirth",
          "contractuntil",
          "marketvalue",
          "teamid"
        ],
        "type": "object"
      },
      "PlayerExpectedCardsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PlayerExpectedCardsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "bestLine": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "bestOverOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "bestUnderOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "bookmaker": {
            "type": [
              "string",
              "null"
            ]
          },
          "eventId": {
            "format": "int64",
            "type": "integer"
          },
          "expectedMins": {
            "format": "int64",
            "type": "integer"
          },
          "expectedPlayerCards": {
            "format": "double",
            "type": "number"
          },
          "gamesAnalyzed": {
            "format": "int64",
            "type": "integer"
          },
          "over05": {},
          "over15": {},
          "playerAvgCards": {
            "format": "double",
            "type": "number"
          },
          "playerId": {
            "format": "int64",
            "type": "integer"
          },
          "playerPercentage": {
            "format": "double",
            "type": "number"
          },
          "playerPercentageXmins": {
            "format": "double",
            "type": "number"
          },
          "teamAvgCards": {
            "format": "double",
            "type": "number"
          },
          "teamId": {
            "format": "int64",
            "type": "integer"
          },
          "teamLambda": {},
          "teamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "yellowCardOdds": {
            "items": {
              "$ref": "#/components/schemas/PlayerPrice"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "bestLine",
          "bestOverOdds",
          "bestUnderOdds",
          "bookmaker",
          "eventId",
          "expectedMins",
          "expectedPlayerCards",
          "gamesAnalyzed",
          "over05",
          "over15",
          "playerAvgCards",
          "playerId",
          "playerPercentage",
          "playerPercentageXmins",
          "teamAvgCards",
          "teamId",
          "teamLambda",
          "teamName",
          "yellowCardOdds"
        ],
        "type": "object"
      },
      "PlayerHeatmapFormationListOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PlayerHeatmapFormationListOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "PlayerHeatmapFormationOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PlayerHeatmapFormationOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {}
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "PlayerHeatmapOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PlayerHeatmapOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/HeatmapData"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "PlayerMinutes": {
        "additionalProperties": false,
        "properties": {
          "avg": {
            "format": "double",
            "type": "number"
          },
          "n": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "avg",
          "n"
        ],
        "type": "object"
      },
      "PlayerNextFixtureOddsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PlayerNextFixtureOddsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "additionalProperties": {},
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "meta": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "type": "object"
      },
      "PlayerPercentilesOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PlayerPercentilesOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "bucket": {},
          "dataSource": {
            "type": "string"
          },
          "deltas": {
            "additionalProperties": {},
            "type": "object"
          },
          "minMinutes": {
            "format": "int64",
            "type": "integer"
          },
          "poolSize": {
            "format": "int64",
            "type": "integer"
          },
          "position": {
            "type": "string"
          },
          "ranks": {
            "additionalProperties": {},
            "type": "object"
          },
          "reason": {
            "type": "string"
          },
          "window": {
            "type": "string"
          }
        },
        "required": [
          "bucket",
          "dataSource",
          "minMinutes",
          "position",
          "window"
        ],
        "type": "object"
      },
      "PlayerPerformanceOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PlayerPerformanceOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "PlayerPositionsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PlayerPositionsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "mostPlayed": {},
          "positions": {},
          "totalMatches": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "mostPlayed",
          "positions",
          "totalMatches"
        ],
        "type": "object"
      },
      "PlayerPrice": {
        "additionalProperties": false,
        "properties": {
          "bookmaker": {
            "type": "string"
          },
          "ev": {
            "format": "double",
            "type": "number"
          },
          "odds": {
            "format": "double",
            "type": "number"
          }
        },
        "required": [
          "bookmaker",
          "odds"
        ],
        "type": "object"
      },
      "PlayerStatResult": {
        "additionalProperties": false,
        "properties": {
          "avg_value": {
            "format": "double",
            "type": "number"
          },
          "games_count": {
            "format": "int64",
            "type": "integer"
          },
          "last_5_games": {
            "items": {
              "format": "double",
              "type": "number"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "avg_value",
          "games_count",
          "last_5_games"
        ],
        "type": "object"
      },
      "PlayerStatisticsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PlayerStatisticsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {},
          "dataSource": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "dataSource"
        ],
        "type": "object"
      },
      "PlayerStatsRulesBot": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PlayerStatsRulesBot.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "createdAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "isEnabled": {
            "type": "boolean"
          },
          "statisticKey": {
            "type": "string"
          },
          "statisticsLabel": {
            "type": "string"
          },
          "updatedAt": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "statisticsLabel",
          "statisticKey",
          "isEnabled",
          "createdAt",
          "updatedAt"
        ],
        "type": "object"
      },
      "Players": {
        "additionalProperties": false,
        "properties": {
          "contractuntil": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "countrySlug": {
            "type": [
              "string",
              "null"
            ]
          },
          "dateofbirth": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "deceased": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "gender": {
            "type": [
              "string",
              "null"
            ]
          },
          "height": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "internalId": {
            "format": "int64",
            "type": "integer"
          },
          "jerseynumber": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "marketvalue": {
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "nationalTeamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "position": {
            "type": [
              "string",
              "null"
            ]
          },
          "preferredfoot": {
            "type": [
              "string",
              "null"
            ]
          },
          "shortname": {
            "type": [
              "string",
              "null"
            ]
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          },
          "teamid": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "usercount": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "internalId",
          "name",
          "slug",
          "shortname",
          "position",
          "jerseynumber",
          "height",
          "preferredfoot",
          "usercount",
          "deceased",
          "gender",
          "countrySlug",
          "dateofbirth",
          "contractuntil",
          "marketvalue",
          "teamid",
          "nationalTeamId"
        ],
        "type": "object"
      },
      "PlayersFromScreenerOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PlayersFromScreenerOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "additionalProperties": {},
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "PositionChangeInfo": {
        "additionalProperties": false,
        "properties": {
          "currentPosition": {
            "type": "string"
          },
          "gamesAnalyzed": {
            "format": "int64",
            "type": "integer"
          },
          "isPositionChange": {
            "type": "boolean"
          },
          "rawHistory": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "usualPosition": {
            "type": "string"
          }
        },
        "required": [
          "isPositionChange",
          "usualPosition",
          "currentPosition",
          "rawHistory",
          "gamesAnalyzed"
        ],
        "type": "object"
      },
      "PositionRule": {
        "additionalProperties": false,
        "properties": {
          "createdAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "fromPosition": {
            "type": "string"
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "isEnabled": {
            "type": "boolean"
          },
          "leagueGroupId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "leagueGroupName": {
            "type": [
              "string",
              "null"
            ]
          },
          "ruleType": {
            "type": "string"
          },
          "toPosition": {
            "type": "string"
          },
          "updatedAt": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "leagueGroupName",
          "id",
          "fromPosition",
          "toPosition",
          "ruleType",
          "leagueGroupId",
          "isEnabled",
          "createdAt",
          "updatedAt"
        ],
        "type": "object"
      },
      "PropsHunterOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PropsHunterOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "players": {
            "items": {},
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "message",
          "players"
        ],
        "type": "object"
      },
      "PropsOutliersOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PropsOutliersOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/OutlierMarket"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pagination": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "type": "object"
      },
      "PropsPlayerDataInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PropsPlayerDataInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "players": {
            "items": {
              "format": "int64",
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "selectedLeagueOnly": {
            "type": "boolean"
          },
          "statTypes": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "tournamentId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "players",
          "statTypes",
          "selectedLeagueOnly",
          "tournamentId"
        ],
        "type": "object"
      },
      "PropsPlayerDataOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PropsPlayerDataOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "PropsPlayerStatsBatchInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PropsPlayerStatsBatchInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "gamesCount": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "requests": {
            "items": {
              "$ref": "#/components/schemas/Item3"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "requests",
          "gamesCount"
        ],
        "type": "object"
      },
      "PropsPlayerStatsBatchOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PropsPlayerStatsBatchOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "activityInfo": {
            "additionalProperties": {
              "$ref": "#/components/schemas/ActivityInfo"
            },
            "type": "object"
          },
          "cached": {
            "format": "int64",
            "type": "integer"
          },
          "fetched": {
            "format": "int64",
            "type": "integer"
          },
          "stats": {
            "additionalProperties": {
              "$ref": "#/components/schemas/PlayerStatResult"
            },
            "type": "object"
          }
        },
        "required": [
          "activityInfo",
          "cached",
          "fetched",
          "stats"
        ],
        "type": "object"
      },
      "PropsSavedFiltersCreateCreatedBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PropsSavedFiltersCreateCreatedBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/SavedFilterView"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "PropsSavedFiltersCreateInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PropsSavedFiltersCreateInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "filters": {},
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "type": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "name",
          "type",
          "filters"
        ],
        "type": "object"
      },
      "PropsSavedFiltersListOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PropsSavedFiltersListOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/SavedFilterView"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "PropsSavedFiltersUpdateInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PropsSavedFiltersUpdateInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "filters": {},
          "id": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "filters"
        ],
        "type": "object"
      },
      "PropsSavedFiltersUpdateOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PropsSavedFiltersUpdateOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/SavedFilterView"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "PropsScreenerGetOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PropsScreenerGetOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "additionalProperties": {},
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pagination": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "type": "object"
      },
      "PropsScreenerPostOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PropsScreenerPostOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "additionalProperties": {},
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pagination": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "type": "object"
      },
      "PropsTeamScreenerByEventOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PropsTeamScreenerByEventOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/TeamByEventRow"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "PropsTeamScreenerGetOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PropsTeamScreenerGetOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/TeamScreenerRow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pagination": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "type": "object"
      },
      "PropsTeamScreenerPostOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PropsTeamScreenerPostOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/TeamScreenerRow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pagination": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "type": "object"
      },
      "PropsTeamTrendsGetOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PropsTeamTrendsGetOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/TeamTrendResult"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pagination": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "type": "object"
      },
      "PropsTeamTrendsPostOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/PropsTeamTrendsPostOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/TeamTrendResult"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pagination": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "type": "object"
      },
      "RecentMatch": {
        "additionalProperties": false,
        "properties": {
          "away_goals": {
            "format": "int64",
            "type": "integer"
          },
          "away_odds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "away_shots": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "away_shots_on_target": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "away_team": {
            "type": "string"
          },
          "date": {
            "type": "string"
          },
          "draw_odds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "home_goals": {
            "format": "int64",
            "type": "integer"
          },
          "home_odds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "home_shots": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "home_shots_on_target": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "home_team": {
            "type": "string"
          }
        },
        "required": [
          "date",
          "home_team",
          "away_team",
          "home_shots",
          "away_shots",
          "home_shots_on_target",
          "away_shots_on_target",
          "home_goals",
          "away_goals",
          "home_odds",
          "draw_odds",
          "away_odds"
        ],
        "type": "object"
      },
      "RefereeBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/RefereeBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "countrySlug": {
            "type": [
              "string",
              "null"
            ]
          },
          "firstLeagueDebutTimestamp": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "games": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "slug",
          "countrySlug",
          "games",
          "firstLeagueDebutTimestamp"
        ],
        "type": "object"
      },
      "RefereeCreateCreatedBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/RefereeCreateCreatedBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "message": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "message",
          "name"
        ],
        "type": "object"
      },
      "RefereeGetOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/RefereeGetOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "RefereeIncidentsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/RefereeIncidentsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "RefereeStatisticsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/RefereeStatisticsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "RefereeStatisticsUpsertInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/RefereeStatisticsUpsertInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "appearances": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "penalties": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "redCards": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "uniqueTournamentId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "yellowCards": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "yellowRedCards": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "uniqueTournamentId",
          "appearances",
          "yellowCards",
          "redCards",
          "yellowRedCards",
          "penalties"
        ],
        "type": "object"
      },
      "Referees": {
        "additionalProperties": false,
        "properties": {
          "countrySlug": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "firstLeagueDebutTimestamp": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "games": {
            "format": "int64",
            "type": "integer"
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "redCards": {
            "format": "int64",
            "type": "integer"
          },
          "slug": {
            "type": "string"
          },
          "updatedAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "yellowCards": {
            "format": "int64",
            "type": "integer"
          },
          "yellowRedCards": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "name",
          "slug",
          "yellowCards",
          "redCards",
          "yellowRedCards",
          "games",
          "firstLeagueDebutTimestamp",
          "createdAt",
          "updatedAt",
          "countrySlug"
        ],
        "type": "object"
      },
      "RefereesListOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/RefereesListOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "additionalProperties": {},
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pagination": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "type": "object"
      },
      "RoundRow": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "slug"
        ],
        "type": "object"
      },
      "SavedFilterView": {
        "additionalProperties": false,
        "properties": {
          "createdAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "filters": {},
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "updatedAt": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "type",
          "filters",
          "createdAt",
          "updatedAt"
        ],
        "type": "object"
      },
      "ScreenerParams": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ScreenerParams.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "bookmakers": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "games": {
            "items": {
              "format": "double",
              "type": "number"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "hitRateOption": {
            "type": "string"
          },
          "hitRateRange": {
            "$ref": "#/components/schemas/ScreenerParamsHitRateRangeStruct"
          },
          "includeStale": {
            "type": "boolean"
          },
          "lineupFilterType": {
            "type": "string"
          },
          "minLastGameWithTeam": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "oddsRange": {
            "$ref": "#/components/schemas/ScreenerParamsOddsRangeStruct"
          },
          "page": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "pageSize": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "players": {
            "items": {
              "format": "double",
              "type": "number"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "selectedDates": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "sorting": {
            "$ref": "#/components/schemas/ScreenerParamsSortingStruct"
          },
          "staleDataThresholdHours": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "statTypes": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "type": {
            "type": "string"
          },
          "useMinLastGameWithTeam": {
            "type": "boolean"
          },
          "useSupersub": {
            "type": "boolean"
          }
        },
        "required": [
          "games",
          "page",
          "pageSize",
          "players",
          "statTypes",
          "type",
          "hitRateOption",
          "hitRateRange",
          "oddsRange",
          "sorting",
          "includeStale",
          "staleDataThresholdHours",
          "useSupersub",
          "useMinLastGameWithTeam",
          "minLastGameWithTeam",
          "lineupFilterType",
          "selectedDates",
          "bookmakers"
        ],
        "type": "object"
      },
      "ScreenerParamsHitRateRangeStruct": {
        "additionalProperties": false,
        "properties": {
          "from": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "to": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "from",
          "to"
        ],
        "type": "object"
      },
      "ScreenerParamsOddsRangeStruct": {
        "additionalProperties": false,
        "properties": {
          "from": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "to": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "from",
          "to"
        ],
        "type": "object"
      },
      "ScreenerParamsSortingStruct": {
        "additionalProperties": false,
        "properties": {
          "column": {
            "type": "string"
          },
          "direction": {
            "type": "string"
          }
        },
        "required": [
          "column",
          "direction"
        ],
        "type": "object"
      },
      "SearchFixture": {
        "additionalProperties": false,
        "properties": {
          "awayTeamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "awayTeamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "awayTeamSlug": {
            "type": [
              "string",
              "null"
            ]
          },
          "categoryFlag": {
            "type": [
              "string",
              "null"
            ]
          },
          "homeTeamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "homeTeamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "homeTeamSlug": {
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "internalId": {
            "format": "int64",
            "type": "integer"
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "type": [
              "string",
              "null"
            ]
          },
          "timeStartTimestamp": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "tournamentId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "tournamentName": {
            "type": [
              "string",
              "null"
            ]
          },
          "tournamentSlug": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "internalId",
          "slug",
          "homeTeamName",
          "awayTeamName",
          "homeTeamSlug",
          "awayTeamSlug",
          "homeTeamId",
          "awayTeamId",
          "timeStartTimestamp",
          "status",
          "tournamentId",
          "tournamentName",
          "tournamentSlug",
          "categoryFlag"
        ],
        "type": "object"
      },
      "SearchOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/SearchOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "fixtures": {
            "items": {
              "$ref": "#/components/schemas/SearchFixture"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "players": {
            "items": {
              "$ref": "#/components/schemas/SearchPlayer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "teams": {
            "items": {
              "$ref": "#/components/schemas/SearchTeam"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "tournaments": {
            "items": {
              "$ref": "#/components/schemas/SearchTournament"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "fixtures",
          "players",
          "teams",
          "tournaments"
        ],
        "type": "object"
      },
      "SearchPlayer": {
        "additionalProperties": false,
        "properties": {
          "countrySlug": {
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "internalId": {
            "format": "int64",
            "type": "integer"
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "internalId",
          "name",
          "slug",
          "countrySlug"
        ],
        "type": "object"
      },
      "SearchTeam": {
        "additionalProperties": false,
        "properties": {
          "categoryFlag": {
            "type": [
              "string",
              "null"
            ]
          },
          "countrySlug": {
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "internalId": {
            "format": "int64",
            "type": "integer"
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "internalId",
          "name",
          "slug",
          "countrySlug",
          "categoryFlag"
        ],
        "type": "object"
      },
      "SearchTournament": {
        "additionalProperties": false,
        "properties": {
          "categoryFlag": {
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "uniqueTournamentId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "uniqueTournamentId",
          "name",
          "slug",
          "categoryFlag"
        ],
        "type": "object"
      },
      "SeasonBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/SeasonBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "editor": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "tournamentId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "year": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "year",
          "editor",
          "tournamentId"
        ],
        "type": "object"
      },
      "SeasonCreateCreatedBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/SeasonCreateCreatedBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "message": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "message",
          "name"
        ],
        "type": "object"
      },
      "Seasons": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/Seasons.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "editor": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "tournamentId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "uniqueTournamentId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "year": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "name",
          "year",
          "editor",
          "tournamentId",
          "uniqueTournamentId"
        ],
        "type": "object"
      },
      "SorareInsideLineups": {
        "additionalProperties": false,
        "properties": {
          "analysisGeneratedAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "analysisModel": {
            "type": [
              "string",
              "null"
            ]
          },
          "awayAnalysis": {
            "type": [
              "string",
              "null"
            ]
          },
          "awayReliability": {
            "type": [
              "string",
              "null"
            ]
          },
          "awayTeamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "awayTeamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "competition": {
            "type": [
              "string",
              "null"
            ]
          },
          "competitionId": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": "string"
          },
          "gameweek": {
            "type": "string"
          },
          "homeAnalysis": {
            "type": [
              "string",
              "null"
            ]
          },
          "homeReliability": {
            "type": [
              "string",
              "null"
            ]
          },
          "homeTeamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "homeTeamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "kickoffAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "lineupsFetchedAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "matchId": {
            "type": "string"
          },
          "payload": {
            "contentEncoding": "base64",
            "type": "string"
          },
          "region": {
            "type": [
              "string",
              "null"
            ]
          },
          "resolutionMethod": {
            "type": [
              "string",
              "null"
            ]
          },
          "resolutionScore": {
            "type": [
              "string",
              "null"
            ]
          },
          "sorareGameId": {
            "type": [
              "string",
              "null"
            ]
          },
          "sorareMatchKey": {
            "type": [
              "string",
              "null"
            ]
          },
          "updatedAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "gameweek",
          "matchId",
          "sorareMatchKey",
          "sorareGameId",
          "homeTeamId",
          "awayTeamId",
          "homeTeamName",
          "awayTeamName",
          "competition",
          "competitionId",
          "region",
          "kickoffAt",
          "homeReliability",
          "awayReliability",
          "homeAnalysis",
          "awayAnalysis",
          "analysisModel",
          "analysisGeneratedAt",
          "payload",
          "lineupsFetchedAt",
          "resolutionMethod",
          "resolutionScore",
          "createdAt",
          "updatedAt"
        ],
        "type": "object"
      },
      "StripeApplyRetentionDiscountOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/StripeApplyRetentionDiscountOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "success": {
            "type": "boolean"
          }
        },
        "required": [
          "success"
        ],
        "type": "object"
      },
      "StripeCancelSubscriptionOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/StripeCancelSubscriptionOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "success": {
            "type": "boolean"
          }
        },
        "required": [
          "success"
        ],
        "type": "object"
      },
      "StripeCreateCheckoutSessionInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/StripeCreateCheckoutSessionInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "priceId": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "priceId"
        ],
        "type": "object"
      },
      "StripeCreateCheckoutSessionOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/StripeCreateCheckoutSessionOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "url"
        ],
        "type": "object"
      },
      "StripeCreatePortalSessionOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/StripeCreatePortalSessionOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "url"
        ],
        "type": "object"
      },
      "StripePauseSubscriptionInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/StripePauseSubscriptionInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "duration": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "duration"
        ],
        "type": "object"
      },
      "StripePauseSubscriptionOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/StripePauseSubscriptionOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "resumesAt": {
            "type": "string"
          },
          "success": {
            "type": "boolean"
          }
        },
        "required": [
          "resumesAt",
          "success"
        ],
        "type": "object"
      },
      "StripeResumePauseOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/StripeResumePauseOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "success": {
            "type": "boolean"
          }
        },
        "required": [
          "success"
        ],
        "type": "object"
      },
      "StripeSubscriptionStatusOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/StripeSubscriptionStatusOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "subscription": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "subscription"
        ],
        "type": "object"
      },
      "StripeWebhookOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/StripeWebhookOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "received": {
            "type": "boolean"
          }
        },
        "required": [
          "received"
        ],
        "type": "object"
      },
      "SubSplit": {
        "additionalProperties": false,
        "properties": {
          "subPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "subStat": {
            "format": "double",
            "type": "number"
          },
          "totalStat": {
            "format": "double",
            "type": "number"
          }
        },
        "required": [
          "subPct",
          "subStat",
          "totalStat"
        ],
        "type": "object"
      },
      "SubSplitResponse": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/SubSplitResponse.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "matches": {
            "format": "int64",
            "type": "integer"
          },
          "playerMinutes": {
            "additionalProperties": {
              "$ref": "#/components/schemas/PlayerMinutes"
            },
            "type": "object"
          },
          "splits": {
            "additionalProperties": {
              "$ref": "#/components/schemas/SubSplit"
            },
            "type": "object"
          },
          "teamId": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "teamId",
          "matches",
          "splits",
          "playerMinutes"
        ],
        "type": "object"
      },
      "SuggestionsInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/SuggestionsInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "messages": {
            "items": {
              "$ref": "#/components/schemas/UiMessage"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pageContext": {}
        },
        "required": [
          "messages",
          "pageContext"
        ],
        "type": "object"
      },
      "SuggestionsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/SuggestionsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "suggestions": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "suggestions"
        ],
        "type": "object"
      },
      "SystemStats": {
        "additionalProperties": false,
        "properties": {
          "apiRequests": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "apiResponses": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "createdAt": {
            "format": "date-time",
            "type": "string"
          },
          "data": {
            "contentEncoding": "base64",
            "type": "string"
          },
          "error": {
            "type": [
              "string",
              "null"
            ]
          },
          "eventType": {
            "type": "string"
          },
          "failedApiCalls": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "messageId": {
            "type": "string"
          },
          "processingEndTime": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "processingStartTime": {
            "format": "date-time",
            "type": [
              "string",
              "null"
            ]
          },
          "rescheduledInfo": {
            "contentEncoding": "base64",
            "type": "string"
          },
          "retryCount": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "status": {
            "type": "string"
          },
          "successfulApiCalls": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "totalApiCalls": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "updatedAt": {
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "id",
          "messageId",
          "eventType",
          "status",
          "data",
          "error",
          "processingStartTime",
          "processingEndTime",
          "retryCount",
          "apiRequests",
          "apiResponses",
          "totalApiCalls",
          "successfulApiCalls",
          "failedApiCalls",
          "createdAt",
          "updatedAt",
          "rescheduledInfo"
        ],
        "type": "object"
      },
      "TeamBettingHistoryOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TeamBettingHistoryOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "brackets": {
            "items": {
              "additionalProperties": {},
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "filters": {
            "additionalProperties": {},
            "type": "object"
          },
          "matches": {
            "items": {
              "additionalProperties": {},
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "summary": {
            "additionalProperties": {},
            "type": "object"
          },
          "team": {
            "$ref": "#/components/schemas/TeamBettingHistoryOKBodyTeamStruct"
          }
        },
        "required": [
          "brackets",
          "filters",
          "matches",
          "summary",
          "team"
        ],
        "type": "object"
      },
      "TeamBettingHistoryOKBodyTeamStruct": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "slug"
        ],
        "type": "object"
      },
      "TeamByEventBookmaker": {
        "additionalProperties": false,
        "properties": {
          "bookmakerId": {
            "format": "int64",
            "type": "integer"
          },
          "bookmakerName": {
            "type": "string"
          },
          "marketName": {
            "type": "string"
          },
          "odds": {
            "items": {
              "additionalProperties": {},
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "bookmakerId",
          "bookmakerName",
          "marketName",
          "odds"
        ],
        "type": "object"
      },
      "TeamByEventRow": {
        "additionalProperties": false,
        "properties": {
          "bookmakers": {
            "items": {
              "$ref": "#/components/schemas/TeamByEventBookmaker"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "eventId": {
            "format": "int64",
            "type": "integer"
          },
          "eventTimestamp": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "hitRateL10": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "hitRateL15": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "hitRateL5": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "leagueId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "leagueName": {
            "type": [
              "string",
              "null"
            ]
          },
          "line": {
            "format": "double",
            "type": "number"
          },
          "oddsType": {
            "type": "string"
          },
          "opponentHitRateL10": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "opponentHitRateL15": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "opponentHitRateL5": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "opponentTeamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "opponentTeamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "opponentTeamSlug": {
            "type": [
              "string",
              "null"
            ]
          },
          "statDisplay": {
            "type": "string"
          },
          "statType": {
            "type": "string"
          },
          "teamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "teamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "teamSlug": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "teamId",
          "teamName",
          "teamSlug",
          "opponentTeamId",
          "opponentTeamName",
          "opponentTeamSlug",
          "eventId",
          "eventTimestamp",
          "statType",
          "statDisplay",
          "line",
          "oddsType",
          "leagueId",
          "leagueName",
          "bookmakers",
          "hitRateL5",
          "hitRateL10",
          "hitRateL15",
          "opponentHitRateL5",
          "opponentHitRateL10",
          "opponentHitRateL15"
        ],
        "type": "object"
      },
      "TeamCreateCreatedBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TeamCreateCreatedBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "team": {
            "$ref": "#/components/schemas/Teams"
          }
        },
        "required": [
          "message",
          "team"
        ],
        "type": "object"
      },
      "TeamCreateInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TeamCreateInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "categoryId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "countrySlug": {
            "type": [
              "string",
              "null"
            ]
          },
          "foundationdate": {
            "type": [
              "string",
              "null"
            ]
          },
          "gender": {
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "national": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "shortname": {
            "type": [
              "string",
              "null"
            ]
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          },
          "teamcolorsprimary": {
            "type": [
              "string",
              "null"
            ]
          },
          "teamcolorssecondary": {
            "type": [
              "string",
              "null"
            ]
          },
          "teamcolorstext": {
            "type": [
              "string",
              "null"
            ]
          },
          "tournamentId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "usercount": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "venueId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "slug",
          "shortname",
          "gender",
          "tournamentId",
          "usercount",
          "teamcolorsprimary",
          "teamcolorssecondary",
          "teamcolorstext",
          "foundationdate",
          "countrySlug",
          "venueId",
          "national",
          "categoryId"
        ],
        "type": "object"
      },
      "TeamDetailOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TeamDetailOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "additionalProperties": {},
            "type": "object"
          },
          "seoData": {
            "$ref": "#/components/schemas/TeamSEOData"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "TeamEventStatisticsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TeamEventStatisticsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/Item4"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "TeamEventsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TeamEventsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "TeamExpectedCards": {
        "additionalProperties": false,
        "properties": {
          "allLines": {
            "items": {
              "$ref": "#/components/schemas/CardLine"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "bestLine": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "lambda": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "overOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "teamId": {
            "format": "int64",
            "type": "integer"
          },
          "teamName": {
            "type": "string"
          },
          "underOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "teamId",
          "teamName",
          "lambda",
          "bestLine",
          "overOdds",
          "underOdds",
          "allLines"
        ],
        "type": "object"
      },
      "TeamFixturesWithOddsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TeamFixturesWithOddsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "TeamLastFormationOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TeamLastFormationOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/TeamLastFormationOKBodyDataStruct"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "TeamLastFormationOKBodyDataStruct": {
        "additionalProperties": false,
        "properties": {
          "awayScoreCurrent": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "awayTeamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "awayTeamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "eventId": {
            "format": "int64",
            "type": "integer"
          },
          "formation": {
            "type": [
              "string",
              "null"
            ]
          },
          "homeScoreCurrent": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "homeTeamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "homeTeamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "timeStartTimestamp": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "tournamentName": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "formation",
          "eventId",
          "timeStartTimestamp",
          "homeTeamId",
          "awayTeamId",
          "homeTeamName",
          "awayTeamName",
          "homeScoreCurrent",
          "awayScoreCurrent",
          "tournamentName"
        ],
        "type": "object"
      },
      "TeamLastGamesOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TeamLastGamesOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pagination": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "type": "object"
      },
      "TeamLastLineupOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TeamLastLineupOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/Item5"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "eventId": {
            "format": "int64",
            "type": "integer"
          },
          "timestamp": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "TeamPerformanceDataCollectionOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TeamPerformanceDataCollectionOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "additionalProperties": {},
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "TeamPerformanceOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TeamPerformanceOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "additionalProperties": {},
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "TeamPlayersAGSCollectionOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TeamPlayersAGSCollectionOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "currentFixturePlayerStats": {
            "items": {
              "format": "int64",
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "data": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "events": {
            "items": {},
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "currentFixturePlayerStats",
          "data",
          "events"
        ],
        "type": "object"
      },
      "TeamPlayersPerformanceOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TeamPlayersPerformanceOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "currentFixturePlayerStats": {
            "items": {
              "format": "int64",
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "data": {
            "items": {
              "additionalProperties": {},
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "events": {
            "items": {},
            "type": [
              "array",
              "null"
            ]
          },
          "unavailability": {
            "items": {
              "additionalProperties": {},
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "currentFixturePlayerStats",
          "data",
          "events",
          "unavailability"
        ],
        "type": "object"
      },
      "TeamRosterOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TeamRosterOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "additionalProperties": {},
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "TeamSEOData": {
        "additionalProperties": false,
        "properties": {
          "averageBallPossession": {
            "type": [
              "string",
              "null"
            ]
          },
          "cleanSheets": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "draws": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "goalsConceded": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "goalsScored": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "losses": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "matches": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "points": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "position": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "scoresAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "scoresFor": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "seasonId": {
            "format": "int64",
            "type": "integer"
          },
          "seasonName": {
            "type": [
              "string",
              "null"
            ]
          },
          "seasonYear": {
            "type": [
              "string",
              "null"
            ]
          },
          "shotsOnTarget": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "topScorer": {
            "$ref": "#/components/schemas/TeamTopScorer"
          },
          "wins": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "seasonId",
          "seasonName",
          "seasonYear",
          "position",
          "matches",
          "wins",
          "draws",
          "losses",
          "points",
          "scoresFor",
          "scoresAgainst",
          "goalsScored",
          "goalsConceded",
          "cleanSheets",
          "shotsOnTarget",
          "averageBallPossession",
          "topScorer"
        ],
        "type": "object"
      },
      "TeamScreenerFilters": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TeamScreenerFilters.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "eventIds": {
            "items": {
              "format": "double",
              "type": "number"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "leagueIds": {
            "items": {
              "format": "double",
              "type": "number"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "limit": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "maxHitRateAllL10": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "maxHitRateAllL15": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "maxHitRateAllL5": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "maxHitRateL10": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "maxHitRateL15": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "maxHitRateL5": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "maxOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "maxOpponentHitRateAllL10": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "maxOpponentHitRateAllL15": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "maxOpponentHitRateAllL5": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "maxOpponentHitRateL10": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "maxOpponentHitRateL15": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "maxOpponentHitRateL5": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "minHitRateAllL10": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "minHitRateAllL15": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "minHitRateAllL5": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "minHitRateL10": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "minHitRateL15": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "minHitRateL5": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "minOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "minOpponentHitRateAllL10": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "minOpponentHitRateAllL15": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "minOpponentHitRateAllL5": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "minOpponentHitRateL10": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "minOpponentHitRateL15": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "minOpponentHitRateL5": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "oddsType": {
            "type": "string"
          },
          "offset": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "selectedDates": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "sortColumn": {
            "type": "string"
          },
          "sortDirection": {
            "type": "string"
          },
          "statTypes": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "teamIds": {
            "items": {
              "format": "double",
              "type": "number"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "eventIds",
          "leagueIds",
          "statTypes",
          "teamIds",
          "oddsType",
          "minOdds",
          "maxOdds",
          "minHitRateL5",
          "maxHitRateL5",
          "minHitRateL10",
          "maxHitRateL10",
          "minHitRateL15",
          "maxHitRateL15",
          "minOpponentHitRateL5",
          "maxOpponentHitRateL5",
          "minOpponentHitRateL10",
          "maxOpponentHitRateL10",
          "minOpponentHitRateL15",
          "maxOpponentHitRateL15",
          "minHitRateAllL5",
          "maxHitRateAllL5",
          "minHitRateAllL10",
          "maxHitRateAllL10",
          "minHitRateAllL15",
          "maxHitRateAllL15",
          "minOpponentHitRateAllL5",
          "maxOpponentHitRateAllL5",
          "minOpponentHitRateAllL10",
          "maxOpponentHitRateAllL10",
          "minOpponentHitRateAllL15",
          "maxOpponentHitRateAllL15",
          "selectedDates",
          "sortColumn",
          "sortDirection",
          "limit",
          "offset"
        ],
        "type": "object"
      },
      "TeamScreenerRow": {
        "additionalProperties": false,
        "properties": {
          "bookmakers": {
            "contentEncoding": "base64",
            "type": "string"
          },
          "eventId": {
            "format": "int64",
            "type": "integer"
          },
          "eventTimestamp": {
            "format": "int64",
            "type": "integer"
          },
          "hitRateAllL10": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "hitRateAllL15": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "hitRateAllL5": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "hitRateL10": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "hitRateL15": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "hitRateL5": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "leagueId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "leagueName": {
            "type": [
              "string",
              "null"
            ]
          },
          "line": {
            "type": [
              "string",
              "null"
            ]
          },
          "oddsType": {
            "type": "string"
          },
          "opponentHitRateAllL10": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "opponentHitRateAllL15": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "opponentHitRateAllL5": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "opponentHitRateL10": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "opponentHitRateL15": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "opponentHitRateL5": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "opponentTeamId": {
            "format": "int64",
            "type": "integer"
          },
          "opponentTeamName": {
            "type": "string"
          },
          "opponentTeamSlug": {
            "type": "string"
          },
          "statDisplay": {
            "type": "string"
          },
          "statType": {
            "type": "string"
          },
          "teamId": {
            "format": "int64",
            "type": "integer"
          },
          "teamName": {
            "type": "string"
          },
          "teamSlug": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "teamId",
          "teamName",
          "teamSlug",
          "opponentTeamId",
          "opponentTeamName",
          "opponentTeamSlug",
          "eventId",
          "eventTimestamp",
          "statType",
          "statDisplay",
          "line",
          "oddsType",
          "leagueId",
          "leagueName",
          "bookmakers",
          "hitRateL5",
          "hitRateL10",
          "hitRateL15",
          "opponentHitRateL5",
          "opponentHitRateL10",
          "opponentHitRateL15",
          "hitRateAllL5",
          "hitRateAllL10",
          "hitRateAllL15",
          "opponentHitRateAllL5",
          "opponentHitRateAllL10",
          "opponentHitRateAllL15"
        ],
        "type": "object"
      },
      "TeamShotsGLMPredictionsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TeamShotsGLMPredictionsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/GlmMatch"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pagination": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "type": "object"
      },
      "TeamStatistics": {
        "additionalProperties": false,
        "properties": {
          "accurateCrosses": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "accurateCrossesPercentage": {
            "type": [
              "string",
              "null"
            ]
          },
          "accurateFinalThirdPassesAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "accurateLongBalls": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "accurateLongBallsPercentage": {
            "type": [
              "string",
              "null"
            ]
          },
          "accurateOppositionHalfPasses": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "accurateOppositionHalfPassesAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "accurateOppositionHalfPassesPercentage": {
            "type": [
              "string",
              "null"
            ]
          },
          "accurateOwnHalfPasses": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "accurateOwnHalfPassesAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "accurateOwnHalfPassesPercentage": {
            "type": [
              "string",
              "null"
            ]
          },
          "accuratePasses": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "accuratePassesAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "accuratePassesPercentage": {
            "type": [
              "string",
              "null"
            ]
          },
          "aerialDuelsWon": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "aerialDuelsWonPercentage": {
            "type": [
              "string",
              "null"
            ]
          },
          "assists": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "averageBallPossession": {
            "type": [
              "string",
              "null"
            ]
          },
          "avgRating": {
            "type": [
              "string",
              "null"
            ]
          },
          "awardedMatches": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "ballRecovery": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "bigChances": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "bigChancesAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "bigChancesCreated": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "bigChancesCreatedAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "bigChancesMissed": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "bigChancesMissedAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "blockedScoringAttempt": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "blockedScoringAttemptAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "cleanSheets": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "clearances": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "clearancesAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "clearancesOffLine": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "corners": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "cornersAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "crossesSuccessfulAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "crossesTotalAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "dribbleAttempts": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "dribbleAttemptsTotalAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "dribbleAttemptsWonAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "duelsWon": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "duelsWonPercentage": {
            "type": [
              "string",
              "null"
            ]
          },
          "errorsLeadingToGoal": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "errorsLeadingToGoalAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "errorsLeadingToShot": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "errorsLeadingToShotAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "fastBreakGoals": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "fastBreakShots": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "fastBreaks": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "fouls": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "freeKickGoals": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "freeKickShots": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "freeKicks": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "goalKicks": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "goalsConceded": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "goalsFromInsideTheBox": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "goalsFromOutsideTheBox": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "goalsScored": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "groundDuelsWon": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "groundDuelsWonPercentage": {
            "type": [
              "string",
              "null"
            ]
          },
          "headedGoals": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "hitWoodwork": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "hitWoodworkAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "interceptions": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "interceptionsAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "keyPassesAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "lastManTackles": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "leftFootGoals": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "longBallsSuccessfulAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "longBallsTotalAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "matches": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "offsides": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "offsidesAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "oppositionHalfPassesTotalAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "ownGoals": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "ownHalfPassesTotalAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "penaltiesCommitted": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "penaltiesTaken": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "penaltyGoals": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "penaltyGoalsConceded": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "possessionLost": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "redCards": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "redCardsAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "rightFootGoals": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "saves": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "seasonId": {
            "format": "int64",
            "type": "integer"
          },
          "shots": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "shotsAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "shotsBlockedAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "shotsFromInsideTheBox": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "shotsFromInsideTheBoxAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "shotsFromOutsideTheBox": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "shotsFromOutsideTheBoxAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "shotsOffTarget": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "shotsOffTargetAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "shotsOnTarget": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "shotsOnTargetAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "successfulDribbles": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "tackles": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "tacklesAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "teamId": {
            "format": "int64",
            "type": "integer"
          },
          "throwIns": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "totalAerialDuels": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "totalCrosses": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "totalDuels": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "totalFinalThirdPassesAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "totalGroundDuels": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "totalLongBalls": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "totalOppositionHalfPasses": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "totalOwnHalfPasses": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "totalPasses": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "totalPassesAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "yellowCards": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "yellowCardsAgainst": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "yellowRedCards": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "teamId",
          "seasonId",
          "matches",
          "awardedMatches",
          "goalsScored",
          "goalsConceded",
          "ownGoals",
          "assists",
          "shots",
          "penaltyGoals",
          "penaltiesTaken",
          "freeKickGoals",
          "freeKickShots",
          "goalsFromInsideTheBox",
          "goalsFromOutsideTheBox",
          "shotsFromInsideTheBox",
          "shotsFromOutsideTheBox",
          "headedGoals",
          "leftFootGoals",
          "rightFootGoals",
          "bigChances",
          "bigChancesCreated",
          "bigChancesMissed",
          "shotsOnTarget",
          "shotsOffTarget",
          "blockedScoringAttempt",
          "successfulDribbles",
          "dribbleAttempts",
          "corners",
          "hitWoodwork",
          "fastBreaks",
          "fastBreakGoals",
          "fastBreakShots",
          "averageBallPossession",
          "totalPasses",
          "accuratePasses",
          "accuratePassesPercentage",
          "totalOwnHalfPasses",
          "accurateOwnHalfPasses",
          "accurateOwnHalfPassesPercentage",
          "totalOppositionHalfPasses",
          "accurateOppositionHalfPasses",
          "accurateOppositionHalfPassesPercentage",
          "totalLongBalls",
          "accurateLongBalls",
          "accurateLongBallsPercentage",
          "totalCrosses",
          "accurateCrosses",
          "accurateCrossesPercentage",
          "cleanSheets",
          "tackles",
          "interceptions",
          "saves",
          "errorsLeadingToGoal",
          "errorsLeadingToShot",
          "penaltiesCommitted",
          "penaltyGoalsConceded",
          "clearances",
          "clearancesOffLine",
          "lastManTackles",
          "totalDuels",
          "duelsWon",
          "duelsWonPercentage",
          "totalGroundDuels",
          "groundDuelsWon",
          "groundDuelsWonPercentage",
          "totalAerialDuels",
          "aerialDuelsWon",
          "aerialDuelsWonPercentage",
          "possessionLost",
          "offsides",
          "fouls",
          "yellowCards",
          "yellowRedCards",
          "redCards",
          "avgRating",
          "accurateFinalThirdPassesAgainst",
          "accurateOppositionHalfPassesAgainst",
          "accurateOwnHalfPassesAgainst",
          "accuratePassesAgainst",
          "bigChancesAgainst",
          "bigChancesCreatedAgainst",
          "bigChancesMissedAgainst",
          "clearancesAgainst",
          "cornersAgainst",
          "crossesSuccessfulAgainst",
          "crossesTotalAgainst",
          "dribbleAttemptsTotalAgainst",
          "dribbleAttemptsWonAgainst",
          "errorsLeadingToGoalAgainst",
          "errorsLeadingToShotAgainst",
          "hitWoodworkAgainst",
          "interceptionsAgainst",
          "keyPassesAgainst",
          "longBallsSuccessfulAgainst",
          "longBallsTotalAgainst",
          "offsidesAgainst",
          "redCardsAgainst",
          "shotsAgainst",
          "shotsBlockedAgainst",
          "shotsFromInsideTheBoxAgainst",
          "shotsFromOutsideTheBoxAgainst",
          "shotsOffTargetAgainst",
          "shotsOnTargetAgainst",
          "blockedScoringAttemptAgainst",
          "tacklesAgainst",
          "totalFinalThirdPassesAgainst",
          "oppositionHalfPassesTotalAgainst",
          "ownHalfPassesTotalAgainst",
          "totalPassesAgainst",
          "yellowCardsAgainst",
          "throwIns",
          "goalKicks",
          "ballRecovery",
          "freeKicks"
        ],
        "type": "object"
      },
      "TeamStatisticsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TeamStatisticsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/TeamStatistics"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "TeamTopScorer": {
        "additionalProperties": false,
        "properties": {
          "goals": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "internalId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "name",
          "goals",
          "slug",
          "internalId"
        ],
        "type": "object"
      },
      "TeamTrendResult": {
        "additionalProperties": false,
        "properties": {
          "awayTeamId": {
            "format": "int64",
            "type": "integer"
          },
          "awayTeamName": {
            "type": "string"
          },
          "awayTeamSlug": {
            "type": "string"
          },
          "bookmakers": {
            "items": {
              "$ref": "#/components/schemas/TeamTrendsBookmaker"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "eventId": {
            "format": "int64",
            "type": "integer"
          },
          "eventTimestamp": {
            "format": "int64",
            "type": "integer"
          },
          "homeTeamId": {
            "format": "int64",
            "type": "integer"
          },
          "homeTeamName": {
            "type": "string"
          },
          "homeTeamSlug": {
            "type": "string"
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "leagueId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "leagueName": {
            "type": [
              "string",
              "null"
            ]
          },
          "line": {
            "format": "double",
            "type": "number"
          },
          "oddsType": {
            "type": "string"
          },
          "opponentHitRate": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "opponentTeamId": {
            "format": "int64",
            "type": "integer"
          },
          "opponentTeamName": {
            "type": "string"
          },
          "opponentTeamSlug": {
            "type": "string"
          },
          "recentGames": {
            "items": {
              "$ref": "#/components/schemas/TeamTrendsRecentGame"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "statDisplay": {
            "type": "string"
          },
          "statType": {
            "type": "string"
          },
          "teamId": {
            "format": "int64",
            "type": "integer"
          },
          "teamName": {
            "type": "string"
          },
          "teamPrimaryColor": {
            "type": [
              "string",
              "null"
            ]
          },
          "teamSecondaryColor": {
            "type": [
              "string",
              "null"
            ]
          },
          "teamSlug": {
            "type": "string"
          },
          "trendAvg": {
            "format": "double",
            "type": "number"
          },
          "trendHits": {
            "format": "int64",
            "type": "integer"
          },
          "trendTotal": {
            "format": "double",
            "type": "number"
          },
          "trendWindow": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "teamId",
          "teamName",
          "teamSlug",
          "teamPrimaryColor",
          "teamSecondaryColor",
          "statType",
          "statDisplay",
          "line",
          "oddsType",
          "eventId",
          "eventTimestamp",
          "homeTeamId",
          "homeTeamName",
          "homeTeamSlug",
          "awayTeamId",
          "awayTeamName",
          "awayTeamSlug",
          "opponentTeamId",
          "opponentTeamName",
          "opponentTeamSlug",
          "opponentHitRate",
          "leagueId",
          "leagueName",
          "bookmakers",
          "trendHits",
          "trendWindow",
          "trendTotal",
          "trendAvg",
          "recentGames"
        ],
        "type": "object"
      },
      "TeamTrendsBookmaker": {
        "additionalProperties": false,
        "properties": {
          "bookmakerId": {},
          "bookmakerName": {},
          "oddsValue": {
            "format": "double",
            "type": "number"
          }
        },
        "required": [
          "bookmakerId",
          "bookmakerName",
          "oddsValue"
        ],
        "type": "object"
      },
      "TeamTrendsParams": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TeamTrendsParams.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "games": {
            "items": {
              "format": "double",
              "type": "number"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "oddsRange": {
            "$ref": "#/components/schemas/TeamTrendsParamsOddsRangeStruct"
          },
          "page": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "pageSize": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "sorting": {
            "$ref": "#/components/schemas/TeamTrendsParamsSortingStruct"
          },
          "statTypes": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "games",
          "page",
          "pageSize",
          "statTypes",
          "oddsRange",
          "sorting"
        ],
        "type": "object"
      },
      "TeamTrendsParamsOddsRangeStruct": {
        "additionalProperties": false,
        "properties": {
          "from": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "to": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "from",
          "to"
        ],
        "type": "object"
      },
      "TeamTrendsParamsSortingStruct": {
        "additionalProperties": false,
        "properties": {
          "column": {
            "type": "string"
          },
          "direction": {
            "type": "string"
          }
        },
        "required": [
          "column",
          "direction"
        ],
        "type": "object"
      },
      "TeamTrendsRecentGame": {
        "additionalProperties": false,
        "properties": {
          "eventId": {
            "format": "int64",
            "type": "integer"
          },
          "eventTimestamp": {
            "format": "int64",
            "type": "integer"
          },
          "isHit": {
            "type": "boolean"
          },
          "isHome": {
            "type": "boolean"
          },
          "opponentId": {
            "format": "int64",
            "type": "integer"
          },
          "opponentName": {
            "type": "string"
          },
          "opponentSlug": {
            "type": "string"
          },
          "statValue": {
            "format": "double",
            "type": "number"
          }
        },
        "required": [
          "eventId",
          "statValue",
          "opponentName",
          "opponentSlug",
          "opponentId",
          "isHome",
          "isHit",
          "eventTimestamp"
        ],
        "type": "object"
      },
      "TeamUpcomingEventsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TeamUpcomingEventsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pagination": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "type": "object"
      },
      "Teams": {
        "additionalProperties": false,
        "properties": {
          "categoryId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "countrySlug": {
            "type": [
              "string",
              "null"
            ]
          },
          "foundationdate": {
            "type": [
              "string",
              "null"
            ]
          },
          "gender": {
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "internalId": {
            "format": "int64",
            "type": "integer"
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "national": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "shortname": {
            "type": [
              "string",
              "null"
            ]
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          },
          "teamcolorsprimary": {
            "type": [
              "string",
              "null"
            ]
          },
          "teamcolorssecondary": {
            "type": [
              "string",
              "null"
            ]
          },
          "teamcolorstext": {
            "type": [
              "string",
              "null"
            ]
          },
          "tournamentId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "usercount": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "venueId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "internalId",
          "name",
          "slug",
          "shortname",
          "gender",
          "tournamentId",
          "usercount",
          "teamcolorsprimary",
          "teamcolorssecondary",
          "teamcolorstext",
          "foundationdate",
          "countrySlug",
          "venueId",
          "national",
          "categoryId"
        ],
        "type": "object"
      },
      "TeamsComparisonOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TeamsComparisonOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "additionalStats": {
            "items": {
              "additionalProperties": {},
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "awayTeam": {
            "additionalProperties": {},
            "type": "object"
          },
          "data": {
            "items": {
              "additionalProperties": {},
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "homeTeam": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "additionalStats",
          "awayTeam",
          "data",
          "homeTeam"
        ],
        "type": "object"
      },
      "TelegramUpdate": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TelegramUpdate.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "message": {
            "$ref": "#/components/schemas/TelegramUpdateMessageStruct"
          },
          "update_id": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "update_id",
          "message"
        ],
        "type": "object"
      },
      "TelegramUpdateMessageStruct": {
        "additionalProperties": false,
        "properties": {
          "chat": {
            "$ref": "#/components/schemas/ChatStruct"
          },
          "message_id": {
            "format": "int64",
            "type": "integer"
          },
          "text": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "message_id",
          "chat",
          "text"
        ],
        "type": "object"
      },
      "TipsterPreviewBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TipsterPreviewBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "tags": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "tips": {
            "items": {
              "$ref": "#/components/schemas/TipsterTip"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "title": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "title",
          "description",
          "tags",
          "tips"
        ],
        "type": "object"
      },
      "TipsterPreviewCreateAliasCreatedBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TipsterPreviewCreateAliasCreatedBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "preview": {},
          "slug": {
            "type": "string"
          }
        },
        "required": [
          "preview"
        ],
        "type": "object"
      },
      "TipsterPreviewCreateCreatedBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TipsterPreviewCreateCreatedBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "preview": {},
          "slug": {
            "type": "string"
          }
        },
        "required": [
          "preview"
        ],
        "type": "object"
      },
      "TipsterPreviewGetOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TipsterPreviewGetOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "preview": {
            "contentEncoding": "base64",
            "type": "string"
          }
        },
        "required": [
          "preview"
        ],
        "type": "object"
      },
      "TipsterPreviewListOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TipsterPreviewListOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "previews": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "previews"
        ],
        "type": "object"
      },
      "TipsterPreviewUpdateInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TipsterPreviewUpdateInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "type": [
              "string",
              "null"
            ]
          },
          "tags": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "tips": {
            "items": {
              "$ref": "#/components/schemas/TipsterTip"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "title": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "title",
          "description",
          "tags",
          "status",
          "tips"
        ],
        "type": "object"
      },
      "TipsterPreviewUpdateOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TipsterPreviewUpdateOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "preview": {}
        },
        "required": [
          "preview"
        ],
        "type": "object"
      },
      "TipsterTip": {
        "additionalProperties": false,
        "properties": {
          "bettingTips": {
            "type": "string"
          },
          "content": {
            "type": "string"
          },
          "fixture": {
            "$ref": "#/components/schemas/TipsterTipFixtureStruct"
          }
        },
        "required": [
          "fixture",
          "content",
          "bettingTips"
        ],
        "type": "object"
      },
      "TipsterTipFixtureStruct": {
        "additionalProperties": false,
        "properties": {
          "awayTeam": {
            "$ref": "#/components/schemas/AwayTeamStruct"
          },
          "homeTeam": {
            "$ref": "#/components/schemas/HomeTeamStruct"
          },
          "id": {},
          "slug": {
            "type": "string"
          },
          "startTimestamp": {},
          "tournament": {
            "$ref": "#/components/schemas/TournamentStruct"
          }
        },
        "required": [
          "id",
          "slug",
          "homeTeam",
          "awayTeam",
          "tournament",
          "startTimestamp"
        ],
        "type": "object"
      },
      "TournamentBettingTrendsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TournamentBettingTrendsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "TournamentDetailOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TournamentDetailOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "TournamentListOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TournamentListOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "additionalProperties": {
              "items": {
                "$ref": "#/components/schemas/ConsolidatedTournament"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "TournamentRoundEventsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TournamentRoundEventsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "TournamentRoundsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TournamentRoundsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/RoundRow"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "TournamentSeasonEventsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TournamentSeasonEventsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "TournamentSeasonPlayersOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TournamentSeasonPlayersOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "TournamentSeasonStandingOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TournamentSeasonStandingOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "additionalProperties": {},
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "TournamentSeasonsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TournamentSeasonsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/Seasons"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "TournamentStruct": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "slug"
        ],
        "type": "object"
      },
      "TournamentUpcomingFixturesMultiOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TournamentUpcomingFixturesMultiOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/UpcomingMultiFixture"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "TournamentUpcomingFixturesOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TournamentUpcomingFixturesOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/UpcomingFixture"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "TrackedBetRow": {
        "additionalProperties": false,
        "properties": {
          "actualResult": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "awayTeamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "bookmakerId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "country": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": "string"
          },
          "direction": {
            "type": "string"
          },
          "homeTeamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "leagueName": {
            "type": [
              "string",
              "null"
            ]
          },
          "line": {
            "format": "double",
            "type": "number"
          },
          "marketType": {
            "type": "string"
          },
          "matchDate": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "matchId": {
            "format": "int64",
            "type": "integer"
          },
          "matchSlug": {
            "type": [
              "string",
              "null"
            ]
          },
          "modelName": {
            "type": [
              "string",
              "null"
            ]
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          },
          "oddsTaken": {
            "format": "double",
            "type": "number"
          },
          "playerId": {
            "format": "int64",
            "type": "integer"
          },
          "playerName": {
            "type": [
              "string",
              "null"
            ]
          },
          "profitLoss": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "settledAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "source": {
            "type": [
              "string",
              "null"
            ]
          },
          "stake": {
            "format": "double",
            "type": "number"
          },
          "stakeCurrency": {
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "type": "string"
          },
          "tags": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "teamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "teamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "uniqueTournamentId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "unitValue": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "userId": {
            "type": "string"
          }
        },
        "required": [
          "matchSlug",
          "homeTeamName",
          "awayTeamName",
          "id",
          "userId",
          "playerId",
          "playerName",
          "teamId",
          "teamName",
          "matchId",
          "matchDate",
          "marketType",
          "line",
          "direction",
          "oddsTaken",
          "stake",
          "source",
          "modelName",
          "status",
          "actualResult",
          "profitLoss",
          "settledAt",
          "stakeCurrency",
          "unitValue",
          "uniqueTournamentId",
          "leagueName",
          "country",
          "bookmakerId",
          "tags",
          "notes",
          "createdAt"
        ],
        "type": "object"
      },
      "TrackedBets": {
        "additionalProperties": false,
        "properties": {
          "actualResult": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "bookmakerId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "country": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": "string"
          },
          "direction": {
            "type": "string"
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "leagueName": {
            "type": [
              "string",
              "null"
            ]
          },
          "line": {
            "format": "double",
            "type": "number"
          },
          "marketType": {
            "type": "string"
          },
          "matchDate": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "matchId": {
            "format": "int64",
            "type": "integer"
          },
          "modelName": {
            "type": [
              "string",
              "null"
            ]
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          },
          "oddsTaken": {
            "format": "double",
            "type": "number"
          },
          "playerId": {
            "format": "int64",
            "type": "integer"
          },
          "playerName": {
            "type": [
              "string",
              "null"
            ]
          },
          "profitLoss": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "settledAt": {
            "type": [
              "string",
              "null"
            ]
          },
          "source": {
            "type": [
              "string",
              "null"
            ]
          },
          "stake": {
            "format": "double",
            "type": "number"
          },
          "stakeCurrency": {
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "type": "string"
          },
          "tags": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "teamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "teamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "uniqueTournamentId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "unitValue": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "userId": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "userId",
          "playerId",
          "playerName",
          "teamId",
          "teamName",
          "matchId",
          "matchDate",
          "marketType",
          "line",
          "direction",
          "oddsTaken",
          "stake",
          "source",
          "modelName",
          "status",
          "actualResult",
          "profitLoss",
          "settledAt",
          "stakeCurrency",
          "unitValue",
          "uniqueTournamentId",
          "leagueName",
          "country",
          "bookmakerId",
          "tags",
          "notes",
          "createdAt"
        ],
        "type": "object"
      },
      "TrackerBetAddCreatedBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TrackerBetAddCreatedBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/TrackedBets"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "message"
        ],
        "type": "object"
      },
      "TrackerBetBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TrackerBetBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "bookmakerId": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "direction": {
            "type": [
              "string",
              "null"
            ]
          },
          "line": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "marketType": {
            "type": [
              "string",
              "null"
            ]
          },
          "matchDate": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "matchId": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "modelName": {
            "type": [
              "string",
              "null"
            ]
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          },
          "oddsTaken": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "playerId": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "playerName": {
            "type": [
              "string",
              "null"
            ]
          },
          "source": {
            "type": [
              "string",
              "null"
            ]
          },
          "stake": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "tags": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "teamId": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "teamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "uniqueTournamentId": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "playerId",
          "playerName",
          "teamId",
          "teamName",
          "matchId",
          "matchDate",
          "marketType",
          "line",
          "direction",
          "oddsTaken",
          "stake",
          "source",
          "bookmakerId",
          "modelName",
          "uniqueTournamentId",
          "tags",
          "notes"
        ],
        "type": "object"
      },
      "TrackerBetListOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TrackerBetListOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/TrackedBetRow"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pagination": {
            "additionalProperties": {},
            "type": "object"
          },
          "settings": {
            "additionalProperties": {},
            "type": "object"
          },
          "summary": {
            "additionalProperties": {},
            "type": "object"
          },
          "userTags": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data",
          "pagination",
          "settings",
          "summary",
          "userTags"
        ],
        "type": "object"
      },
      "TrackerBetUpdateInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TrackerBetUpdateInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "actualResult": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "bookmakerId": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "id": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "notes": {
            "type": [
              "string",
              "null"
            ]
          },
          "oddsTaken": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "source": {
            "type": [
              "string",
              "null"
            ]
          },
          "stake": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "status": {
            "type": [
              "string",
              "null"
            ]
          },
          "tags": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "stake",
          "oddsTaken",
          "notes",
          "status",
          "actualResult",
          "source",
          "bookmakerId",
          "tags"
        ],
        "type": "object"
      },
      "TrackerBetUpdateOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TrackerBetUpdateOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/TrackedBets"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "message"
        ],
        "type": "object"
      },
      "TrackerSettings": {
        "additionalProperties": false,
        "properties": {
          "currency": {
            "type": "string"
          },
          "stakeMode": {
            "type": "string"
          },
          "unitValue": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "stakeMode",
          "currency",
          "unitValue"
        ],
        "type": "object"
      },
      "TrackerSettingsGetOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TrackerSettingsGetOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "settings": {
            "$ref": "#/components/schemas/TrackerSettings"
          }
        },
        "required": [
          "settings"
        ],
        "type": "object"
      },
      "TrackerSettingsPutInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TrackerSettingsPutInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "currency": {
            "type": [
              "string",
              "null"
            ]
          },
          "stakeMode": {
            "type": [
              "string",
              "null"
            ]
          },
          "unitValue": {}
        },
        "required": [
          "stakeMode",
          "currency",
          "unitValue"
        ],
        "type": "object"
      },
      "TrackerSettingsPutOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TrackerSettingsPutOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "settings": {
            "$ref": "#/components/schemas/TrackerSettings"
          }
        },
        "required": [
          "settings"
        ],
        "type": "object"
      },
      "TrendsParams": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/TrendsParams.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "bookmakers": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "games": {
            "items": {
              "format": "double",
              "type": "number"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "inPredictedLineup": {
            "type": "boolean"
          },
          "maxLastGameWithTeam": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "minHitRate": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "minWindow": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "nationalOnly": {
            "type": "boolean"
          },
          "oddsRange": {
            "$ref": "#/components/schemas/TrendsParamsOddsRangeStruct"
          },
          "page": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "pageSize": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "playerId": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "positions": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "sorting": {
            "$ref": "#/components/schemas/TrendsParamsSortingStruct"
          },
          "startedLastGame": {
            "type": "boolean"
          },
          "statTypes": {
            "items": {
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "superSub": {
            "type": "boolean"
          },
          "type": {
            "type": "string"
          },
          "uniqueTournamentId": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "games",
          "playerId",
          "uniqueTournamentId",
          "page",
          "pageSize",
          "statTypes",
          "type",
          "bookmakers",
          "oddsRange",
          "sorting",
          "minWindow",
          "minHitRate",
          "superSub",
          "nationalOnly",
          "inPredictedLineup",
          "startedLastGame",
          "maxLastGameWithTeam",
          "positions"
        ],
        "type": "object"
      },
      "TrendsParamsOddsRangeStruct": {
        "additionalProperties": false,
        "properties": {
          "from": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "to": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "from",
          "to"
        ],
        "type": "object"
      },
      "TrendsParamsSortingStruct": {
        "additionalProperties": false,
        "properties": {
          "column": {
            "type": "string"
          },
          "direction": {
            "type": "string"
          }
        },
        "required": [
          "column",
          "direction"
        ],
        "type": "object"
      },
      "UiMessage": {
        "additionalProperties": false,
        "properties": {
          "id": {
            "type": "string"
          },
          "parts": {
            "items": {
              "$ref": "#/components/schemas/UiMessagePart"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "role": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "role",
          "parts"
        ],
        "type": "object"
      },
      "UiMessagePart": {
        "additionalProperties": false,
        "properties": {
          "input": {},
          "output": {},
          "result": {},
          "state": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "toolCallId": {
            "type": "string"
          },
          "type": {
            "type": "string"
          }
        },
        "required": [
          "type",
          "text",
          "output",
          "result",
          "input",
          "state",
          "toolCallId"
        ],
        "type": "object"
      },
      "UniqueTournamentCreateCreatedBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/UniqueTournamentCreateCreatedBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "message": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "message",
          "name"
        ],
        "type": "object"
      },
      "UniqueTournamentCreateInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/UniqueTournamentCreateInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "categoryId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "displayInverseHomeAway": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "hasEventPlayerStatistics": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "hasPerformanceGraph": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "primaryColorHex": {
            "type": [
              "string",
              "null"
            ]
          },
          "secondaryColorHex": {
            "type": [
              "string",
              "null"
            ]
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          },
          "userCount": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "slug",
          "primaryColorHex",
          "secondaryColorHex",
          "categoryId",
          "userCount",
          "hasPerformanceGraph",
          "hasEventPlayerStatistics",
          "displayInverseHomeAway"
        ],
        "type": "object"
      },
      "UniqueTournamentCupTreeOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/UniqueTournamentCupTreeOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "UniqueTournamentDetailOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/UniqueTournamentDetailOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "UniqueTournamentListOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/UniqueTournamentListOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/UniqueTournaments"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "UniqueTournamentPlayerStatsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/UniqueTournamentPlayerStatsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "UniqueTournamentRoundEventsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/UniqueTournamentRoundEventsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "UniqueTournamentRoundsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/UniqueTournamentRoundsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/RoundRow"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "UniqueTournamentSeasonEventsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/UniqueTournamentSeasonEventsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "UniqueTournamentSeasonsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/UniqueTournamentSeasonsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/Seasons"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "UniqueTournamentStandingOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/UniqueTournamentStandingOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "UniqueTournaments": {
        "additionalProperties": false,
        "properties": {
          "categoryId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "displayInverseHomeAway": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "hasEventPlayerStatistics": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "hasPerformanceGraph": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "onForLiveAlerts": {
            "type": "boolean"
          },
          "onForTelegramBot": {
            "type": [
              "boolean",
              "null"
            ]
          },
          "primaryColorHex": {
            "type": [
              "string",
              "null"
            ]
          },
          "secondaryColorHex": {
            "type": [
              "string",
              "null"
            ]
          },
          "slug": {
            "type": "string"
          },
          "userCount": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "slug",
          "primaryColorHex",
          "secondaryColorHex",
          "categoryId",
          "userCount",
          "hasPerformanceGraph",
          "hasEventPlayerStatistics",
          "displayInverseHomeAway",
          "onForLiveAlerts",
          "onForTelegramBot"
        ],
        "type": "object"
      },
      "UpcomingFixture": {
        "additionalProperties": false,
        "properties": {
          "awayTeamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "awayTeamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "homeTeamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "homeTeamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "internalId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          },
          "startTime": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "status": {
            "type": [
              "string",
              "null"
            ]
          },
          "tournamentId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "venueId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "internalId",
          "homeTeamId",
          "awayTeamId",
          "tournamentId",
          "startTime",
          "slug",
          "status",
          "homeTeamName",
          "awayTeamName",
          "venueId"
        ],
        "type": "object"
      },
      "UpcomingMultiBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/UpcomingMultiBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "days": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "tournamentIds": {
            "items": {
              "format": "int64",
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "uniqueTournamentIds": {
            "items": {
              "format": "int64",
              "type": "integer"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "tournamentIds",
          "uniqueTournamentIds",
          "days"
        ],
        "type": "object"
      },
      "UpcomingMultiFixture": {
        "additionalProperties": false,
        "properties": {
          "awayTeamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "awayTeamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "homeTeamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "homeTeamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "internalId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          },
          "startTime": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "status": {
            "type": [
              "string",
              "null"
            ]
          },
          "tournamentId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "venueId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "internalId",
          "homeTeamId",
          "awayTeamId",
          "tournamentId",
          "startTime",
          "slug",
          "status",
          "homeTeamName",
          "awayTeamName",
          "venueId"
        ],
        "type": "object"
      },
      "ValueBetBookmaker": {
        "additionalProperties": false,
        "properties": {
          "overOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "source": {
            "type": "string"
          },
          "underOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "source",
          "overOdds",
          "underOdds"
        ],
        "type": "object"
      },
      "ValueBetGroup": {
        "additionalProperties": false,
        "properties": {
          "activityInfo": {},
          "alertsSupported": {
            "type": "boolean"
          },
          "avgOverEdge": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "awayTeamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "awayTeamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "bestOverOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "bookmakers": {
            "items": {
              "$ref": "#/components/schemas/ValueBetBookmaker"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "groupKey": {
            "type": "string"
          },
          "hitRates": {
            "$ref": "#/components/schemas/ValueBetHitRates"
          },
          "homeTeamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "homeTeamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "isPredictionOnly": {
            "type": "boolean"
          },
          "jerseyNumber": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "last30Stats": {
            "items": {
              "format": "double",
              "type": "number"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "line": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "marketType": {
            "type": "string"
          },
          "matchDate": {
            "type": [
              "string",
              "null"
            ]
          },
          "matchId": {
            "format": "int64",
            "type": "integer"
          },
          "matchInternalId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "matchOdds": {
            "$ref": "#/components/schemas/ValueBetMatchOdds"
          },
          "matchSlug": {
            "type": [
              "string",
              "null"
            ]
          },
          "models": {
            "items": {
              "$ref": "#/components/schemas/ValueBetModel"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "multiClub": {
            "type": "boolean"
          },
          "playerId": {
            "format": "int64",
            "type": "integer"
          },
          "playerName": {
            "type": [
              "string",
              "null"
            ]
          },
          "position": {
            "type": [
              "string",
              "null"
            ]
          },
          "recentGames": {
            "items": {
              "$ref": "#/components/schemas/ValueBetRecentGame"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "sampleSize": {
            "format": "int64",
            "type": "integer"
          },
          "scannerEdge": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "scannerFairOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "scannerModelName": {
            "type": [
              "string",
              "null"
            ]
          },
          "teamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "teamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "uniqueTournamentId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "windowHorizon": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "groupKey",
          "playerId",
          "playerName",
          "teamId",
          "teamName",
          "matchId",
          "matchInternalId",
          "matchDate",
          "marketType",
          "line",
          "matchSlug",
          "homeTeamId",
          "homeTeamName",
          "awayTeamId",
          "awayTeamName",
          "alertsSupported",
          "multiClub",
          "models",
          "bookmakers",
          "avgOverEdge",
          "bestOverOdds",
          "matchOdds",
          "last30Stats",
          "sampleSize",
          "hitRates",
          "recentGames",
          "activityInfo",
          "position",
          "jerseyNumber",
          "uniqueTournamentId",
          "windowHorizon",
          "scannerEdge",
          "scannerFairOdds",
          "scannerModelName",
          "isPredictionOnly"
        ],
        "type": "object"
      },
      "ValueBetHitRateWindows": {
        "additionalProperties": false,
        "properties": {
          "over": {
            "$ref": "#/components/schemas/ValueBetWindowRates"
          },
          "sampleSize": {
            "format": "int64",
            "type": "integer"
          },
          "under": {
            "$ref": "#/components/schemas/ValueBetWindowRates"
          }
        },
        "required": [
          "over",
          "under",
          "sampleSize"
        ],
        "type": "object"
      },
      "ValueBetHitRates": {
        "additionalProperties": false,
        "properties": {
          "l10": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "l20": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "l30": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "l10",
          "l20",
          "l30"
        ],
        "type": "object"
      },
      "ValueBetLineupAlertsCreateInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ValueBetLineupAlertsCreateInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "line": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "marketType": {
            "type": [
              "string",
              "null"
            ]
          },
          "matchDate": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "matchId": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "note": {
            "type": [
              "string",
              "null"
            ]
          },
          "playerId": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "playerName": {
            "type": [
              "string",
              "null"
            ]
          },
          "teamId": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "playerId",
          "playerName",
          "teamId",
          "matchId",
          "matchDate",
          "marketType",
          "line",
          "note"
        ],
        "type": "object"
      },
      "ValueBetLineupAlertsCreateOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ValueBetLineupAlertsCreateOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "success": {
            "type": "boolean"
          }
        },
        "required": [
          "success"
        ],
        "type": "object"
      },
      "ValueBetLineupAlertsListOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ValueBetLineupAlertsListOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "alerts": {
            "items": {
              "$ref": "#/components/schemas/Item6"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "alerts"
        ],
        "type": "object"
      },
      "ValueBetLineupAlertsRemoveInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ValueBetLineupAlertsRemoveInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "matchId": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "playerId": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "playerId",
          "matchId"
        ],
        "type": "object"
      },
      "ValueBetLineupAlertsRemoveOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ValueBetLineupAlertsRemoveOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "success": {
            "type": "boolean"
          }
        },
        "required": [
          "success"
        ],
        "type": "object"
      },
      "ValueBetMatchOdds": {
        "additionalProperties": false,
        "properties": {
          "away": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "draw": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "home": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "home",
          "draw",
          "away"
        ],
        "type": "object"
      },
      "ValueBetModel": {
        "additionalProperties": false,
        "properties": {
          "differencePercentage": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "extraLongExpected": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "extraLongFairOverOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "fairOverOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "fairUnderOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "lambdaNumber": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "leagueAverage": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "longExpected": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "longFairOverOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "mediumExpected": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "mediumFairOverOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "modelGroup": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "modelName": {
            "type": "string"
          },
          "opponentMultiplier": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "playersAverage": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "poissonProbOver": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "poissonProbUnder": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "shortExpected": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "shortFairOverOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "teamAverageAgainst": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "modelName",
          "modelGroup",
          "fairOverOdds",
          "fairUnderOdds",
          "opponentMultiplier",
          "poissonProbOver",
          "poissonProbUnder",
          "leagueAverage",
          "teamAverageAgainst",
          "playersAverage",
          "lambdaNumber",
          "differencePercentage",
          "longExpected",
          "extraLongExpected",
          "mediumExpected",
          "shortExpected",
          "shortFairOverOdds",
          "mediumFairOverOdds",
          "longFairOverOdds",
          "extraLongFairOverOdds"
        ],
        "type": "object"
      },
      "ValueBetPlayerGame": {
        "additionalProperties": false,
        "properties": {
          "eventId": {
            "format": "int64",
            "type": "integer"
          },
          "eventTimestamp": {
            "format": "int64",
            "type": "integer"
          },
          "isHome": {
            "type": "boolean"
          },
          "minutesPlayed": {
            "format": "double",
            "type": "number"
          },
          "opponentId": {
            "format": "int64",
            "type": "integer"
          },
          "opponentName": {
            "type": "string"
          },
          "opponentSlug": {
            "type": "string"
          },
          "position": {
            "type": [
              "string",
              "null"
            ]
          },
          "substitutedIn": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "substitutedPlayerStats": {
            "additionalProperties": {
              "format": "double",
              "type": "number"
            },
            "type": "object"
          },
          "uniqueTournamentId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "eventId",
          "minutesPlayed",
          "position",
          "isHome",
          "opponentId",
          "uniqueTournamentId",
          "eventTimestamp",
          "substitutedIn",
          "opponentName",
          "opponentSlug"
        ],
        "type": "object"
      },
      "ValueBetRecentGame": {
        "additionalProperties": false,
        "properties": {
          "isHome": {
            "type": "boolean"
          },
          "minutesPlayed": {
            "format": "int64",
            "type": "integer"
          },
          "opponentId": {
            "format": "int64",
            "type": "integer"
          },
          "opponentName": {
            "type": "string"
          },
          "position": {
            "type": [
              "string",
              "null"
            ]
          },
          "stat": {
            "format": "double",
            "type": "number"
          },
          "uniqueTournamentId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "stat",
          "minutesPlayed",
          "position",
          "isHome",
          "opponentId",
          "opponentName",
          "uniqueTournamentId"
        ],
        "type": "object"
      },
      "ValueBetReportsCreateInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ValueBetReportsCreateInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "details": {
            "type": [
              "string",
              "null"
            ]
          },
          "matchDate": {},
          "matchId": {},
          "playerId": {},
          "playerName": {
            "type": [
              "string",
              "null"
            ]
          },
          "reason": {
            "type": [
              "string",
              "null"
            ]
          },
          "teamId": {}
        },
        "required": [
          "playerId",
          "teamId",
          "matchId",
          "matchDate",
          "playerName",
          "reason",
          "details"
        ],
        "type": "object"
      },
      "ValueBetReportsCreateOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ValueBetReportsCreateOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "success": {
            "type": "boolean"
          }
        },
        "required": [
          "success"
        ],
        "type": "object"
      },
      "ValueBetReportsListOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ValueBetReportsListOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "bets": {}
        },
        "required": [
          "bets"
        ],
        "type": "object"
      },
      "ValueBetReportsRemoveInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ValueBetReportsRemoveInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "matchId": {},
          "playerId": {}
        },
        "required": [
          "playerId",
          "matchId"
        ],
        "type": "object"
      },
      "ValueBetReportsRemoveOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ValueBetReportsRemoveOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "success": {
            "type": "boolean"
          }
        },
        "required": [
          "success"
        ],
        "type": "object"
      },
      "ValueBetV2Activity": {
        "additionalProperties": false,
        "properties": {
          "inPredictedLineup": {
            "type": "boolean"
          },
          "lastGameWithTeam": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "startedLastGame": {
            "type": "boolean"
          }
        },
        "required": [
          "startedLastGame",
          "lastGameWithTeam",
          "inPredictedLineup"
        ],
        "type": "object"
      },
      "ValueBetV2Group": {
        "additionalProperties": false,
        "properties": {
          "activityInfo": {
            "$ref": "#/components/schemas/ValueBetV2Activity"
          },
          "alertsSupported": {
            "type": "boolean"
          },
          "avgOverEdge": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "avgUnderEdge": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "awayTeamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "awayTeamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "bestOverOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "bestUnderOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "bookmakers": {
            "items": {
              "$ref": "#/components/schemas/ValueBetBookmaker"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "groupKey": {
            "type": "string"
          },
          "hitRates": {
            "$ref": "#/components/schemas/ValueBetHitRates"
          },
          "homeTeamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "homeTeamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "horizonFallback": {
            "type": "boolean"
          },
          "isPredictionOnly": {
            "type": "boolean"
          },
          "jerseyNumber": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "last30Stats": {
            "items": {
              "format": "double",
              "type": "number"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "line": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "marketType": {
            "type": "string"
          },
          "matchDate": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "matchId": {
            "format": "int64",
            "type": "integer"
          },
          "matchInternalId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "matchOdds": {
            "$ref": "#/components/schemas/ValueBetMatchOdds"
          },
          "matchSlug": {
            "type": [
              "string",
              "null"
            ]
          },
          "models": {
            "items": {
              "$ref": "#/components/schemas/ValueBetV2Model"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "multiClub": {
            "type": "boolean"
          },
          "playerId": {
            "format": "int64",
            "type": "integer"
          },
          "playerName": {
            "type": [
              "string",
              "null"
            ]
          },
          "position": {
            "type": [
              "string",
              "null"
            ]
          },
          "recentGames": {
            "items": {
              "$ref": "#/components/schemas/ValueBetV2RecentGame"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "sampleSize": {
            "format": "int64",
            "type": "integer"
          },
          "scannerEdge": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "scannerFairOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "scannerModelName": {
            "type": [
              "string",
              "null"
            ]
          },
          "teamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "teamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "uniqueTournamentId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "windowHorizon": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "groupKey",
          "playerId",
          "playerName",
          "teamId",
          "teamName",
          "matchId",
          "matchInternalId",
          "matchDate",
          "marketType",
          "line",
          "matchSlug",
          "homeTeamId",
          "homeTeamName",
          "awayTeamId",
          "awayTeamName",
          "uniqueTournamentId",
          "alertsSupported",
          "multiClub",
          "models",
          "bookmakers",
          "avgOverEdge",
          "bestOverOdds",
          "avgUnderEdge",
          "bestUnderOdds",
          "matchOdds",
          "last30Stats",
          "sampleSize",
          "hitRates",
          "recentGames",
          "activityInfo",
          "position",
          "jerseyNumber",
          "windowHorizon",
          "horizonFallback",
          "scannerEdge",
          "scannerFairOdds",
          "scannerModelName",
          "isPredictionOnly"
        ],
        "type": "object"
      },
      "ValueBetV2Model": {
        "additionalProperties": false,
        "properties": {
          "extraLongFairUnderOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "longFairUnderOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "mediumFairUnderOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "shortFairUnderOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "shortFairUnderOdds",
          "mediumFairUnderOdds",
          "longFairUnderOdds",
          "extraLongFairUnderOdds"
        ],
        "type": "object"
      },
      "ValueBetV2RecentGame": {
        "additionalProperties": false,
        "properties": {
          "hasSuperSub": {
            "type": "boolean"
          },
          "isHome": {
            "type": "boolean"
          },
          "minutesPlayed": {
            "format": "int64",
            "type": "integer"
          },
          "opponentId": {
            "format": "int64",
            "type": "integer"
          },
          "opponentName": {
            "type": "string"
          },
          "position": {
            "type": [
              "string",
              "null"
            ]
          },
          "stat": {
            "format": "double",
            "type": "number"
          },
          "uniqueTournamentId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "stat",
          "minutesPlayed",
          "position",
          "isHome",
          "opponentId",
          "opponentName",
          "uniqueTournamentId",
          "hasSuperSub"
        ],
        "type": "object"
      },
      "ValueBetWindowRates": {
        "additionalProperties": false,
        "properties": {
          "L10": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "L20": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "L40": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "L10",
          "L20",
          "L40"
        ],
        "type": "object"
      },
      "ValueBetsBookmaker": {
        "additionalProperties": false,
        "properties": {
          "overOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "source": {
            "type": "string"
          },
          "underOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "source",
          "overOdds",
          "underOdds"
        ],
        "type": "object"
      },
      "ValueBetsGroup": {
        "additionalProperties": false,
        "properties": {
          "activityInfo": {
            "$ref": "#/components/schemas/ValueBetV2Activity"
          },
          "avgOverEdge": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "avgOverOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "avgUnderEdge": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "avgUnderOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "awayTeamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "bestOverEdge": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "bestOverOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "bestUnderEdge": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "bestUnderOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "bookmakers": {
            "items": {
              "$ref": "#/components/schemas/ValueBetsBookmaker"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "groupKey": {
            "type": "string"
          },
          "hitRates": {
            "$ref": "#/components/schemas/ValueBetHitRateWindows"
          },
          "homeTeamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "homeTeamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "line": {
            "format": "double",
            "type": "number"
          },
          "marketType": {
            "type": "string"
          },
          "matchDate": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "matchId": {
            "format": "int64",
            "type": "integer"
          },
          "matchOdds": {
            "$ref": "#/components/schemas/ValueBetMatchOdds"
          },
          "matchSlug": {
            "type": [
              "string",
              "null"
            ]
          },
          "models": {
            "items": {
              "$ref": "#/components/schemas/ValueBetsModelOdds"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "opponentMultiplier": {
            "type": [
              "string",
              "null"
            ]
          },
          "opponentTeamName": {
            "type": [
              "string",
              "null"
            ]
          },
          "playerDetails": {
            "$ref": "#/components/schemas/ValueBetsPlayerDetails"
          },
          "playerId": {
            "format": "int64",
            "type": "integer"
          },
          "playerName": {
            "type": [
              "string",
              "null"
            ]
          },
          "teamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "teamName": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "groupKey",
          "playerId",
          "playerName",
          "teamId",
          "teamName",
          "matchId",
          "matchDate",
          "marketType",
          "line",
          "models",
          "opponentMultiplier",
          "matchSlug",
          "playerDetails",
          "activityInfo",
          "opponentTeamName",
          "matchOdds",
          "homeTeamId",
          "homeTeamName",
          "awayTeamName",
          "bookmakers",
          "bestOverOdds",
          "bestUnderOdds",
          "avgOverOdds",
          "avgUnderOdds",
          "bestOverEdge",
          "bestUnderEdge",
          "avgOverEdge",
          "avgUnderEdge",
          "hitRates"
        ],
        "type": "object"
      },
      "ValueBetsModelOdds": {
        "additionalProperties": false,
        "properties": {
          "fairOverOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "fairUnderOdds": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "modelName": {
            "type": "string"
          }
        },
        "required": [
          "modelName",
          "fairOverOdds",
          "fairUnderOdds"
        ],
        "type": "object"
      },
      "ValueBetsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ValueBetsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/ValueBetsGroup"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pagination": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "type": "object"
      },
      "ValueBetsPlayerDetails": {
        "additionalProperties": false,
        "properties": {
          "active": {
            "type": "boolean"
          },
          "recentGames": {
            "items": {
              "$ref": "#/components/schemas/ValueBetPlayerGame"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "recentStats": {
            "additionalProperties": {
              "items": {
                "format": "double",
                "type": "number"
              },
              "type": [
                "array",
                "null"
              ]
            },
            "type": "object"
          }
        },
        "required": [
          "active",
          "recentStats",
          "recentGames"
        ],
        "type": "object"
      },
      "ValueBetsPropsGetOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ValueBetsPropsGetOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "additionalProperties": {},
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "meta": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "type": "object"
      },
      "ValueBetsPropsOptionsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ValueBetsPropsOptionsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "additionalProperties": {},
              "type": "object"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "meta": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data",
          "meta"
        ],
        "type": "object"
      },
      "ValueBetsV2OKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/ValueBetsV2OKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/ValueBetV2Group"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pagination": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data",
          "pagination"
        ],
        "type": "object"
      },
      "VenueBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/VenueBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "capacity": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "cityName": {
            "type": [
              "string",
              "null"
            ]
          },
          "countrySlug": {
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "latitude": {
            "type": [
              "string",
              "null"
            ]
          },
          "longitude": {
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "slug",
          "capacity",
          "cityName",
          "latitude",
          "longitude",
          "countrySlug"
        ],
        "type": "object"
      },
      "VenueCreateCreatedBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/VenueCreateCreatedBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "message": {
            "type": "string"
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "message",
          "name"
        ],
        "type": "object"
      },
      "Venues": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/Venues.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "capacity": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "cityName": {
            "type": [
              "string",
              "null"
            ]
          },
          "countrySlug": {
            "type": [
              "string",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "latitude": {
            "type": [
              "string",
              "null"
            ]
          },
          "longitude": {
            "type": [
              "string",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "id",
          "name",
          "slug",
          "capacity",
          "cityName",
          "latitude",
          "longitude",
          "countrySlug"
        ],
        "type": "object"
      },
      "WatchlistPropAddInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/WatchlistPropAddInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "screenerId": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "screenerId"
        ],
        "type": "object"
      },
      "WatchlistPropListOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/WatchlistPropListOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "contentEncoding": "base64",
              "type": "string"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "WatchlistValueBetAddInputBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/WatchlistValueBetAddInputBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "line": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "marketType": {
            "type": [
              "string",
              "null"
            ]
          },
          "matchId": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "playerId": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "playerId",
          "marketType",
          "matchId",
          "line"
        ],
        "type": "object"
      },
      "WatchlistValueBetListOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/WatchlistValueBetListOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/ValueBetGroup"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "pagination": {
            "additionalProperties": {},
            "type": "object"
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      },
      "WorldCupKickoffOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/WorldCupKickoffOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "kickoff": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "kickoff"
        ],
        "type": "object"
      },
      "WorldCupPlayerCard": {
        "additionalProperties": false,
        "properties": {
          "apps": {
            "format": "int64",
            "type": "integer"
          },
          "bookedPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "cardsPer90": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "cardsPerApp": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "foulsPerGame": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "minutesPerGame": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "nationName": {
            "type": [
              "string",
              "null"
            ]
          },
          "reds": {
            "format": "int64",
            "type": "integer"
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          },
          "tacklesPerGame": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "yellows": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "name",
          "slug",
          "nationName",
          "apps",
          "cardsPerApp",
          "cardsPer90",
          "bookedPct",
          "foulsPerGame",
          "tacklesPerGame",
          "minutesPerGame",
          "yellows",
          "reds"
        ],
        "type": "object"
      },
      "WorldCupPlayerCardsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/WorldCupPlayerCardsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/WorldCupPlayerCard"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "scope": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "scope"
        ],
        "type": "object"
      },
      "WorldCupRefereeNextGame": {
        "additionalProperties": false,
        "properties": {
          "awayShort": {
            "type": [
              "string",
              "null"
            ]
          },
          "awayTeamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "eventId": {
            "format": "int64",
            "type": "integer"
          },
          "homeShort": {
            "type": [
              "string",
              "null"
            ]
          },
          "homeTeamId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "internalId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          },
          "timestamp": {
            "format": "int64",
            "type": "integer"
          },
          "uniqueTournamentId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          }
        },
        "required": [
          "eventId",
          "internalId",
          "slug",
          "timestamp",
          "uniqueTournamentId",
          "homeTeamId",
          "homeShort",
          "awayTeamId",
          "awayShort"
        ],
        "type": "object"
      },
      "WorldCupRefereeStats": {
        "additionalProperties": false,
        "properties": {
          "avgCardsPerGame": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "avgFirstHalfCards": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "avgFoulsPerGame": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "avgPensPerGame": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "avgRedsPerGame": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "avgSecondHalfCards": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "avgYellowsPerGame": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "bothTeamsO15CardPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "countrySlug": {
            "type": [
              "string",
              "null"
            ]
          },
          "games": {
            "format": "int64",
            "type": "integer"
          },
          "id": {
            "format": "int64",
            "type": "integer"
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "nextGame": {
            "$ref": "#/components/schemas/WorldCupRefereeNextGame"
          },
          "o35CardsPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "o45CardsPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "o55CardsPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "redCards": {
            "format": "int64",
            "type": "integer"
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          },
          "totalPenalties": {
            "format": "int64",
            "type": "integer"
          },
          "yellowCards": {
            "format": "int64",
            "type": "integer"
          }
        },
        "required": [
          "id",
          "name",
          "slug",
          "countrySlug",
          "games",
          "yellowCards",
          "redCards",
          "avgCardsPerGame",
          "avgYellowsPerGame",
          "avgRedsPerGame",
          "avgFoulsPerGame",
          "totalPenalties",
          "avgPensPerGame",
          "o35CardsPct",
          "o45CardsPct",
          "o55CardsPct",
          "bothTeamsO15CardPct",
          "avgFirstHalfCards",
          "avgSecondHalfCards",
          "nextGame"
        ],
        "type": "object"
      },
      "WorldCupRefereesOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/WorldCupRefereesOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/WorldCupRefereeStats"
            },
            "type": [
              "array",
              "null"
            ]
          },
          "scope": {
            "type": "string"
          }
        },
        "required": [
          "data",
          "scope"
        ],
        "type": "object"
      },
      "WorldCupTeamCard": {
        "additionalProperties": false,
        "properties": {
          "cardsAgainstPerGame": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "cardsForPerGame": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "countrySlug": {
            "type": [
              "string",
              "null"
            ]
          },
          "games": {
            "format": "int64",
            "type": "integer"
          },
          "internalId": {
            "format": "int64",
            "type": [
              "integer",
              "null"
            ]
          },
          "matchCardsPerGame": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "matchO35Pct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "matchO45Pct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "name": {
            "type": [
              "string",
              "null"
            ]
          },
          "slug": {
            "type": [
              "string",
              "null"
            ]
          },
          "teamId": {
            "format": "int64",
            "type": "integer"
          },
          "teamO15AgainstPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          },
          "teamO15ForPct": {
            "format": "double",
            "type": [
              "number",
              "null"
            ]
          }
        },
        "required": [
          "teamId",
          "internalId",
          "name",
          "slug",
          "countrySlug",
          "games",
          "cardsForPerGame",
          "teamO15ForPct",
          "cardsAgainstPerGame",
          "teamO15AgainstPct",
          "matchCardsPerGame",
          "matchO35Pct",
          "matchO45Pct"
        ],
        "type": "object"
      },
      "WorldCupTeamCardsOKBody": {
        "additionalProperties": false,
        "properties": {
          "$schema": {
            "description": "A URL to the JSON Schema for this object.",
            "examples": [
              "https://example.com/schemas/WorldCupTeamCardsOKBody.json"
            ],
            "format": "uri",
            "readOnly": true,
            "type": "string"
          },
          "data": {
            "items": {
              "$ref": "#/components/schemas/WorldCupTeamCard"
            },
            "type": [
              "array",
              "null"
            ]
          }
        },
        "required": [
          "data"
        ],
        "type": "object"
      }
    }
  },
  "info": {
    "description": "The typed, described surface of the StatsHub API.\n\nEvery operation here delegates to the handler that serves the same route under the unversioned /api prefix, which stays byte-compatible with the Next.js routes it was ported from. Where a response type could not be recovered from the handler the schema is left open rather than guessed.",
    "title": "StatsHub API",
    "version": "2.0.0"
  },
  "openapi": "3.1.0",
  "paths": {
    "/api/v2/admin/bot-routing": {
      "get": {
        "description": "SECURITY: unauthenticated in the original and here. See AdminBotRoutingPut.",
        "operationId": "AdminBotRoutingGet",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminBotRoutingGetOKBody"
                }
              }
            },
            "description": "OK"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "AdminBotRoutingGet serves GET /api/admin/bot-routing.",
        "tags": [
          "admin"
        ]
      },
      "put": {
        "description": "SECURITY: this endpoint has no authentication, in the original or here, and\nit writes. Anyone who can reach it can redirect superadmin bot traffic to a\ndev or shadow deployment. Kept faithful and raised separately.\n\nThe original builds its INSERT with sql.raw and hand-escaped quotes. The\nvalues happen to be safe — one is checked against an allow-list and the other\nis a boolean — but the pattern is not, so these are bound parameters instead.\nSame rows written, no string concatenation.",
        "operationId": "AdminBotRoutingPut",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminBotRoutingPutInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminBotRoutingPutOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "AdminBotRoutingPut serves PUT /api/admin/bot-routing.",
        "tags": [
          "admin"
        ]
      }
    },
    "/api/v2/admin/player-assignments/reconcile": {
      "post": {
        "description": "The scope is the union of three optional selectors — explicit player ids, a\nteam, a tournament — so a caller can queue one player or a whole competition\nin the same shape of request. Duplicates across selectors are collapsed.\n\nA dry run reports what would be queued without queueing it, and is checked\nbefore the empty-scope guard: asking what an empty scope would do is a\nlegitimate question and answers 200, while actually running it is a 400.",
        "operationId": "AdminPlayerAssignmentsReconcile",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminPlayerAssignmentsReconcileInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminPlayerAssignmentsReconcileOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "AdminPlayerAssignmentsReconcile serves POST /api/admin/player-assignments/reconcile.",
        "tags": [
          "admin"
        ]
      }
    },
    "/api/v2/admin/premier-league-export": {
      "get": {
        "operationId": "AdminPremierLeagueExport",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "format",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "location",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "teamIds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "contentEncoding": "base64",
                  "type": "string"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Content-Type": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "405": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Method Not Allowed"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "AdminPremierLeagueExport serves the endpoint.",
        "tags": [
          "admin"
        ]
      }
    },
    "/api/v2/admin/send-custom-message": {
      "post": {
        "description": "SECURITY: this endpoint has no authentication, in the original or here, and\nit broadcasts an arbitrary message to every Telegram subscriber. It is the\nmost exposed of the unauthenticated endpoints in this API. Kept faithful, and\nraised separately — closing it is a product decision.",
        "operationId": "AdminSendCustomMessage",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AdminSendCustomMessageInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AdminSendCustomMessageOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "AdminSendCustomMessage serves POST /api/admin/send-custom-message.",
        "tags": [
          "admin"
        ]
      }
    },
    "/api/v2/ai-analysis": {
      "post": {
        "operationId": "AIAnalysis",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AIAnalysisInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "contentEncoding": "base64",
                  "type": "string"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Content-Type": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "405": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Method Not Allowed"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "AIAnalysis serves the endpoint.",
        "tags": [
          "ai-analysis"
        ]
      }
    },
    "/api/v2/ai-analysis-db": {
      "post": {
        "description": "The stored analysis is a snapshot: the model picked those selections when the\nrun happened, and the prices and form in the blob are that old. So each\nstored item is looked up again in the live endpoints and replaced wholesale,\nkeeping only the model's prose. Anything the live call no longer returns —\na market that closed, a player ruled out — is dropped rather than shown at a\nstale price.\n\nA live call that fails is different from one that returns nothing. On failure\nthe stored items are kept as they are, because showing a slightly stale card\nbeats showing an empty analysis; on an empty result they are dropped, because\nthe market really is gone.",
        "operationId": "AIAnalysisDB",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AIAnalysisDBInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "contentEncoding": "base64",
                  "type": "string"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Content-Type": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "AIAnalysisDB serves POST /api/ai-analysis-db: a stored AI analysis for a fixture, streamed section by section.",
        "tags": [
          "ai-analysis-db"
        ]
      }
    },
    "/api/v2/auth/callback": {
      "get": {
        "description": "Everything about this endpoint ends in a redirect, including its failures —\nthe caller is a browser mid-sign-in, and a JSON error would leave the user on\na blank page. Failures go to /login with the reason in a query parameter.\n\nThe `next` parameter decides where a successful sign-in lands, and it comes\nfrom the request. It is restricted to a site-relative path: without that\ncheck, a crafted link could complete a real sign-in and then bounce the user\nto an attacker's page with the session already established. The original does\nnot check it; this is a deliberate departure, and it only rejects values that\nwere never legitimate.",
        "operationId": "AuthCallback",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "summary": "AuthCallback serves GET /api/auth/callback: the OAuth redirect target.",
        "tags": [
          "auth"
        ]
      }
    },
    "/api/v2/basketball/event/{id}": {
      "get": {
        "description": "The body is the joined row itself, not wrapped in `data`.",
        "operationId": "BasketballEventDetail",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "contentEncoding": "base64",
                  "type": "string"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "BasketballEventDetail serves GET /api/basketball/event/{id}.",
        "tags": [
          "basketball"
        ]
      }
    },
    "/api/v2/basketball/event/{id}/player-odds": {
      "get": {
        "description": "Bookmaker labels are matched to players with namematch.LabelMatcher rather\nthan the Fuse.js scan the original used. Fuse's Bitap score has no equivalent\nhere and reproducing it would be guesswork; the tiered matcher is stricter,\nand requires exactly one candidate at each tier. The failure it prevents —\nattaching a line to the wrong player — is worse than showing no line, which\nis the only way the two differ.",
        "operationId": "BasketballEventPlayerOdds",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "id",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "statType",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "teamId",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BasketballEventPlayerOddsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "BasketballEventPlayerOdds serves GET /api/basketball/event/{id}/player-odds?statType=\u0026teamId=.",
        "tags": [
          "basketball"
        ]
      }
    },
    "/api/v2/basketball/events/by-date": {
      "get": {
        "description": "The guard is `if (!startOfDay \u0026\u0026 !endOfDay)` — an and, not an or — so\nsupplying just one of the two passes validation and the missing one becomes\nNaN in the where clause, which is a 500. Both the guard and the NaN are kept;\nsee httpx.JSNumber.\n\nAn empty day is a 404 carrying `data: []`, so a client reading `.data`\nunconditionally still finds an array.",
        "operationId": "BasketballEventsByDate",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "endOfDay",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "startOfDay",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BasketballEventsByDateOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "BasketballEventsByDate serves GET /api/basketball/events/by-date.",
        "tags": [
          "basketball"
        ]
      }
    },
    "/api/v2/basketball/player/all": {
      "get": {
        "description": "An empty squad is a 404 rather than an empty list, matching the original.",
        "operationId": "BasketballPlayerAll",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "teamId",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BasketballPlayerAllOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "BasketballPlayerAll serves GET /api/basketball/player/all?teamId=: a team's squad, in the per-table nesting drizzle produced.",
        "tags": [
          "basketball"
        ]
      }
    },
    "/api/v2/basketball/player/{id}": {
      "get": {
        "description": "`nextEvent` sits beside `data` at the top level rather than inside it, which\nis the original's shape and not an oversight here.",
        "operationId": "BasketballPlayerDetail",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BasketballPlayerDetailOKBody"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "BasketballPlayerDetail serves GET /api/basketball/player/{id}, keyed by numeric id first and by slug second.",
        "tags": [
          "basketball"
        ]
      }
    },
    "/api/v2/basketball/player/{id}/performance": {
      "get": {
        "description": "The location filter is applied to the teams the player has appeared for, not\nto the player: \"home\" means a fixture where one of those teams was at home,\nwhich for a transferred player includes games played for the other club.\nThat is the original's logic.\n\nThe five combined lines — points+rebounds+assists and friends — are the\nprops a client actually bets on, and are computed here rather than stored.",
        "operationId": "BasketballPlayerPerformance",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "location",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BasketballPlayerPerformanceOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "BasketballPlayerPerformance serves GET /api/basketball/player/{id}/performance: the player's recent finished games with their box score.",
        "tags": [
          "basketball"
        ]
      }
    },
    "/api/v2/basketball/search": {
      "get": {
        "description": "Each name is matched twice — once literally and once with both sides folded\nto unaccented lowercase — so \"Doncic\" finds \"Dončić\" and \"Dončić\" still finds\nitself. The three result sets sit at the top level, not under `data`.",
        "operationId": "BasketballSearch",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "q",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BasketballSearchOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "BasketballSearch serves GET /api/basketball/search?q=: upcoming fixtures, teams and players matching a term.",
        "tags": [
          "basketball"
        ]
      }
    },
    "/api/v2/basketball/team/{id}": {
      "get": {
        "operationId": "BasketballTeamDetail",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BasketballTeamDetailOKBody"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "BasketballTeamDetail serves GET /api/basketball/team/{id}, keyed by slug or by numeric id, with the team's next fixture attached.",
        "tags": [
          "basketball"
        ]
      }
    },
    "/api/v2/basketball/team/{id}/performance": {
      "get": {
        "description": "time_start_timestamp is cast to text because it is an int8 and reaches the\nclient quoted; the scores and quarter columns are int4 and stay numbers.\nProduction returns \"time_start_timestamp\": \"1777590000\" alongside\n\"home_score_current\": 89.",
        "operationId": "BasketballTeamPerformance",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "eventType",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "timeFrame",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BasketballTeamPerformanceOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "BasketballTeamPerformance serves GET /api/basketball/team/{id}/performance: the team's recent finished fixtures with their per-period statistics folded into a `stats` object keyed by statistic.",
        "tags": [
          "basketball"
        ]
      }
    },
    "/api/v2/basketball/team/{id}/players/performance": {
      "get": {
        "description": "`stats` is keyed by event id, so a client looks up a game directly rather\nthan scanning a list.",
        "operationId": "BasketballTeamPlayersPerformance",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "fixtureId",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "h2h",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "location",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "status",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "tournamentId",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BasketballTeamPlayersPerformanceOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "BasketballTeamPlayersPerformance serves GET /api/basketball/team/{id}/players/performance: every player who appeared for the team across a window of fixtures, with their line in each.",
        "tags": [
          "basketball"
        ]
      }
    },
    "/api/v2/basketball/team/{id}/upcoming-events": {
      "get": {
        "description": "Despite the name it returns every fixture the team has, past and future,\nnewest first — there is no filter on the timestamp. Paginated.\n\nThe row count is a second statement rather than a COUNT(*) OVER() on the\nfirst. That keeps the count correct for a page past the end of the results,\nwhere a window function would return no rows and therefore no count.",
        "operationId": "BasketballTeamUpcomingEvents",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "page",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BasketballTeamUpcomingEventsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "BasketballTeamUpcomingEvents serves GET /api/basketball/team/{id}/upcoming-events.",
        "tags": [
          "basketball"
        ]
      }
    },
    "/api/v2/basketball/tournament/{id}/events": {
      "get": {
        "description": "The fifteen are taken before the incomplete rows are dropped, not after. The\noriginal limits in SQL and then filters out any fixture whose home or away\nteam failed to join, so a request can legitimately return fewer than fifteen;\nmoving the filter into the WHERE clause would top the list back up and change\nwhat the client receives. The subquery preserves that order of operations.\n\nThe status check is a one-armed `or(eq(status, \"notstarted\"))` in the\noriginal — an or with a single branch, which is just the equality.",
        "operationId": "BasketballTournamentEvents",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BasketballTournamentEventsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "BasketballTournamentEvents serves GET /api/basketball/tournament/{id}/events: the next fifteen scheduled fixtures in a tournament.",
        "tags": [
          "basketball"
        ]
      }
    },
    "/api/v2/basketball/tournament/{id}/teams": {
      "get": {
        "description": "Only the first tournament's teams are returned. The original selects every\ntournament belonging to the unique tournament, then filters teams with a\nternary whose two branches are character-for-character identical — both read\n`tournamentIds[0]`. So a competition split across several stages reports only\nthe teams of whichever stage sorted first. Preserved, because a client\nshowing that list today would suddenly see the rest.",
        "operationId": "BasketballTournamentTeams",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "id",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BasketballTournamentTeamsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "BasketballTournamentTeams serves GET /api/basketball/tournament/{id}/teams, where {id} is a unique tournament id.",
        "tags": [
          "basketball"
        ]
      }
    },
    "/api/v2/basketball/tournaments": {
      "get": {
        "description": "Two rows are dropped along the way and both are deliberate. A tournament with\nno unique tournament attached is skipped entirely, and a group whose country\nis null never lands in a bucket. The result is that the payload can omit a\ncompetition that `should_show` is true for.\n\n`name` comes from the unique tournament but `slug`, `isFavorite` and\n`shouldShow` come from whichever tournament was seen first, so a group's name\nand slug can describe different rows. That is the original's behaviour.",
        "operationId": "BasketballTournaments",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BasketballTournamentsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "BasketballTournaments serves GET /api/basketball/tournaments: the visible competitions, folded by unique tournament and then bucketed by country.",
        "tags": [
          "basketball"
        ]
      }
    },
    "/api/v2/bot/telegram": {
      "post": {
        "operationId": "BotTelegram",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TelegramUpdate"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BotTelegramOKBody"
                }
              }
            },
            "description": "OK"
          },
          "405": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Method Not Allowed"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "BotTelegram serves the webhook.",
        "tags": [
          "bot"
        ]
      }
    },
    "/api/v2/category": {
      "get": {
        "operationId": "CategoryList",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Categories"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "CategoryList serves GET /api/category.",
        "tags": [
          "category"
        ]
      },
      "post": {
        "operationId": "CategoryCreate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CategoryBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CategoryCreateCreatedBody"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "CategoryCreate serves POST /api/category.",
        "tags": [
          "category"
        ]
      }
    },
    "/api/v2/category/{id}": {
      "get": {
        "operationId": "CategoryGet",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Categories"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "CategoryGet serves GET /api/category/{id}.",
        "tags": [
          "category"
        ]
      },
      "put": {
        "operationId": "CategoryUpdate",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CategoryBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageEnvelope"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "CategoryUpdate serves PUT /api/category/{id}.",
        "tags": [
          "category"
        ]
      }
    },
    "/api/v2/chat": {
      "post": {
        "operationId": "Chat",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ChatInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "contentEncoding": "base64",
                  "type": "string"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Content-Type": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "405": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Method Not Allowed"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Chat serves the endpoint.",
        "tags": [
          "chat"
        ]
      }
    },
    "/api/v2/country": {
      "get": {
        "operationId": "CountryList",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Countries"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "CountryList serves GET /api/country.",
        "tags": [
          "country"
        ]
      },
      "post": {
        "operationId": "CountryCreate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CountryBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CountryCreateCreatedBody"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "CountryCreate serves POST /api/country.",
        "tags": [
          "country"
        ]
      }
    },
    "/api/v2/country/{slug}": {
      "get": {
        "description": "The legacy file is named [id].ts but reads `query.slug`. Under Next.js\n`req.query` merges the path parameter under its filename — `id` — so `slug`\nonly ever arrives from the query string, and the path segment is ignored.\n\nVerified against production: /api/country/spain is 404 for every value of\nthe path segment, while /api/country/anything?slug=spain returns Spain. This\nlooks like a bug and is kept anyway, because a client that today gets a 404\nwould start getting a row. Changing it is a product decision, not a port one.",
        "operationId": "CountryGet",
        "parameters": [
          {
            "in": "path",
            "name": "slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "slug",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Countries"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "CountryGet serves GET /api/country/{slug}.",
        "tags": [
          "country"
        ]
      },
      "put": {
        "operationId": "CountryUpdate",
        "parameters": [
          {
            "in": "path",
            "name": "slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CountryBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageEnvelope"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "CountryUpdate serves PUT /api/country/{slug}.",
        "tags": [
          "country"
        ]
      }
    },
    "/api/v2/dashboard/backfill-shotmap": {
      "post": {
        "description": "The bounds on each option are the original's and are worth keeping: a batch\nsize in the thousands or a delay of zero would have the ingestion service\nhammer the upstream provider.",
        "operationId": "DashboardBackfillShotmap",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardBackfillShotmapInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardBackfillShotmap serves POST /api/dashboard/backfill-shotmap.",
        "tags": [
          "dashboard"
        ]
      }
    },
    "/api/v2/dashboard/basketball/load-by-date": {
      "post": {
        "description": "Either a single date or a start and end pair. Supplying a start without an\nend is rejected, but supplying `date` alongside a range is not — the range is\nforwarded too and the upstream decides.",
        "operationId": "DashboardBasketballLoadByDate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardBasketballLoadByDateInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardBasketballLoadByDate serves POST /api/dashboard/basketball/load-by-date.",
        "tags": [
          "dashboard"
        ]
      }
    },
    "/api/v2/dashboard/basketball/load-by-ids": {
      "post": {
        "operationId": "DashboardBasketballLoadByIDs",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardBasketballLoadByIDsInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardBasketballLoadByIDs serves POST /api/dashboard/basketball/load-by-ids.",
        "tags": [
          "dashboard"
        ]
      }
    },
    "/api/v2/dashboard/basketball/load-by-season": {
      "post": {
        "operationId": "DashboardBasketballLoadBySeason",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardBasketballLoadBySeasonInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardBasketballLoadBySeason serves POST /api/dashboard/basketball/load-by-season.",
        "tags": [
          "dashboard"
        ]
      }
    },
    "/api/v2/dashboard/basketball/tournaments": {
      "get": {
        "operationId": "DashboardBasketballTournaments",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Item"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardBasketballTournaments serves GET /api/dashboard/basketball/tournaments.",
        "tags": [
          "dashboard"
        ]
      }
    },
    "/api/v2/dashboard/basketball/tournaments/{id}/seasons": {
      "get": {
        "description": "Both the name and the year are built from the season id, which is all the\nevents table carries. Newest first.",
        "operationId": "DashboardBasketballSeasons",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "additionalProperties": {},
                    "type": "object"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardBasketballSeasons serves GET /api/dashboard/basketball/tournaments/{id}/seasons.",
        "tags": [
          "dashboard"
        ]
      }
    },
    "/api/v2/dashboard/bot/alerts": {
      "get": {
        "description": "SECURITY: unauthenticated, as in the original. Read-only, but it exposes the\nmessage text of every alert sent to subscribers. See task on the admin bot\nendpoints.\n\nBoth page and limit are required — there are no defaults, and omitting either\nis a 400 rather than a first page.",
        "operationId": "DashboardBotAlerts",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "page",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DashboardBotAlertsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardBotAlerts serves GET /api/dashboard/bot/alerts?page=\u0026limit=: the history of alerts the Telegram bot has sent.",
        "tags": [
          "dashboard"
        ]
      }
    },
    "/api/v2/dashboard/bot/betting-odds": {
      "delete": {
        "operationId": "DashboardBettingOddsRulesDelete",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "id",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardBettingOddsRulesDelete serves DELETE /api/dashboard/bot/betting-odds?id=.",
        "tags": [
          "dashboard"
        ]
      },
      "get": {
        "operationId": "DashboardBettingOddsRulesList",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/BettingOddsRulesBot"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardBettingOddsRulesList serves GET /api/dashboard/bot/betting-odds.",
        "tags": [
          "dashboard"
        ]
      },
      "post": {
        "operationId": "DashboardBettingOddsRulesCreate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardBettingOddsRulesCreateInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BettingOddsRulesBot"
                }
              }
            },
            "description": "Created"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardBettingOddsRulesCreate serves POST /api/dashboard/bot/betting-odds.",
        "tags": [
          "dashboard"
        ]
      },
      "put": {
        "operationId": "DashboardBettingOddsRulesToggle",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardBettingOddsRulesToggleInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BettingOddsRulesBot"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardBettingOddsRulesToggle serves PUT /api/dashboard/bot/betting-odds.",
        "tags": [
          "dashboard"
        ]
      }
    },
    "/api/v2/dashboard/bot/bot-toggle": {
      "put": {
        "description": "SECURITY: this endpoint has no authentication, in the original or here.\nAnyone who can reach it can turn a competition's bot coverage on or off. The\nport keeps that because adding a check would reject the dashboard client if\nit does not send credentials today, and because the endpoint is already live\nand unauthenticated — closing it is a product decision with a client change\nattached, not something to do silently inside a port. Raised separately.\n\nThe toggle is read-then-write with no locking, so two concurrent requests can\nboth read the same value and the second write wins. That races in the\noriginal too.",
        "operationId": "DashboardBotToggle",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "tournamentId",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DashboardBotToggleOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardBotToggle serves PUT /api/dashboard/bot/bot-toggle?tournamentId=: flips whether the Telegram bot covers a competition.",
        "tags": [
          "dashboard"
        ]
      }
    },
    "/api/v2/dashboard/bot/league-groups": {
      "delete": {
        "description": "The group's members and any rules scoped to it go with it by cascade.",
        "operationId": "DashboardLeagueGroupsDelete",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "id",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardLeagueGroupsDelete serves DELETE /api/dashboard/bot/league-groups?id=.",
        "tags": [
          "dashboard"
        ]
      },
      "get": {
        "operationId": "DashboardLeagueGroupsList",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/LeagueGroup"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Forbidden"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardLeagueGroupsList serves GET /api/dashboard/bot/league-groups.",
        "tags": [
          "dashboard"
        ]
      },
      "post": {
        "operationId": "DashboardLeagueGroupsCreate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardLeagueGroupsCreateInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeagueGroup"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Forbidden"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardLeagueGroupsCreate serves POST /api/dashboard/bot/league-groups.",
        "tags": [
          "dashboard"
        ]
      },
      "put": {
        "operationId": "DashboardLeagueGroupsUpdate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardLeagueGroupsUpdateInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LeagueGroup"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardLeagueGroupsUpdate serves PUT /api/dashboard/bot/league-groups.",
        "tags": [
          "dashboard"
        ]
      }
    },
    "/api/v2/dashboard/bot/league-groups/{id}/leagues": {
      "delete": {
        "description": "The ids come from the request body rather than the query string, which is\nunusual for a DELETE but is what the client sends.",
        "operationId": "DashboardLeagueGroupLeaguesRemove",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardLeagueGroupLeaguesRemoveInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/LeagueGroupMember"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardLeagueGroupLeaguesRemove serves DELETE /api/dashboard/bot/league-groups/{id}/leagues.",
        "tags": [
          "dashboard"
        ]
      },
      "get": {
        "operationId": "DashboardLeagueGroupLeaguesList",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/LeagueGroupMember"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardLeagueGroupLeaguesList serves GET /api/dashboard/bot/league-groups/{id}/leagues.",
        "tags": [
          "dashboard"
        ]
      },
      "post": {
        "description": "Every id is validated before any is inserted, and an unknown one fails the\nwhole request naming which — adding half a set silently would leave the\noperator unsure what happened.\n\nAdding a competition already in the group is not an error; the insert does\nnothing for it.",
        "operationId": "DashboardLeagueGroupLeaguesAdd",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardLeagueGroupLeaguesAddInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/LeagueGroupMember"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardLeagueGroupLeaguesAdd serves POST /api/dashboard/bot/league-groups/{id}/leagues.",
        "tags": [
          "dashboard"
        ]
      }
    },
    "/api/v2/dashboard/bot/position-change-avoid-rules": {
      "delete": {
        "operationId": "DashboardPositionRulesDelete",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "id",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardPositionRulesDelete serves DELETE /api/dashboard/bot/position-change-avoid-rules?id=.",
        "tags": [
          "dashboard"
        ]
      },
      "get": {
        "description": "SECURITY: unauthenticated, as in the original, and three of the four verbs\nwrite. See the task on the admin bot endpoints.\n\nA rule tells the bot which position moves not to alert on: a striker listed\nat centre-forward is noise, not news. Rules are either global or scoped to a\ngroup of competitions.",
        "operationId": "DashboardPositionRulesList",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "leagueGroupId",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "ruleType",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PositionRule"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardPositionRulesList serves GET /api/dashboard/bot/position-change-avoid-rules.",
        "tags": [
          "dashboard"
        ]
      },
      "post": {
        "operationId": "DashboardPositionRulesCreate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardPositionRulesCreateInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardPositionRulesCreate serves POST /api/dashboard/bot/position-change-avoid-rules.",
        "tags": [
          "dashboard"
        ]
      },
      "put": {
        "description": "Switching a rule from group scope to global clears its group, so the rule\ndoes not keep a stale association it no longer honours.",
        "operationId": "DashboardPositionRulesUpdate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardPositionRulesUpdateInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardPositionRulesUpdate serves PUT /api/dashboard/bot/position-change-avoid-rules.",
        "tags": [
          "dashboard"
        ]
      }
    },
    "/api/v2/dashboard/bot/prompt-templates": {
      "get": {
        "description": "SECURITY: unauthenticated, as in the original, whose comment says the check\nwas skipped \"to make it work\". See DashboardBotToggle.",
        "operationId": "DashboardPromptTemplatesList",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/BotPromptTemplates"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardPromptTemplatesList serves GET /api/dashboard/bot/prompt-templates.",
        "tags": [
          "dashboard"
        ]
      },
      "post": {
        "description": "SECURITY: unauthenticated, and it writes. See DashboardBotToggle.\n\nActivating a new template deactivates every other one first. A database\ntrigger enforces the same invariant, so the update here is belt and braces —\nbut it also means the two could disagree if the trigger were ever dropped.",
        "operationId": "DashboardPromptTemplatesCreate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardPromptTemplatesCreateInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BotPromptTemplates"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardPromptTemplatesCreate serves POST /api/dashboard/bot/prompt-templates.",
        "tags": [
          "dashboard"
        ]
      }
    },
    "/api/v2/dashboard/bot/prompt-templates/{id}": {
      "delete": {
        "description": "The active template cannot be deleted. Without that guard the bot would be\nleft with no prompt at all, and the failure would surface only the next time\nit tried to send something.",
        "operationId": "DashboardPromptTemplateDelete",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardPromptTemplateDelete serves DELETE /api/dashboard/bot/prompt-templates/{id}.",
        "tags": [
          "dashboard"
        ]
      },
      "get": {
        "operationId": "DashboardPromptTemplateGet",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BotPromptTemplates"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardPromptTemplateGet serves GET /api/dashboard/bot/prompt-templates/{id}.",
        "tags": [
          "dashboard"
        ]
      },
      "put": {
        "description": "A blank name or content is ignored rather than written — the original guards\neach with a truthiness check, so a template cannot be emptied through this\nendpoint.",
        "operationId": "DashboardPromptTemplateUpdate",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardPromptTemplateUpdateInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BotPromptTemplates"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardPromptTemplateUpdate serves PUT /api/dashboard/bot/prompt-templates/{id}.",
        "tags": [
          "dashboard"
        ]
      }
    },
    "/api/v2/dashboard/bot/stats-rules": {
      "delete": {
        "operationId": "DashboardStatsRulesDelete",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "id",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardStatsRulesDelete serves DELETE /api/dashboard/bot/stats-rules?id=.",
        "tags": [
          "dashboard"
        ]
      },
      "get": {
        "operationId": "DashboardStatsRulesList",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/PlayerStatsRulesBot"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardStatsRulesList serves GET /api/dashboard/bot/stats-rules.",
        "tags": [
          "dashboard"
        ]
      },
      "post": {
        "description": "New rules are enabled on creation, so adding one takes effect immediately.",
        "operationId": "DashboardStatsRulesCreate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardStatsRulesCreateInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlayerStatsRulesBot"
                }
              }
            },
            "description": "Created"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardStatsRulesCreate serves POST /api/dashboard/bot/stats-rules.",
        "tags": [
          "dashboard"
        ]
      },
      "put": {
        "operationId": "DashboardStatsRulesToggle",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardStatsRulesToggleInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlayerStatsRulesBot"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardStatsRulesToggle serves PUT /api/dashboard/bot/stats-rules.",
        "tags": [
          "dashboard"
        ]
      }
    },
    "/api/v2/dashboard/daily-spreadsheet": {
      "get": {
        "operationId": "DashboardDailySpreadsheet",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "date",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DashboardDailySpreadsheetOKBody"
                }
              }
            },
            "description": "OK"
          },
          "405": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Method Not Allowed"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardDailySpreadsheet serves the endpoint.",
        "tags": [
          "dashboard"
        ]
      }
    },
    "/api/v2/dashboard/leagues": {
      "get": {
        "description": "The two permission flags are coalesced to false rather than left null, which\nthe original does explicitly with `?? false` — a null would render as an\nindeterminate checkbox in the dashboard.\n\n`logo` is a conventional path built from the slug, not a stored column, and\nis not checked for existence.",
        "operationId": "DashboardLeagueList",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "onForTelegramBot",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/DashboardLeagueListRow"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardLeagueList serves GET /api/dashboard/leagues.",
        "tags": [
          "dashboard"
        ]
      }
    },
    "/api/v2/dashboard/leagues/by-country/{country}": {
      "get": {
        "description": "An unknown country is an empty array, not a 404 — the dashboard renders the\nlist either way.",
        "operationId": "DashboardLeaguesByCountry",
        "parameters": [
          {
            "in": "path",
            "name": "country",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/DashboardLeagueRow"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardLeaguesByCountry serves GET /api/dashboard/leagues/by-country/{country}.",
        "tags": [
          "dashboard"
        ]
      }
    },
    "/api/v2/dashboard/leagues/countries": {
      "get": {
        "description": "Super-admin only, and the body is a bare JSON array rather than an object.",
        "operationId": "DashboardLeagueCountries",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "type": "string"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Forbidden"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardLeagueCountries serves GET /api/dashboard/leagues/countries: the distinct country flags across all tournaments.",
        "tags": [
          "dashboard"
        ]
      }
    },
    "/api/v2/dashboard/leagues/load-data": {
      "post": {
        "operationId": "DashboardLeagueLoadData",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardLeagueLoadDataInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardLeagueLoadData serves POST /api/dashboard/leagues/load-data by forwarding a backfill request to the data-ingestion service.",
        "tags": [
          "dashboard"
        ]
      }
    },
    "/api/v2/dashboard/leagues/search": {
      "get": {
        "description": "The term matches a competition's name or its country, so \"spain\" finds LaLiga\nwithout the user knowing what it is called.",
        "operationId": "DashboardLeagueSearch",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/DashboardLeagueRow"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardLeagueSearch serves GET /api/dashboard/leagues/search?query=.",
        "tags": [
          "dashboard"
        ]
      }
    },
    "/api/v2/dashboard/leagues/update": {
      "patch": {
        "description": "Only booleans that are actually present are written, so a partial body leaves\nthe rest alone. The row is read back through the same join the listing uses,\nso the client can drop the response straight into its table.",
        "operationId": "DashboardLeagueUpdate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardLeagueUpdateInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DashboardLeagueRow"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardLeagueUpdate serves PATCH /api/dashboard/leagues/update.",
        "tags": [
          "dashboard"
        ]
      }
    },
    "/api/v2/dashboard/leagues/{id}/seasons": {
      "get": {
        "description": "`name` and `year` are both built from the season id, because that is all the\nevents table carries — there is no join to seasons here. A season with a null\nid is named \"Season \u003cnil\u003e\" and reported as year \"Unknown\", which is the\noriginal's output and not a placeholder introduced by the port.",
        "operationId": "DashboardLeagueSeasons",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "additionalProperties": {},
                    "type": "object"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardLeagueSeasons serves GET /api/dashboard/leagues/{id}/seasons: the seasons a tournament has fixtures for.",
        "tags": [
          "dashboard"
        ]
      }
    },
    "/api/v2/dashboard/missing-shotmap-count": {
      "get": {
        "description": "The upstream body is passed through untouched, including its shape, because\nthis endpoint exists only to put the dashboard's session in front of a\nservice that has no auth of its own.",
        "operationId": "DashboardMissingShotmapCount",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "next",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardMissingShotmapCount serves GET /api/dashboard/missing-shotmap-count by proxying the cron service that owns the job queue.",
        "tags": [
          "dashboard"
        ]
      }
    },
    "/api/v2/dashboard/stale-odds": {
      "get": {
        "description": "SECURITY: unauthenticated, as in the original.\n\nThe staleness test is on the MOST recent update across all bookmakers, in a\nHAVING clause — a fixture counts as stale only when every bookmaker is stale.\nTesting any single row would flag a fixture whose other books are current.",
        "operationId": "DashboardStaleOdds",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "page",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "pageSize",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DashboardStaleOddsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardStaleOdds serves GET /api/dashboard/stale-odds: upcoming fixtures whose odds have not been refreshed in the last hour.",
        "tags": [
          "dashboard"
        ]
      }
    },
    "/api/v2/dashboard/systemstats": {
      "get": {
        "description": "SECURITY: unauthenticated, as in the original. The rows carry API request and\nresponse payloads.\n\nThe type and name filters are substring matches with LIKE, not ILIKE, so they\nare case-sensitive. A malformed date is skipped rather than rejected — the\noriginal catches the parse failure and drops the condition, widening the\nresult instead of failing the request.",
        "operationId": "DashboardSystemStats",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "dateFrom",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "dateTo",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "name",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "page",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "status",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "type",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DashboardSystemStatsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardSystemStats serves GET /api/dashboard/systemstats: the ingestion job log, filterable and paged.",
        "tags": [
          "dashboard"
        ]
      }
    },
    "/api/v2/dashboard/team-sportsmonk-mapping": {
      "get": {
        "operationId": "DashboardSportsmonkMappingList",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "page",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "search",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DashboardSportsmonkMappingListOKBody"
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardSportsmonkMappingList serves GET /api/dashboard/team-sportsmonk-mapping.",
        "tags": [
          "dashboard"
        ]
      },
      "put": {
        "description": "Only the provider's name is editable. The team id is the join key and\nchanging it would silently repoint the mapping at a different club.",
        "operationId": "DashboardSportsmonkMappingUpdate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardSportsmonkMappingUpdateInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DashboardSportsmonkMappingUpdateOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DashboardSportsmonkMappingUpdate serves PUT /api/dashboard/team-sportsmonk-mapping.",
        "tags": [
          "dashboard"
        ]
      }
    },
    "/api/v2/data-visualizer": {
      "get": {
        "operationId": "DataVisualizer",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "date",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "endDate",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "startDate",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DataVisualizerOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DataVisualizer serves GET /api/data-visualizer?date= or ?startDate=\u0026endDate=.",
        "tags": [
          "data-visualizer"
        ]
      }
    },
    "/api/v2/data-visualizer-by-ids": {
      "get": {
        "description": "Same payload as the date-ranged view, for a specific set of fixtures. Unlike\nthat view it does not filter on should_show — an operator looking up a\nspecific fixture wants to see it whether or not the competition is carried.",
        "operationId": "DataVisualizerByIDs",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "eventIds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DataVisualizerByIDsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "DataVisualizerByIDs serves GET /api/data-visualizer-by-ids?eventIds=.",
        "tags": [
          "data-visualizer-by-ids"
        ]
      }
    },
    "/api/v2/event": {
      "get": {
        "operationId": "EventList",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "offset",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventListOKBody"
                }
              }
            },
            "description": "OK"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "EventList serves GET /api/event, the paginated newest-first event feed.",
        "tags": [
          "event"
        ]
      },
      "post": {
        "operationId": "EventCreate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Events"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventCreateCreatedBody"
                }
              }
            },
            "description": "Created"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "EventCreate serves POST /api/event. The legacy handler spread the request body straight into the insert, so the body is decoded into the model rather than an explicit field list.",
        "tags": [
          "event"
        ]
      }
    },
    "/api/v2/event/bulk-team-odds": {
      "get": {
        "operationId": "EventBulkTeamOdds",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "eventIds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventBulkTeamOddsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "EventBulkTeamOdds serves GET /api/event/bulk-team-odds.",
        "tags": [
          "event"
        ]
      }
    },
    "/api/v2/event/by-date": {
      "get": {
        "operationId": "EventsByDate",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "endOfDay",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "startOfDay",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventsByDateOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "EventsByDate serves GET /api/event/by-date.",
        "tags": [
          "event"
        ]
      }
    },
    "/api/v2/event/counts-by-dates": {
      "get": {
        "operationId": "EventCountsByDates",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "dates",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventCountsByDatesOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "EventCountsByDates serves GET /api/event/counts-by-dates, the fixture count per day behind the date picker.",
        "tags": [
          "event"
        ]
      }
    },
    "/api/v2/event/extra-stats-batch": {
      "post": {
        "operationId": "EventExtraStatsBatch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EventExtraStatsBatchInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventExtraStatsBatchOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "405": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Method Not Allowed"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "EventExtraStatsBatch serves POST /api/event/extra-stats-batch.",
        "tags": [
          "event"
        ]
      }
    },
    "/api/v2/event/lineup-analysis": {
      "get": {
        "operationId": "EventLineupAnalysis",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "matchId",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventLineupAnalysisOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "EventLineupAnalysis serves GET /api/event/lineup-analysis, the same data behind an admin-only gate.",
        "tags": [
          "event"
        ]
      }
    },
    "/api/v2/event/lineup-preview": {
      "get": {
        "operationId": "EventLineupPreview",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "matchId",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventLineupPreviewOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "EventLineupPreview serves GET /api/event/lineup-preview, the third-party lineup projection. It is gated behind a session.",
        "tags": [
          "event"
        ]
      }
    },
    "/api/v2/event/lineup-status": {
      "get": {
        "operationId": "EventLineupStatus",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "ids",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventLineupStatusOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "EventLineupStatus serves GET /api/event/lineup-status: whether each fixture's lineup is confirmed, predicted, or unavailable.",
        "tags": [
          "event"
        ]
      }
    },
    "/api/v2/event/live-scores": {
      "get": {
        "operationId": "EventLiveScores",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "ids",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventLiveScoresOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "EventLiveScores serves GET /api/event/live-scores.",
        "tags": [
          "event"
        ]
      }
    },
    "/api/v2/event/{id}": {
      "get": {
        "operationId": "EventDetail",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": {},
                  "type": "object"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "EventDetail serves GET /api/event/{id}.",
        "tags": [
          "event"
        ]
      },
      "put": {
        "operationId": "EventUpdate",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Events"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventUpdateOKBody"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "EventUpdate serves PUT /api/event/{id}.",
        "tags": [
          "event"
        ]
      }
    },
    "/api/v2/event/{id}/expected-cards": {
      "get": {
        "operationId": "EventExpectedCards",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventExpectedCardsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "EventExpectedCards serves the endpoint.",
        "tags": [
          "event"
        ]
      }
    },
    "/api/v2/event/{id}/extra-stats": {
      "get": {
        "operationId": "EventExtraStats",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventExtraStatsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "EventExtraStats serves the endpoint.",
        "tags": [
          "event"
        ]
      }
    },
    "/api/v2/event/{id}/formations": {
      "get": {
        "operationId": "EventFormations",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventFormationsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "EventFormations serves GET /api/event/{id}/formations.",
        "tags": [
          "event"
        ]
      }
    },
    "/api/v2/event/{id}/heatmap": {
      "get": {
        "operationId": "EventHeatmap",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "awayTeam",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "homeTeam",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "seasonId",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventHeatmapOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "EventHeatmap serves GET /api/event/{id}/heatmap: both squads with their season touch maps. Its three query parameters are unvalidated Number() calls in the original, so they go through httpx.JSNumber for the same reason as EventPlayers.",
        "tags": [
          "event"
        ]
      }
    },
    "/api/v2/event/{id}/odds-comparison": {
      "get": {
        "operationId": "EventOddsComparison",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "awayTeam",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "homeTeam",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventOddsComparisonOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "EventOddsComparison serves the endpoint.",
        "tags": [
          "event"
        ]
      }
    },
    "/api/v2/event/{id}/odds-movements": {
      "get": {
        "operationId": "EventOddsMovements",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "market",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventOddsMovementsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "EventOddsMovements serves the endpoint.",
        "tags": [
          "event"
        ]
      }
    },
    "/api/v2/event/{id}/player-odds": {
      "get": {
        "operationId": "EventPlayerOdds",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "statType",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "teamId",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventPlayerOddsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "EventPlayerOdds serves the endpoint.",
        "tags": [
          "event"
        ]
      }
    },
    "/api/v2/event/{id}/players": {
      "get": {
        "description": "seasonId, homeTeam and awayTeam are read with JSNumber: the original passed\nthem through a bare Number(), so omitting any of them is a 500 rather than an\nempty result. See httpx.JSNumber.",
        "operationId": "EventPlayers",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "awayTeam",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "homeTeam",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "seasonId",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventPlayersOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "EventPlayers serves GET /api/event/{id}/players: both squads with their season statistics.",
        "tags": [
          "event"
        ]
      }
    },
    "/api/v2/event/{id}/predicted-formations": {
      "get": {
        "operationId": "EventPredictedFormations",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventPredictedFormationsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "EventPredictedFormations serves GET /api/event/{id}/predicted-formations.",
        "tags": [
          "event"
        ]
      }
    },
    "/api/v2/event/{id}/predicted-teams-lineup": {
      "get": {
        "operationId": "EventPredictedTeamsLineup",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventPredictedTeamsLineupOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "EventPredictedTeamsLineup serves GET /api/event/{id}/predicted-teams-lineup.",
        "tags": [
          "event"
        ]
      }
    },
    "/api/v2/event/{id}/shotmap": {
      "get": {
        "operationId": "EventShotmap",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventShotmapOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "EventShotmap serves GET /api/event/{id}/shotmap.",
        "tags": [
          "event"
        ]
      }
    },
    "/api/v2/event/{id}/team-lineup": {
      "get": {
        "operationId": "EventTeamLineup",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "heatmap",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "startingLineup",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "teamId",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventTeamLineupOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "EventTeamLineup serves GET /api/event/{id}/team-lineup.",
        "tags": [
          "event"
        ]
      }
    },
    "/api/v2/event/{id}/team-odds": {
      "get": {
        "operationId": "EventTeamOdds",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventTeamOddsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "EventTeamOdds serves GET /api/event/{id}/team-odds.",
        "tags": [
          "event"
        ]
      }
    },
    "/api/v2/event/{id}/teams-shots-model": {
      "get": {
        "operationId": "EventTeamsShotsModel",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "gameRange",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "stat",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventTeamsShotsModelOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "EventTeamsShotsModel serves the endpoint.",
        "tags": [
          "event"
        ]
      }
    },
    "/api/v2/event/{id}/teams-shots-model-odds": {
      "get": {
        "operationId": "EventTeamsShotsModelOdds",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "gameRange",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "stat",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EventTeamsShotsModelOddsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "EventTeamsShotsModelOdds serves the endpoint.",
        "tags": [
          "event"
        ]
      }
    },
    "/api/v2/events/opponent-rankings": {
      "get": {
        "operationId": "OpponentRankings",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "eventIds",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "statType",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OpponentRankingsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "OpponentRankings serves the endpoint.",
        "tags": [
          "events"
        ]
      }
    },
    "/api/v2/health": {
      "get": {
        "operationId": "Health",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/HealthOKBody"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "summary": "Health serves GET /api/health, the probe used by Docker and the load balancer.",
        "tags": [
          "health"
        ]
      }
    },
    "/api/v2/image": {
      "get": {
        "description": "Same body as /api/image/{id}, with the id in the query string instead of the\npath. Both exist and both are called.",
        "operationId": "ImageGet",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "id",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "type",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImageGetOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "ImageGet serves GET /api/image?type=\u0026id=.",
        "tags": [
          "image"
        ]
      },
      "post": {
        "description": "Authorisation is a fixed string in the Authorization header, matching the\noriginal. That is a shared secret with no rotation and no expiry, and it is\npreserved because the form backend that calls this endpoint sends exactly\nthat value — changing it is a coordinated change on both sides.",
        "operationId": "ImageIngest",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ImageIngestInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageEnvelope"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "ImageIngest serves POST /api/image: fetches a crest from the upstream stats provider and stores it.",
        "tags": [
          "image"
        ]
      }
    },
    "/api/v2/image/{id}": {
      "get": {
        "description": "No storage call is made. Supabase's getPublicUrl only formats a URL — it does\nnot check that the object exists — so the original's 404 branch is\nunreachable, and reproducing it would mean adding a round trip the original\nnever made and a status clients have never seen.",
        "operationId": "ImageURL",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "type",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImageURLOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "ImageURL serves GET /api/image/{id}?type=: the public URL of an uploaded image.",
        "tags": [
          "image"
        ]
      }
    },
    "/api/v2/incident": {
      "get": {
        "operationId": "IncidentList",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Incidents"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "IncidentList serves GET /api/incident.",
        "tags": [
          "incident"
        ]
      },
      "post": {
        "operationId": "IncidentCreate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IncidentBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/IncidentCreateCreatedBody"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "IncidentCreate serves POST /api/incident.",
        "tags": [
          "incident"
        ]
      }
    },
    "/api/v2/incident/{id}": {
      "get": {
        "operationId": "IncidentGet",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Incidents"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "IncidentGet serves GET /api/incident/{id}.",
        "tags": [
          "incident"
        ]
      },
      "put": {
        "operationId": "IncidentUpdate",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/IncidentBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageEnvelope"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "IncidentUpdate serves PUT /api/incident/{id}.",
        "tags": [
          "incident"
        ]
      }
    },
    "/api/v2/lineups/players": {
      "get": {
        "description": "The position-change filter is applied in process rather than in SQL, because\nwhether a listed position is a change depends on a per-player history that\ncannot be expressed in the same query. That means every candidate row is\nfetched before paging. The set is bounded by upcoming fixtures — roughly\neleven starters a side for the games in the window — so it stays in the low\nthousands.",
        "operationId": "LineupsPlayers",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "games",
            "schema": {
              "items": {
                "format": "int64",
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "page",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "pageSize",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "positionChangesOnly",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "uniqueTournamentIds",
            "schema": {
              "items": {
                "format": "int64",
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LineupsPlayersOKBody"
                }
              }
            },
            "description": "OK"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "LineupsPlayers serves GET /api/lineups/players: predicted starters across upcoming fixtures, with position changes flagged.",
        "tags": [
          "lineups"
        ]
      }
    },
    "/api/v2/live-foul-card-alerts": {
      "delete": {
        "description": "There is no matching enable. Telegram will not let a bot message a user who\nhas not started it, so activation happens through the bot's /start handler;\nthe web can only turn alerts off.",
        "operationId": "LiveFoulCardAlertsDisable",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LiveFoulCardAlertsDisableOKBody"
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Forbidden"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "LiveFoulCardAlertsDisable serves DELETE /api/live-foul-card-alerts.",
        "tags": [
          "live-foul-card-alerts"
        ]
      },
      "get": {
        "operationId": "LiveFoulCardAlertsGet",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LiveFoulCardAlertsGetOKBody"
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "LiveFoulCardAlertsGet serves GET /api/live-foul-card-alerts.",
        "tags": [
          "live-foul-card-alerts"
        ]
      },
      "patch": {
        "description": "Upserts, so a user who has never opened the filters keeps the all-on defaults\nwithout a row existing until they change something.",
        "operationId": "LiveFoulCardAlertsUpdate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LiveFoulCardAlertsUpdateInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LiveFoulCardAlertsUpdateOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Forbidden"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "LiveFoulCardAlertsUpdate serves PATCH /api/live-foul-card-alerts.",
        "tags": [
          "live-foul-card-alerts"
        ]
      }
    },
    "/api/v2/live-foul-card-alerts/leagues": {
      "get": {
        "description": "Ordered by follower count with nulls last, then by name, so the leagues a\nuser is most likely to want are at the top and the long tail is still\nfindable alphabetically.",
        "operationId": "LiveFoulCardAlertLeagues",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LiveFoulCardAlertLeaguesOKBody"
                }
              }
            },
            "description": "OK"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "LiveFoulCardAlertLeagues serves GET /api/live-foul-card-alerts/leagues: the competitions the live foul and card alert bot covers.",
        "tags": [
          "live-foul-card-alerts"
        ]
      }
    },
    "/api/v2/manager": {
      "get": {
        "description": "Note: the legacy handler listed and inserted *players* here, not managers —\na copy-paste slip that shipped. The behaviour is preserved so existing\ncallers keep working; see docs/PORTING.md.",
        "operationId": "ManagerList",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Players"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "ManagerList serves GET /api/manager.",
        "tags": [
          "manager"
        ]
      },
      "post": {
        "operationId": "ManagerCreate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ManagerCreateInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManagerCreateCreatedBody"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "ManagerCreate serves POST /api/manager, inserting into players as the legacy handler did.",
        "tags": [
          "manager"
        ]
      }
    },
    "/api/v2/manager/{id}": {
      "get": {
        "operationId": "ManagerGet",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Managers"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "ManagerGet serves GET /api/manager/{id}.",
        "tags": [
          "manager"
        ]
      },
      "put": {
        "operationId": "ManagerUpdate",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ManagerUpdateInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageEnvelope"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "ManagerUpdate serves PUT /api/manager/{id}.",
        "tags": [
          "manager"
        ]
      }
    },
    "/api/v2/matches/recent": {
      "get": {
        "description": "`league` is a unique tournament id despite the name.",
        "operationId": "MatchesRecent",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "days_back",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "league",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MatchesRecentOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "MatchesRecent serves GET /api/matches/recent?league=\u0026days_back=.",
        "tags": [
          "matches"
        ]
      }
    },
    "/api/v2/matchup-edges": {
      "get": {
        "operationId": "MatchupEdges",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "debug",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "lookback",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "opponentId",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "seasonId",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "teamId",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "uniqueTournamentId",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MatchupEdgesOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Forbidden"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "MatchupEdges serves GET /api/matchup-edges. Super-admin only.",
        "tags": [
          "matchup-edges"
        ]
      }
    },
    "/api/v2/mcp": {
      "get": {
        "operationId": "MCPGet",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MCPGetInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MCPGetOKBody"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "summary": "MCP serves the endpoint.",
        "tags": [
          "mcp"
        ]
      },
      "options": {
        "operationId": "MCPOptions",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MCPOptionsInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MCPOptionsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "summary": "MCP serves the endpoint.",
        "tags": [
          "mcp"
        ]
      },
      "post": {
        "operationId": "MCPPost",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MCPPostInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MCPPostOKBody"
                }
              }
            },
            "description": "OK"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "summary": "MCP serves the endpoint.",
        "tags": [
          "mcp"
        ]
      }
    },
    "/api/v2/mcp/sse": {
      "get": {
        "operationId": "MCPSSEGet",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MCPSSEGetInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "contentEncoding": "base64",
                  "type": "string"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Content-Type": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "405": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Method Not Allowed"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "MCPSSE serves the endpoint.",
        "tags": [
          "mcp"
        ]
      },
      "options": {
        "operationId": "MCPSSEOptions",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MCPSSEOptionsInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "contentEncoding": "base64",
                  "type": "string"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Content-Type": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "405": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Method Not Allowed"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "MCPSSE serves the endpoint.",
        "tags": [
          "mcp"
        ]
      },
      "post": {
        "operationId": "MCPSSEPost",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MCPSSEPostInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "contentEncoding": "base64",
                  "type": "string"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Content-Type": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "405": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Method Not Allowed"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "MCPSSE serves the endpoint.",
        "tags": [
          "mcp"
        ]
      }
    },
    "/api/v2/models": {
      "get": {
        "operationId": "ModelList",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ModelListOKBody"
                }
              }
            },
            "description": "OK"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "ModelList serves GET /api/models.",
        "tags": [
          "models"
        ]
      },
      "post": {
        "operationId": "ModelCreate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ModelBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Models"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "409": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "ModelCreate serves POST /api/models.",
        "tags": [
          "models"
        ]
      }
    },
    "/api/v2/models/{id}": {
      "delete": {
        "operationId": "ModelDelete",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "ModelDelete serves DELETE /api/models/{id}.",
        "tags": [
          "models"
        ]
      },
      "get": {
        "operationId": "ModelGet",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Models"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "ModelGet serves GET /api/models/{id}.",
        "tags": [
          "models"
        ]
      },
      "put": {
        "operationId": "ModelUpdate",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ModelBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Models"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "ModelUpdate serves PUT /api/models/{id}, applying only the fields present in the request body.",
        "tags": [
          "models"
        ]
      }
    },
    "/api/v2/odds/batch-card-odds": {
      "post": {
        "description": "Every requested id appears in the response, with null where no card market\nwas found, so a client can index the result without checking.",
        "operationId": "OddsBatchCardOdds",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OddsBatchCardOddsInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": {
                    "$ref": "#/components/schemas/BatchCardOdds"
                  },
                  "type": "object"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "OddsBatchCardOdds serves POST /api/odds/batch-card-odds: the match card line for a set of fixtures, keyed by event id.",
        "tags": [
          "odds"
        ]
      }
    },
    "/api/v2/player": {
      "get": {
        "operationId": "PlayerList",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Players"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PlayerList serves GET /api/player.",
        "tags": [
          "player"
        ]
      },
      "post": {
        "operationId": "PlayerCreate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlayerCreateInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlayerCreateCreatedBody"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PlayerCreate serves POST /api/player.",
        "tags": [
          "player"
        ]
      }
    },
    "/api/v2/player/all": {
      "get": {
        "operationId": "PlayerAll",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "awayTeam",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "homeTeam",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "seasonId",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "teamId",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "tournamentId",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "uniqueTournamentId",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlayerAllOKBody"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PlayerAll serves GET /api/player/all.",
        "tags": [
          "player"
        ]
      }
    },
    "/api/v2/player/next-fixture-odds": {
      "get": {
        "operationId": "PlayerNextFixtureOdds",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "nextFixtureId",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "playerId",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlayerNextFixtureOddsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PlayerNextFixtureOdds serves the endpoint.",
        "tags": [
          "player"
        ]
      }
    },
    "/api/v2/player/{id}": {
      "get": {
        "operationId": "PlayerDetail",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "include",
            "schema": {
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": {},
                  "type": "object"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PlayerDetail serves GET /api/player/{id}.",
        "tags": [
          "player"
        ]
      }
    },
    "/api/v2/player/{id}/card-stats": {
      "get": {
        "operationId": "PlayerCardStats",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "includeNational",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "teamId",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlayerCardStatsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PlayerCardStats serves the endpoint.",
        "tags": [
          "player"
        ]
      }
    },
    "/api/v2/player/{id}/expected-cards": {
      "get": {
        "operationId": "PlayerExpectedCards",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "eventId",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "expectedMins",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "includeNational",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "teamId",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlayerExpectedCardsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PlayerExpectedCards serves the endpoint.",
        "tags": [
          "player"
        ]
      }
    },
    "/api/v2/player/{id}/expected-shots": {
      "get": {
        "operationId": "PlayerExpectedShots",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "eventId",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "expectedMins",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "includeNational",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "teamId",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": {},
                  "type": "object"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PlayerExpectedShots serves GET /api/player/{id}/expected-shots.",
        "tags": [
          "player"
        ]
      }
    },
    "/api/v2/player/{id}/expected-sot": {
      "get": {
        "operationId": "PlayerExpectedSOT",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "eventId",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "expectedMins",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "includeNational",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "teamId",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": {},
                  "type": "object"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PlayerExpectedSOT serves GET /api/player/{id}/expected-sot.",
        "tags": [
          "player"
        ]
      }
    },
    "/api/v2/player/{id}/performance": {
      "get": {
        "operationId": "PlayerPerformance",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "includeNational",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "location",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "startedMatch",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "tournamentId",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlayerPerformanceOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PlayerPerformance serves GET /api/player/{id}/performance.",
        "tags": [
          "player"
        ]
      }
    },
    "/api/v2/player/{id}/tournaments-and-seasons": {
      "get": {
        "operationId": "PlayerTournamentsAndSeasons",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PlayerTournamentsAndSeasons serves the endpoint.",
        "tags": [
          "player"
        ]
      }
    },
    "/api/v2/player/{id}/{uniqueTournamentId}/{seasonId}/heatmap": {
      "get": {
        "operationId": "PlayerHeatmap",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "uniqueTournamentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "seasonId",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlayerHeatmapOKBody"
                }
              }
            },
            "description": "OK"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PlayerHeatmap serves .../heatmap — the season-long touch map.",
        "tags": [
          "player"
        ]
      }
    },
    "/api/v2/player/{id}/{uniqueTournamentId}/{seasonId}/heatmap/formation": {
      "get": {
        "operationId": "PlayerHeatmapFormation",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "uniqueTournamentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "seasonId",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "formation",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlayerHeatmapFormationOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PlayerHeatmapFormation serves .../heatmap/formation: the player's average touch positions across every match played in one formation.",
        "tags": [
          "player"
        ]
      }
    },
    "/api/v2/player/{id}/{uniqueTournamentId}/{seasonId}/heatmap/formation-list": {
      "get": {
        "operationId": "PlayerHeatmapFormationList",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "uniqueTournamentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "seasonId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "teamId",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlayerHeatmapFormationListOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PlayerHeatmapFormationList serves .../heatmap/formation-list, the formations a player has appeared in for a given team.",
        "tags": [
          "player"
        ]
      }
    },
    "/api/v2/player/{id}/{uniqueTournamentId}/{seasonId}/percentiles": {
      "get": {
        "operationId": "PlayerPercentiles",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "uniqueTournamentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "seasonId",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "window",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlayerPercentilesOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PlayerPercentiles serves the endpoint.",
        "tags": [
          "player"
        ]
      }
    },
    "/api/v2/player/{id}/{uniqueTournamentId}/{seasonId}/positions": {
      "get": {
        "description": "Only starts count. A substitute's one-off position would otherwise skew the\nchart, so appearances off the bench are excluded.",
        "operationId": "PlayerPositions",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "uniqueTournamentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "seasonId",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlayerPositionsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PlayerPositions serves .../positions: how many matches the player started in each position over a season, most-played first.",
        "tags": [
          "player"
        ]
      }
    },
    "/api/v2/player/{id}/{uniqueTournamentId}/{seasonId}/statistics": {
      "get": {
        "operationId": "PlayerStatistics",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "uniqueTournamentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "seasonId",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlayerStatisticsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PlayerStatistics serves the season statistics endpoint.",
        "tags": [
          "player"
        ]
      }
    },
    "/api/v2/players/from-screener": {
      "get": {
        "operationId": "PlayersFromScreener",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "eventIds",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "search",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlayersFromScreenerOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PlayersFromScreener serves the endpoint.",
        "tags": [
          "players"
        ]
      }
    },
    "/api/v2/previews/{slug}": {
      "get": {
        "description": "The tipster tables are not in the drizzle schema — the original reaches them\nthrough Supabase's PostgREST rather than through the ORM. They live in the\nsame database, so this reads them directly with SQL instead of adding a\nsecond client for two tables. The response shape is unchanged.\n\nThe author is hard-coded. There is no author column; every preview is\npublished under the same byline.",
        "operationId": "PreviewBySlug",
        "parameters": [
          {
            "in": "path",
            "name": "slug",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "contentEncoding": "base64",
                  "type": "string"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PreviewBySlug serves GET /api/previews/{slug}: a published tipster preview with its tips.",
        "tags": [
          "previews"
        ]
      }
    },
    "/api/v2/props/enriched-screener": {
      "get": {
        "operationId": "PropsEnrichedScreener",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "eventId",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "statTypes",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "405": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Method Not Allowed"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PropsEnrichedScreener serves the endpoint.",
        "tags": [
          "props"
        ]
      }
    },
    "/api/v2/props/hunter": {
      "get": {
        "operationId": "PropsHunter",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "endOfDay",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "fixtureId",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "fixtureIds",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "startOfDay",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "stat",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "tournaments",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PropsHunterOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "405": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Method Not Allowed"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PropsHunter serves the endpoint.",
        "tags": [
          "props"
        ]
      }
    },
    "/api/v2/props/outliers": {
      "get": {
        "description": "A league must be named. Scanning every competition would compare prices\nacross markets with different liquidity, where a gap says more about the\nmarket than about the bet.",
        "operationId": "PropsOutliers",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "bookmaker",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "includeStale",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "line",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "market",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "maxOdds",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "minBookmakers",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "minOdds",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "page",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "search",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "sortOrder",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "uniqueTournamentId",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PropsOutliersOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PropsOutliers serves GET /api/props/outliers: player lines where the best price stands well above the market average.",
        "tags": [
          "props"
        ]
      }
    },
    "/api/v2/props/player-data": {
      "post": {
        "operationId": "PropsPlayerData",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PropsPlayerDataInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PropsPlayerDataOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PropsPlayerData serves POST /api/props/player-data: hit rates over the last five, ten and fifteen games for a set of players and stat types.",
        "tags": [
          "props"
        ]
      }
    },
    "/api/v2/props/player-stats-batch": {
      "post": {
        "operationId": "PropsPlayerStatsBatch",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PropsPlayerStatsBatchInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PropsPlayerStatsBatchOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PropsPlayerStatsBatch serves POST /api/props/player-stats-batch.",
        "tags": [
          "props"
        ]
      }
    },
    "/api/v2/props/player-trends": {
      "get": {
        "operationId": "PropsPlayerTrendsGet",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TrendsParams"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": {},
                  "type": "object"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "405": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Method Not Allowed"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PropsPlayerTrends serves the endpoint.",
        "tags": [
          "props"
        ]
      },
      "post": {
        "operationId": "PropsPlayerTrendsPost",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TrendsParams"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "additionalProperties": {},
                  "type": "object"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "405": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Method Not Allowed"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PropsPlayerTrends serves the endpoint.",
        "tags": [
          "props"
        ]
      }
    },
    "/api/v2/props/saved-filters": {
      "delete": {
        "operationId": "PropsSavedFiltersDelete",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "id",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageEnvelope"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PropsSavedFiltersDelete serves DELETE /api/props/saved-filters?id=.",
        "tags": [
          "props"
        ]
      },
      "get": {
        "operationId": "PropsSavedFiltersList",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "type",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PropsSavedFiltersListOKBody"
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PropsSavedFiltersList serves GET /api/props/saved-filters?type=.",
        "tags": [
          "props"
        ]
      },
      "post": {
        "operationId": "PropsSavedFiltersCreate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PropsSavedFiltersCreateInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PropsSavedFiltersCreateCreatedBody"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "409": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PropsSavedFiltersCreate serves POST /api/props/saved-filters.",
        "tags": [
          "props"
        ]
      },
      "put": {
        "description": "The type cannot be changed: a filter saved for one screen would not be\nunderstood by another.",
        "operationId": "PropsSavedFiltersUpdate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PropsSavedFiltersUpdateInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PropsSavedFiltersUpdateOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PropsSavedFiltersUpdate serves PUT /api/props/saved-filters.",
        "tags": [
          "props"
        ]
      }
    },
    "/api/v2/props/screener": {
      "get": {
        "operationId": "PropsScreenerGet",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScreenerParams"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PropsScreenerGetOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "405": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Method Not Allowed"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PropsScreener serves the endpoint.",
        "tags": [
          "props"
        ]
      },
      "post": {
        "operationId": "PropsScreenerPost",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ScreenerParams"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PropsScreenerPostOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "405": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Method Not Allowed"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PropsScreener serves the endpoint.",
        "tags": [
          "props"
        ]
      }
    },
    "/api/v2/props/super-sub-heroes": {
      "get": {
        "description": "Public dashboard data.",
        "operationId": "PropsSuperSubHeroes",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "league",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "window",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PropsSuperSubHeroes serves GET /api/props/super-sub-heroes?league=\u0026window=.",
        "tags": [
          "props"
        ]
      }
    },
    "/api/v2/props/team-screener": {
      "get": {
        "operationId": "PropsTeamScreenerGet",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TeamScreenerFilters"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PropsTeamScreenerGetOKBody"
                }
              }
            },
            "description": "OK"
          },
          "405": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Method Not Allowed"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PropsTeamScreener serves the endpoint.",
        "tags": [
          "props"
        ]
      },
      "post": {
        "operationId": "PropsTeamScreenerPost",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TeamScreenerFilters"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PropsTeamScreenerPostOKBody"
                }
              }
            },
            "description": "OK"
          },
          "405": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Method Not Allowed"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PropsTeamScreener serves the endpoint.",
        "tags": [
          "props"
        ]
      }
    },
    "/api/v2/props/team-screener-by-event": {
      "get": {
        "operationId": "PropsTeamScreenerByEvent",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "eventId",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "statTypes",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PropsTeamScreenerByEventOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "405": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Method Not Allowed"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PropsTeamScreenerByEvent serves the endpoint.",
        "tags": [
          "props"
        ]
      }
    },
    "/api/v2/props/team-trends": {
      "get": {
        "operationId": "PropsTeamTrendsGet",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TeamTrendsParams"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PropsTeamTrendsGetOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "405": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Method Not Allowed"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PropsTeamTrends serves the endpoint.",
        "tags": [
          "props"
        ]
      },
      "post": {
        "operationId": "PropsTeamTrendsPost",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TeamTrendsParams"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PropsTeamTrendsPostOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "405": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Method Not Allowed"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "PropsTeamTrends serves the endpoint.",
        "tags": [
          "props"
        ]
      }
    },
    "/api/v2/referee": {
      "get": {
        "operationId": "RefereeList",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Referees"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "RefereeList serves GET /api/referee.",
        "tags": [
          "referee"
        ]
      },
      "post": {
        "operationId": "RefereeCreate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefereeBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefereeCreateCreatedBody"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "RefereeCreate serves POST /api/referee.",
        "tags": [
          "referee"
        ]
      }
    },
    "/api/v2/referee/{id}": {
      "get": {
        "operationId": "RefereeGet",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefereeGetOKBody"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "RefereeGet serves GET /api/referee/{id}. The path segment is matched against the slug first and only then, if it parses as a number, against the id.",
        "tags": [
          "referee"
        ]
      },
      "put": {
        "operationId": "RefereeUpdate",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefereeBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageEnvelope"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "RefereeUpdate serves PUT /api/referee/{id}.",
        "tags": [
          "referee"
        ]
      }
    },
    "/api/v2/referee/{id}/incidents": {
      "get": {
        "operationId": "RefereeIncidents",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "page",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "season",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "seasonId",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "tournamentId",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "tournamentIds",
            "schema": {
              "items": {
                "format": "int64",
                "type": "integer"
              },
              "type": [
                "array",
                "null"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefereeIncidentsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "RefereeIncidents serves GET /api/referee/{id}/incidents.",
        "tags": [
          "referee"
        ]
      }
    },
    "/api/v2/referee/{id}/statistics": {
      "get": {
        "description": "drizzle's `.select()` over a join returns one object per table, keyed by the\ntable's SQL name, so the response nests under referee_statistics /\nunique_tournaments. That shape is reproduced here with json_build_object.",
        "operationId": "RefereeStatistics",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefereeStatisticsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "RefereeStatistics serves GET /api/referee/{id}/statistics.",
        "tags": [
          "referee"
        ]
      },
      "put": {
        "operationId": "RefereeStatisticsUpsert",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefereeStatisticsUpsertInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageEnvelope"
                }
              }
            },
            "description": "OK"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "RefereeStatisticsUpsert serves PUT /api/referee/{id}/statistics.",
        "tags": [
          "referee"
        ]
      }
    },
    "/api/v2/referee/{id}/tournaments-and-seasons": {
      "get": {
        "operationId": "RefereeTournamentsAndSeasons",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "RefereeTournamentsAndSeasons serves GET /api/referee/{id}/tournaments-and-seasons.",
        "tags": [
          "referee"
        ]
      }
    },
    "/api/v2/referees/list": {
      "get": {
        "operationId": "RefereesList",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "last20GamesOnly",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "leagueStatsOnly",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "page",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "search",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "sortDirection",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "sortField",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "upcomingFixturesOnly",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefereesListOKBody"
                }
              }
            },
            "description": "OK"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "RefereesList serves GET /api/referees/list.",
        "tags": [
          "referees"
        ]
      }
    },
    "/api/v2/search": {
      "get": {
        "operationId": "Search",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "q",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SearchOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Search reproduces GET /api/search.",
        "tags": [
          "search"
        ]
      }
    },
    "/api/v2/season": {
      "get": {
        "operationId": "SeasonList",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Seasons"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "SeasonList serves GET /api/season.",
        "tags": [
          "season"
        ]
      },
      "post": {
        "operationId": "SeasonCreate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SeasonBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SeasonCreateCreatedBody"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "SeasonCreate serves POST /api/season.",
        "tags": [
          "season"
        ]
      }
    },
    "/api/v2/season/{id}": {
      "get": {
        "operationId": "SeasonGet",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Seasons"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "SeasonGet serves GET /api/season/{id}.",
        "tags": [
          "season"
        ]
      },
      "put": {
        "operationId": "SeasonUpdate",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SeasonBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageEnvelope"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "SeasonUpdate serves PUT /api/season/{id}.",
        "tags": [
          "season"
        ]
      }
    },
    "/api/v2/sitemap-blog.xml": {
      "get": {
        "description": "A Notion failure is not an error here. The original's getAllPosts caught\neverything and returned an empty list, so an outage at Notion shrinks the\nsitemap to its index page rather than returning a 500.",
        "operationId": "SitemapBlog",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "contentEncoding": "base64",
                  "type": "string"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Content-Type": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "SitemapBlog serves GET /api/sitemap-blog.xml: the betting-academy index plus one entry per Notion post.",
        "tags": [
          "sitemap-blog.xml"
        ]
      }
    },
    "/api/v2/sitemap-fixtures.xml": {
      "get": {
        "operationId": "SitemapFixtures",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "contentEncoding": "base64",
                  "type": "string"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Content-Type": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "SitemapFixtures serves GET /api/sitemap-fixtures.xml.",
        "tags": [
          "sitemap-fixtures.xml"
        ]
      }
    },
    "/api/v2/sitemap-leagues.xml": {
      "get": {
        "operationId": "SitemapLeagues",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "contentEncoding": "base64",
                  "type": "string"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Content-Type": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "SitemapLeagues serves GET /api/sitemap-leagues.xml.",
        "tags": [
          "sitemap-leagues.xml"
        ]
      }
    },
    "/api/v2/sitemap-players.xml": {
      "get": {
        "operationId": "SitemapPlayers",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "contentEncoding": "base64",
                  "type": "string"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Content-Type": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "SitemapPlayers serves GET /api/sitemap-players.xml.",
        "tags": [
          "sitemap-players.xml"
        ]
      }
    },
    "/api/v2/sitemap-referees.xml": {
      "get": {
        "operationId": "SitemapReferees",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "contentEncoding": "base64",
                  "type": "string"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Content-Type": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "SitemapReferees serves GET /api/sitemap-referees.xml.",
        "tags": [
          "sitemap-referees.xml"
        ]
      }
    },
    "/api/v2/sitemap-static.xml": {
      "get": {
        "operationId": "SitemapStatic",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "contentEncoding": "base64",
                  "type": "string"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Content-Type": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "summary": "SitemapStatic serves GET /api/sitemap-static.xml.",
        "tags": [
          "sitemap-static.xml"
        ]
      }
    },
    "/api/v2/sitemap-teams.xml": {
      "get": {
        "operationId": "SitemapTeams",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "contentEncoding": "base64",
                  "type": "string"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Content-Type": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "SitemapTeams serves GET /api/sitemap-teams.xml.",
        "tags": [
          "sitemap-teams.xml"
        ]
      }
    },
    "/api/v2/sitemap.xml": {
      "get": {
        "operationId": "SitemapIndex",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "contentEncoding": "base64",
                  "type": "string"
                }
              }
            },
            "description": "OK",
            "headers": {
              "Content-Type": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "summary": "SitemapIndex serves GET /api/sitemap.xml.",
        "tags": [
          "sitemap.xml"
        ]
      }
    },
    "/api/v2/stripe/apply-retention-discount": {
      "post": {
        "description": "The local flag is not checked before granting, so the endpoint will issue a\nsecond coupon to a user who already had one. The UI is what stops that today.",
        "operationId": "StripeApplyRetentionDiscount",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StripeApplyRetentionDiscountOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "StripeApplyRetentionDiscount serves POST /api/stripe/apply-retention-discount: 30% off one invoice, offered when a user starts to cancel.",
        "tags": [
          "stripe"
        ]
      }
    },
    "/api/v2/stripe/cancel-subscription": {
      "post": {
        "description": "Cancels at the end of the paid period rather than immediately, so a user who\nhas paid for the month keeps the month.",
        "operationId": "StripeCancelSubscription",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StripeCancelSubscriptionOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "StripeCancelSubscription serves POST /api/stripe/cancel-subscription.",
        "tags": [
          "stripe"
        ]
      }
    },
    "/api/v2/stripe/create-checkout-session": {
      "post": {
        "description": "There are two paths. A user who is already subscribed is sent to the billing\nportal's plan-change flow, because running them through checkout again would\ncreate a second subscription and bill them twice. Everyone else gets a normal\ncheckout session, reusing their Stripe customer if they have lapsed and come\nback so their billing history stays on one customer.",
        "operationId": "StripeCreateCheckoutSession",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StripeCreateCheckoutSessionInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StripeCreateCheckoutSessionOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "StripeCreateCheckoutSession serves POST /api/stripe/create-checkout-session.",
        "tags": [
          "stripe"
        ]
      }
    },
    "/api/v2/stripe/create-portal-session": {
      "post": {
        "operationId": "StripeCreatePortalSession",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StripeCreatePortalSessionOKBody"
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "StripeCreatePortalSession serves POST /api/stripe/create-portal-session: a one-time link into Stripe's self-service billing portal.",
        "tags": [
          "stripe"
        ]
      }
    },
    "/api/v2/stripe/pause-subscription": {
      "post": {
        "description": "Pausing marks invoices uncollectible for the chosen window rather than\ncancelling, so the subscription and its billing date survive.",
        "operationId": "StripePauseSubscription",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/StripePauseSubscriptionInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StripePauseSubscriptionOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "StripePauseSubscription serves POST /api/stripe/pause-subscription.",
        "tags": [
          "stripe"
        ]
      }
    },
    "/api/v2/stripe/resume-pause": {
      "post": {
        "operationId": "StripeResumePause",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StripeResumePauseOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "StripeResumePause serves POST /api/stripe/resume-pause.",
        "tags": [
          "stripe"
        ]
      }
    },
    "/api/v2/stripe/subscription-status": {
      "get": {
        "description": "A user with no subscription is a 200 with a null subscription, not a 404 —\nhaving never paid is a normal state, not a missing resource.",
        "operationId": "StripeSubscriptionStatus",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StripeSubscriptionStatusOKBody"
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "StripeSubscriptionStatus serves GET /api/stripe/subscription-status.",
        "tags": [
          "stripe"
        ]
      }
    },
    "/api/v2/stripe/webhook": {
      "post": {
        "description": "The body is read raw and verified before anything else looks at it. Stripe\nsigns the exact bytes, so decoding and re-encoding would change key order and\nbreak verification — this handler must be the first thing to touch the body.\n\nEvery outcome except a signature failure is a 200. Stripe retries a non-2xx,\nand retrying will not fix an event we chose not to handle or a row that is\nalready up to date.",
        "operationId": "StripeWebhook",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/StripeWebhookOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "StripeWebhook serves POST /api/stripe/webhook.",
        "tags": [
          "stripe"
        ]
      }
    },
    "/api/v2/suggestions": {
      "post": {
        "description": "Every failure answers 200 with whatever suggestions could be produced —\noften none. These are decoration under a reply the user already has, and a\nfailed chip request must not surface as an error.",
        "operationId": "Suggestions",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SuggestionsInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SuggestionsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Forbidden"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "Suggestions serves POST /api/suggestions. Super-admin only.",
        "tags": [
          "suggestions"
        ]
      }
    },
    "/api/v2/team": {
      "get": {
        "operationId": "TeamList",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Teams"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TeamList serves GET /api/team.",
        "tags": [
          "team"
        ]
      },
      "post": {
        "operationId": "TeamCreate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TeamCreateInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamCreateCreatedBody"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TeamCreate serves POST /api/team.",
        "tags": [
          "team"
        ]
      }
    },
    "/api/v2/team-shots-glm-predictions": {
      "get": {
        "operationId": "TeamShotsGLMPredictions",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "date",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "eventIds",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "search",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "uniqueTournamentId",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "uniqueTournamentIds",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "metric",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "page",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "perPage",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "positiveEv",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamShotsGLMPredictionsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Forbidden"
          },
          "405": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Method Not Allowed"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TeamShotsGLMPredictions serves the endpoint.",
        "tags": [
          "team-shots-glm-predictions"
        ]
      }
    },
    "/api/v2/team/{id}": {
      "get": {
        "operationId": "TeamDetail",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "include",
            "schema": {
              "items": {
                "type": "string"
              },
              "type": [
                "array",
                "null"
              ]
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "idType",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamDetailOKBody"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TeamDetail serves GET /api/team/{id}.",
        "tags": [
          "team"
        ]
      }
    },
    "/api/v2/team/{id}/betting-history": {
      "get": {
        "operationId": "TeamBettingHistory",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "brackets",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "from",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "homeAway",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "side",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "stake",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "to",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "tournamentId",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamBettingHistoryOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TeamBettingHistory serves GET /api/team/{id}/betting-history.",
        "tags": [
          "team"
        ]
      }
    },
    "/api/v2/team/{id}/event-statistics": {
      "get": {
        "operationId": "TeamEventStatistics",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "eventHalf",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "eventType",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "h2h",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "season",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "statisticKey",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "tournamentIds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamEventStatisticsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TeamEventStatistics serves GET /api/team/{id}/event-statistics.",
        "tags": [
          "team"
        ]
      }
    },
    "/api/v2/team/{id}/events": {
      "get": {
        "operationId": "TeamEvents",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "seasonId",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "status",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "tournamentId",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamEventsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TeamEvents serves GET /api/team/{id}/events.",
        "tags": [
          "team"
        ]
      }
    },
    "/api/v2/team/{id}/fixtures-with-odds": {
      "get": {
        "operationId": "TeamFixturesWithOdds",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "seasonId",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "status",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "tournamentId",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamFixturesWithOddsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TeamFixturesWithOdds serves GET /api/team/{id}/fixtures-with-odds.",
        "tags": [
          "team"
        ]
      }
    },
    "/api/v2/team/{id}/last-formation": {
      "get": {
        "operationId": "TeamLastFormation",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamLastFormationOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TeamLastFormation serves GET /api/team/{id}/last-formation.",
        "tags": [
          "team"
        ]
      }
    },
    "/api/v2/team/{id}/last-games": {
      "get": {
        "operationId": "TeamLastGames",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "page",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "status",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamLastGamesOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TeamLastGames serves GET /api/team/{id}/last-games.",
        "tags": [
          "team"
        ]
      }
    },
    "/api/v2/team/{id}/last-lineup": {
      "get": {
        "operationId": "TeamLastLineup",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamLastLineupOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TeamLastLineup serves GET /api/team/{id}/last-lineup.",
        "tags": [
          "team"
        ]
      }
    },
    "/api/v2/team/{id}/performance": {
      "get": {
        "operationId": "TeamPerformance",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "eventHalf",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "h2h",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "location",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "season",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "seasonId",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "tournamentId",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamPerformanceOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TeamPerformance serves GET /api/team/{id}/performance.",
        "tags": [
          "team"
        ]
      }
    },
    "/api/v2/team/{id}/performanceDataCollection": {
      "get": {
        "description": "Same query as TeamPerformance with two differences: it accepts a seasonId\nfilter, and its season filter is unconditional because it has no h2h mode.",
        "operationId": "TeamPerformanceDataCollection",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "eventHalf",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "h2h",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "location",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "season",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "seasonId",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "tournamentId",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamPerformanceDataCollectionOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TeamPerformanceDataCollection serves GET /api/team/{id}/performanceDataCollection.",
        "tags": [
          "team"
        ]
      }
    },
    "/api/v2/team/{id}/players/AGScollection": {
      "get": {
        "operationId": "TeamPlayersAGSCollection",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "h2h",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "location",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "season",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "seasonId",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "status",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "fixtureId",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "tournamentId",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamPlayersAGSCollectionOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TeamPlayersAGSCollection serves GET /api/team/{id}/players/AGScollection.",
        "tags": [
          "team"
        ]
      }
    },
    "/api/v2/team/{id}/players/performance": {
      "get": {
        "operationId": "TeamPlayersPerformance",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "h2h",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "location",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "season",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "seasonId",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "status",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "fixtureId",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "tournamentId",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamPlayersPerformanceOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TeamPlayersPerformance serves GET /api/team/{id}/players/performance.",
        "tags": [
          "team"
        ]
      }
    },
    "/api/v2/team/{id}/roster": {
      "get": {
        "operationId": "TeamRoster",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamRosterOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TeamRoster serves GET /api/team/{id}/roster.",
        "tags": [
          "team"
        ]
      }
    },
    "/api/v2/team/{id}/statistics": {
      "get": {
        "description": "seasonId goes through JSNumber because the original passed `Number(seasonId)`\nstraight into the where clause. Omitting it is a 500 on production, not a\n404, and that is the status this reproduces.",
        "operationId": "TeamStatistics",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "seasonId",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamStatisticsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TeamStatistics serves GET /api/team/{id}/statistics.",
        "tags": [
          "team"
        ]
      }
    },
    "/api/v2/team/{id}/sub-split": {
      "get": {
        "operationId": "TeamSubSplit",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "matches",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SubSplitResponse"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TeamSubSplit serves GET /api/team/{id}/sub-split, the share of a team's shots, tackles and fouls contributed by players who came off the bench.",
        "tags": [
          "team"
        ]
      }
    },
    "/api/v2/team/{id}/tournaments-and-seasons": {
      "get": {
        "operationId": "TeamTournamentsAndSeasons",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TeamTournamentsAndSeasons serves GET /api/team/{id}/tournaments-and-seasons.",
        "tags": [
          "team"
        ]
      }
    },
    "/api/v2/team/{id}/upcoming-events": {
      "get": {
        "operationId": "TeamUpcomingEvents",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "page",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamUpcomingEventsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TeamUpcomingEvents serves GET /api/team/{id}/upcoming-events, which despite the name returns the team's fixtures newest first, past and future alike.",
        "tags": [
          "team"
        ]
      }
    },
    "/api/v2/teams/comparison": {
      "get": {
        "operationId": "TeamsComparison",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "awayTeamId",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "homeTeamId",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "seasonId",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "tournamentId",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TeamsComparisonOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TeamsComparison serves GET /api/teams/comparison.",
        "tags": [
          "teams"
        ]
      }
    },
    "/api/v2/tipster/preview": {
      "get": {
        "description": "Scoped to the caller: a tipster sees only what they wrote.",
        "operationId": "TipsterPreviewList",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TipsterPreviewListOKBody"
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TipsterPreviewList serves GET /api/tipster/preview: the caller's own drafts and published previews, newest first.",
        "tags": [
          "tipster"
        ]
      },
      "post": {
        "description": "The preview is created as a draft.",
        "operationId": "TipsterPreviewCreate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TipsterPreviewBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TipsterPreviewCreateCreatedBody"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TipsterPreviewCreate serves POST /api/tipster/preview.",
        "tags": [
          "tipster"
        ]
      }
    },
    "/api/v2/tipster/preview/create": {
      "post": {
        "description": "The same operation as POST /api/tipster/preview with two differences the\noriginal has and clients depend on: no status is set, so the column default\napplies, and the slug is echoed alongside the preview.",
        "operationId": "TipsterPreviewCreateAlias",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TipsterPreviewBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TipsterPreviewCreateAliasCreatedBody"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TipsterPreviewCreateAlias serves POST /api/tipster/preview/create.",
        "tags": [
          "tipster"
        ]
      }
    },
    "/api/v2/tipster/preview/{id}": {
      "delete": {
        "description": "The tips go with it by cascade. Deleting a preview that is not the caller's\nis a 200 that removed nothing, because the original does not check the\naffected row count.",
        "operationId": "TipsterPreviewDelete",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageEnvelope"
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TipsterPreviewDelete serves DELETE /api/tipster/preview/{id}.",
        "tags": [
          "tipster"
        ]
      },
      "get": {
        "description": "Scoped to the author, so another tipster's draft is a 404 rather than a 403 —\nthe existence of the draft is not disclosed.",
        "operationId": "TipsterPreviewGet",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TipsterPreviewGetOKBody"
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TipsterPreviewGet serves GET /api/tipster/preview/{id}.",
        "tags": [
          "tipster"
        ]
      },
      "put": {
        "description": "Ownership is checked against a row read without an author filter, so a\npreview belonging to someone else is a 403 rather than a 404 here — unlike\nGET and DELETE, which scope the lookup. That asymmetry is the original's.\n\nPublishing stamps published_at once. Re-publishing an already-published\npreview leaves the original date, so the first publication is what is dated.",
        "operationId": "TipsterPreviewUpdate",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TipsterPreviewUpdateInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TipsterPreviewUpdateOKBody"
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TipsterPreviewUpdate serves PUT /api/tipster/preview/{id}.",
        "tags": [
          "tipster"
        ]
      }
    },
    "/api/v2/tournament": {
      "get": {
        "operationId": "TournamentList",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "days",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "withinHours",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "upcomingFixtures",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TournamentListOKBody"
                }
              }
            },
            "description": "OK"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TournamentList serves GET /api/tournament.",
        "tags": [
          "tournament"
        ]
      }
    },
    "/api/v2/tournament/upcoming-fixtures-multi": {
      "post": {
        "description": "uniqueTournamentIds wins when both are supplied. A cup is one unique\ntournament split across a tournament per group, so filtering by tournament id\nalone drops most of its fixtures; tournamentIds stays supported for callers\nthat already send it.\n\nThe failure branch answers with a message and no `error` key, unlike most of\nthe API. That is the original's shape.",
        "operationId": "TournamentUpcomingFixturesMulti",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpcomingMultiBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TournamentUpcomingFixturesMultiOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TournamentUpcomingFixturesMulti serves POST /api/tournament/upcoming-fixtures-multi: the next fixtures across several competitions at once.",
        "tags": [
          "tournament"
        ]
      }
    },
    "/api/v2/tournament/{id}": {
      "get": {
        "operationId": "TournamentDetail",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "leagueId",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TournamentDetailOKBody"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TournamentDetail serves GET /api/tournament/{id}, where {id} is a slug.",
        "tags": [
          "tournament"
        ]
      }
    },
    "/api/v2/tournament/{id}/seasons": {
      "get": {
        "operationId": "TournamentSeasons",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TournamentSeasonsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TournamentSeasons serves GET /api/tournament/{id}/seasons.",
        "tags": [
          "tournament"
        ]
      }
    },
    "/api/v2/tournament/{id}/upcoming-fixtures": {
      "get": {
        "operationId": "TournamentUpcomingFixtures",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "days",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "endOfDay",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "startOfDay",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TournamentUpcomingFixturesOKBody"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TournamentUpcomingFixtures serves GET /api/tournament/{id}/upcoming-fixtures.",
        "tags": [
          "tournament"
        ]
      }
    },
    "/api/v2/tournament/{id}/{seasonId}/events": {
      "get": {
        "operationId": "TournamentSeasonEvents",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "seasonId",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TournamentSeasonEventsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TournamentSeasonEvents serves GET /api/tournament/{id}/{seasonId}/events.",
        "tags": [
          "tournament"
        ]
      }
    },
    "/api/v2/tournament/{id}/{seasonId}/players": {
      "get": {
        "description": "Two things about the original are kept deliberately.\n\nThe tournament and season are resolved and checked, but the player query\nfilters on the season alone — it never joins back to the tournament. A\ncomment in the original explains why: an earlier version referenced the\nseasons table without joining it and Postgres rejected the query outright, so\nthe fix dropped the clause on the grounds that a season id already identifies\none tournament season. The lookups above therefore act as validation only.\n\nThe result is unbounded and unordered, exactly as the original. Adding a\nLIMIT here would change which players a client receives.",
        "operationId": "TournamentSeasonPlayers",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "seasonId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TournamentSeasonPlayersOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TournamentSeasonPlayers serves GET /api/tournament/{id}/{seasonId}/players: every player with statistics recorded in a season, with their team.",
        "tags": [
          "tournament"
        ]
      }
    },
    "/api/v2/tournament/{id}/{seasonId}/rounds": {
      "get": {
        "operationId": "TournamentRounds",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "seasonId",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TournamentRoundsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TournamentRounds serves GET /api/tournament/{id}/{seasonId}/rounds.",
        "tags": [
          "tournament"
        ]
      }
    },
    "/api/v2/tournament/{id}/{seasonId}/standing": {
      "get": {
        "description": "Three aggregates are merged onto the standings rows: what a team's own\nplayers did, what their opponents' players did, and the match-level event\nstatistics pivoted per fixture. A team missing from any of them contributes\nzeroes, exactly as `forMap.get(id) || {}` did.",
        "operationId": "TournamentSeasonStanding",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "seasonId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TournamentSeasonStandingOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TournamentSeasonStanding serves GET /api/tournament/{id}/{seasonId}/standing: the league table with a full season statistical profile attached to every row.",
        "tags": [
          "tournament"
        ]
      }
    },
    "/api/v2/tournament/{id}/{seasonId}/standing/betting-trends": {
      "get": {
        "description": "The shape is a map keyed by team id, not a list.\n\nThis runs six queries per team — a hundred and twenty for a twenty-team\nleague — because that is what the original does, and each query's CTEs are\nscoped to one team. Collapsing them into six league-wide queries would return\nthe same JSON from a twentieth of the work, but it is a rewrite rather than a\nport and belongs in its own change, measured against these goldens. The teams\nare at least walked concurrently rather than serially.",
        "operationId": "TournamentBettingTrends",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "seasonId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TournamentBettingTrendsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TournamentBettingTrends serves GET /api/tournament/{id}/{seasonId}/standing/betting-trends: hit rates for corner, card, goal, BTTS and xG lines, per team, split home and away.",
        "tags": [
          "tournament"
        ]
      }
    },
    "/api/v2/tournament/{id}/{seasonId}/{round}/events": {
      "get": {
        "operationId": "TournamentRoundEvents",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "seasonId",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "round",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TournamentRoundEventsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TournamentRoundEvents serves GET /api/tournament/{id}/{seasonId}/{round}/events.",
        "tags": [
          "tournament"
        ]
      }
    },
    "/api/v2/tracker/bet": {
      "delete": {
        "operationId": "TrackerBetRemove",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "id",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageEnvelope"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TrackerBetRemove serves DELETE /api/tracker/bet?id=.",
        "tags": [
          "tracker"
        ]
      },
      "get": {
        "operationId": "TrackerBetList",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "page",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "status",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackerBetListOKBody"
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TrackerBetList serves GET /api/tracker/bet: the caller's tracked bets, with a P\u0026L summary and their tag vocabulary.",
        "tags": [
          "tracker"
        ]
      },
      "patch": {
        "operationId": "TrackerBetUpdate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TrackerBetUpdateInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackerBetUpdateOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TrackerBetUpdate serves PATCH /api/tracker/bet: edits and settlement.",
        "tags": [
          "tracker"
        ]
      },
      "post": {
        "operationId": "TrackerBetAdd",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TrackerBetBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackerBetAddCreatedBody"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "409": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TrackerBetAdd serves POST /api/tracker/bet.",
        "tags": [
          "tracker"
        ]
      }
    },
    "/api/v2/tracker/settings": {
      "get": {
        "operationId": "TrackerSettingsGet",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackerSettingsGetOKBody"
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TrackerSettingsGet serves GET /api/tracker/settings.",
        "tags": [
          "tracker"
        ]
      },
      "put": {
        "operationId": "TrackerSettingsPut",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TrackerSettingsPutInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TrackerSettingsPutOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "TrackerSettingsPut serves PUT /api/tracker/settings.",
        "tags": [
          "tracker"
        ]
      }
    },
    "/api/v2/tweets/recent": {
      "get": {
        "description": "Cached in process for five minutes and at the edge for the same, because the\nupstream is rate-limited and this is rendered on a public page.\n\nThe failure statuses are unusually granular for this API — 504 for a timeout,\n503 for a network failure, 500 for anything the upstream returned — because\nthe widget retries on some and gives up on others.",
        "operationId": "TweetsRecent",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "since",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {}
              }
            },
            "description": "OK"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          },
          "503": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Service Unavailable"
          },
          "504": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Gateway Timeout"
          }
        },
        "summary": "TweetsRecent serves GET /api/tweets/recent?limit=\u0026since=.",
        "tags": [
          "tweets"
        ]
      }
    },
    "/api/v2/unique-tournament": {
      "get": {
        "operationId": "UniqueTournamentList",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UniqueTournamentListOKBody"
                }
              }
            },
            "description": "OK"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "UniqueTournamentList serves GET /api/unique-tournament.",
        "tags": [
          "unique-tournament"
        ]
      },
      "post": {
        "operationId": "UniqueTournamentCreate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UniqueTournamentCreateInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UniqueTournamentCreateCreatedBody"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "UniqueTournamentCreate serves POST /api/unique-tournament.",
        "tags": [
          "unique-tournament"
        ]
      }
    },
    "/api/v2/unique-tournament/{uniqueTournamentId}": {
      "get": {
        "operationId": "UniqueTournamentDetail",
        "parameters": [
          {
            "in": "path",
            "name": "uniqueTournamentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UniqueTournamentDetailOKBody"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "UniqueTournamentDetail serves GET /api/unique-tournament/{uniqueTournamentId}.",
        "tags": [
          "unique-tournament"
        ]
      }
    },
    "/api/v2/unique-tournament/{uniqueTournamentId}/seasons": {
      "get": {
        "operationId": "UniqueTournamentSeasons",
        "parameters": [
          {
            "in": "path",
            "name": "uniqueTournamentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UniqueTournamentSeasonsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "UniqueTournamentSeasons serves GET /api/unique-tournament/{uniqueTournamentId}/seasons.",
        "tags": [
          "unique-tournament"
        ]
      }
    },
    "/api/v2/unique-tournament/{uniqueTournamentId}/{seasonId}/cup-tree": {
      "get": {
        "description": "A season with no bracket is a 200 with `data: null`, not a 404 — the client\ndistinguishes \"this competition has no cup tree\" from \"no such competition\".",
        "operationId": "UniqueTournamentCupTree",
        "parameters": [
          {
            "in": "path",
            "name": "uniqueTournamentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "seasonId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UniqueTournamentCupTreeOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "UniqueTournamentCupTree serves GET /api/unique-tournament/{uniqueTournamentId}/{seasonId}/cup-tree.",
        "tags": [
          "unique-tournament"
        ]
      }
    },
    "/api/v2/unique-tournament/{uniqueTournamentId}/{seasonId}/events": {
      "get": {
        "operationId": "UniqueTournamentSeasonEvents",
        "parameters": [
          {
            "in": "path",
            "name": "uniqueTournamentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "seasonId",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UniqueTournamentSeasonEventsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "UniqueTournamentSeasonEvents serves GET /api/unique-tournament/{uniqueTournamentId}/{seasonId}/events.",
        "tags": [
          "unique-tournament"
        ]
      }
    },
    "/api/v2/unique-tournament/{uniqueTournamentId}/{seasonId}/player-stats": {
      "get": {
        "description": "A season with no appearances is a 404, not an empty list — that is the\noriginal's choice and clients branch on it.",
        "operationId": "UniqueTournamentPlayerStats",
        "parameters": [
          {
            "in": "path",
            "name": "uniqueTournamentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "seasonId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "teamId",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UniqueTournamentPlayerStatsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "UniqueTournamentPlayerStats serves GET /api/unique-tournament/{uniqueTournamentId}/{seasonId}/player-stats.",
        "tags": [
          "unique-tournament"
        ]
      }
    },
    "/api/v2/unique-tournament/{uniqueTournamentId}/{seasonId}/rounds": {
      "get": {
        "operationId": "UniqueTournamentRounds",
        "parameters": [
          {
            "in": "path",
            "name": "uniqueTournamentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "seasonId",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UniqueTournamentRoundsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "UniqueTournamentRounds serves GET /api/unique-tournament/{uniqueTournamentId}/{seasonId}/rounds.",
        "tags": [
          "unique-tournament"
        ]
      }
    },
    "/api/v2/unique-tournament/{uniqueTournamentId}/{seasonId}/standing": {
      "get": {
        "description": "Rows are bucketed by tournament_id, which is what separates a cup's groups\nfrom each other; a league produces exactly one bucket.",
        "operationId": "UniqueTournamentStanding",
        "parameters": [
          {
            "in": "path",
            "name": "uniqueTournamentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "seasonId",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UniqueTournamentStandingOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "UniqueTournamentStanding serves GET /api/unique-tournament/{uniqueTournamentId}/{seasonId}/standing.",
        "tags": [
          "unique-tournament"
        ]
      }
    },
    "/api/v2/unique-tournament/{uniqueTournamentId}/{seasonId}/{round}/events": {
      "get": {
        "operationId": "UniqueTournamentRoundEvents",
        "parameters": [
          {
            "in": "path",
            "name": "uniqueTournamentId",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "in": "path",
            "name": "seasonId",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "in": "path",
            "name": "round",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UniqueTournamentRoundEventsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "UniqueTournamentRoundEvents serves GET /api/unique-tournament/{uniqueTournamentId}/{seasonId}/{round}/events.",
        "tags": [
          "unique-tournament"
        ]
      }
    },
    "/api/v2/user/{id}/favorite": {
      "get": {
        "operationId": "FavoriteTeamsList",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FavoriteTeamsListOKBody"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "FavoriteTeamsList serves GET /api/user/{id}/favorite.",
        "tags": [
          "user"
        ]
      },
      "patch": {
        "operationId": "FavoriteTeamNotes",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FavoriteBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageEnvelope"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "FavoriteTeamNotes serves PATCH /api/user/{id}/favorite.",
        "tags": [
          "user"
        ]
      },
      "post": {
        "operationId": "FavoriteTeamAdd",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FavoriteBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageEnvelope"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "FavoriteTeamAdd serves POST /api/user/{id}/favorite.",
        "tags": [
          "user"
        ]
      },
      "put": {
        "operationId": "FavoriteTeamRemove",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FavoriteBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageEnvelope"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "FavoriteTeamRemove serves PUT /api/user/{id}/favorite, which deletes.",
        "tags": [
          "user"
        ]
      }
    },
    "/api/v2/user/{id}/favorite-players": {
      "get": {
        "operationId": "FavoritePlayersList",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FavoritePlayersListOKBody"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "FavoritePlayersList serves GET /api/user/{id}/favorite-players.",
        "tags": [
          "user"
        ]
      },
      "patch": {
        "operationId": "FavoritePlayerNotes",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FavoriteBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageEnvelope"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "FavoritePlayerNotes serves PATCH /api/user/{id}/favorite-players.",
        "tags": [
          "user"
        ]
      },
      "post": {
        "operationId": "FavoritePlayerAdd",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FavoriteBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageEnvelope"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "FavoritePlayerAdd serves POST /api/user/{id}/favorite-players.",
        "tags": [
          "user"
        ]
      },
      "put": {
        "operationId": "FavoritePlayerRemove",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FavoriteBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageEnvelope"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "FavoritePlayerRemove serves PUT /api/user/{id}/favorite-players.",
        "tags": [
          "user"
        ]
      }
    },
    "/api/v2/user/{id}/is-favorite": {
      "get": {
        "operationId": "FavoriteTeamCheck",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "teamId",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FavoriteTeamCheckOKBody"
                }
              }
            },
            "description": "OK"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "FavoriteTeamCheck serves GET /api/user/{id}/is-favorite.",
        "tags": [
          "user"
        ]
      }
    },
    "/api/v2/user/{id}/is-favorite-player": {
      "get": {
        "operationId": "FavoritePlayerCheck",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "playerId",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FavoritePlayerCheckOKBody"
                }
              }
            },
            "description": "OK"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "FavoritePlayerCheck serves GET /api/user/{id}/is-favorite-player.",
        "tags": [
          "user"
        ]
      }
    },
    "/api/v2/value-bet-lineup-alerts": {
      "delete": {
        "description": "The identifiers come from the request body, not the query string, which is\nunusual for a DELETE but is what the client sends.",
        "operationId": "ValueBetLineupAlertsRemove",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ValueBetLineupAlertsRemoveInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValueBetLineupAlertsRemoveOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Forbidden"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "ValueBetLineupAlertsRemove serves DELETE /api/value-bet-lineup-alerts.",
        "tags": [
          "value-bet-lineup-alerts"
        ]
      },
      "get": {
        "description": "Only the two identifying columns come back — this feeds a set of \"alert is\non\" toggles, not a display list.",
        "operationId": "ValueBetLineupAlertsList",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValueBetLineupAlertsListOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Forbidden"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "ValueBetLineupAlertsList serves GET /api/value-bet-lineup-alerts: which selections the caller is waiting on a lineup for.",
        "tags": [
          "value-bet-lineup-alerts"
        ]
      },
      "post": {
        "description": "Re-arming an alert that already exists updates it rather than failing, so a\nuser toggling one off and on again does not hit a duplicate key.",
        "operationId": "ValueBetLineupAlertsCreate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ValueBetLineupAlertsCreateInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValueBetLineupAlertsCreateOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Forbidden"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "ValueBetLineupAlertsCreate serves POST /api/value-bet-lineup-alerts.",
        "tags": [
          "value-bet-lineup-alerts"
        ]
      }
    },
    "/api/v2/value-bet-reports": {
      "delete": {
        "operationId": "ValueBetReportsRemove",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ValueBetReportsRemoveInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValueBetReportsRemoveOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Forbidden"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "ValueBetReportsRemove serves DELETE /api/value-bet-reports.",
        "tags": [
          "value-bet-reports"
        ]
      },
      "get": {
        "description": "The result is keyed \"playerId_matchId\" so a client can look up a bet it is\nalready rendering without scanning a list.",
        "operationId": "ValueBetReportsList",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "matchIds",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "playerIds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValueBetReportsListOKBody"
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Forbidden"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "ValueBetReportsList serves GET /api/value-bet-reports: what the community has flagged about a set of bets, and what the caller flagged themselves.",
        "tags": [
          "value-bet-reports"
        ]
      },
      "post": {
        "description": "One report per user per bet: filing again replaces the previous one rather\nthan stacking, so one user cannot inflate a community count.",
        "operationId": "ValueBetReportsCreate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ValueBetReportsCreateInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValueBetReportsCreateOKBody"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Forbidden"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "ValueBetReportsCreate serves POST /api/value-bet-reports.",
        "tags": [
          "value-bet-reports"
        ]
      }
    },
    "/api/v2/value-bets": {
      "get": {
        "description": "This is the older surface, kept alongside the scanner. It groups on the\nserver but ranks purely in SQL — unlike value-bets-v2, whose displayed edge\nis recomputed per model and therefore has to sort in memory.",
        "operationId": "ValueBets",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "date",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "eventId",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "includePast",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "line",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "marketType",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "maxEV",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "maxOdd",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "minEV",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "minOdd",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "opponentMultiplier",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "search",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "source",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "specificDate",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "uniqueTournamentId",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "upcomingOnly",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "hitRateSort",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "inPredictedLineup",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "maxLastGameWithTeam",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "startedLastGame",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "action",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "page",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "perPage",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "sortBy",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "sortOrder",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValueBetsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "ValueBets serves GET /api/value-bets: the value-bet listing, and the filter options behind ?action=filter-options.",
        "tags": [
          "value-bets"
        ]
      },
      "options": {
        "operationId": "ValueBetsPreflight",
        "responses": {
          "204": {
            "description": "No Content"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "summary": "ValueBetsPreflight answers the CORS preflight.",
        "tags": [
          "value-bets"
        ]
      }
    },
    "/api/v2/value-bets-props": {
      "get": {
        "operationId": "ValueBetsPropsGet",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "league",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "line",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "marketType",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "maxOdds",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "minEdge",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "opponentMultiplier",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "player",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "source",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "team",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "timeToKickoff",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "order",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "sortBy",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "page",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "pageSize",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "side",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValueBetsPropsGetOKBody"
                }
              }
            },
            "description": "OK"
          },
          "405": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Method Not Allowed"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "ValueBetsProps serves the endpoint.",
        "tags": [
          "value-bets-props"
        ]
      },
      "options": {
        "operationId": "ValueBetsPropsOptions",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "league",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "line",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "marketType",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "maxOdds",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "minEdge",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "opponentMultiplier",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "player",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "source",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "team",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "timeToKickoff",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "order",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "sortBy",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "page",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "pageSize",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "side",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValueBetsPropsOptionsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "405": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Method Not Allowed"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "ValueBetsProps serves the endpoint.",
        "tags": [
          "value-bets-props"
        ]
      }
    },
    "/api/v2/value-bets-v2": {
      "get": {
        "description": "The ordering is done twice on purpose. SQL ranks the groups by an edge\ncomputed from a position-aware fair-odds expression, which is enough to fetch\nthem; the edge the card actually displays is then recomputed per model in\nGo — with the scanner's Theo preference and its refusal to fall back — and\ncan differ. So every qualifying group is fetched, re-sorted by the displayed\nedge, and only then paged. A SQL LIMIT/OFFSET would let a higher-edge bet\nland on page three.",
        "operationId": "ValueBetsV2",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "date",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "direction",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "eventIds",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "group",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "inPredictedLineup",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "kickoffWindow",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "line",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "marketType",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "maxEV",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "maxLastGameWithTeam",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "maxOdds",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "minEV",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "minOdds",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "minSources",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "mode",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "page",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "perPage",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "requireGroups",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "requireHorizons",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "search",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "showAll",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "showLive",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "source",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "specificDate",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "startedLastGame",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "superSub",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "uniqueTournamentIds",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValueBetsV2OKBody"
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "403": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Forbidden"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "ValueBetsV2 serves GET /api/value-bets-v2: the value-bet scanner.",
        "tags": [
          "value-bets-v2"
        ]
      },
      "options": {
        "operationId": "ValueBetsV2Preflight",
        "responses": {
          "204": {
            "description": "No Content"
          },
          "default": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Error"
          }
        },
        "summary": "ValueBetsV2Preflight answers the CORS preflight for the scanner.",
        "tags": [
          "value-bets-v2"
        ]
      }
    },
    "/api/v2/venue": {
      "get": {
        "operationId": "VenueList",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "items": {
                    "$ref": "#/components/schemas/Venues"
                  },
                  "type": [
                    "array",
                    "null"
                  ]
                }
              }
            },
            "description": "OK"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "VenueList serves GET /api/venue.",
        "tags": [
          "venue"
        ]
      },
      "post": {
        "operationId": "VenueCreate",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VenueBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/VenueCreateCreatedBody"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "VenueCreate serves POST /api/venue.",
        "tags": [
          "venue"
        ]
      }
    },
    "/api/v2/venue/{id}": {
      "get": {
        "operationId": "VenueGet",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Venues"
                }
              }
            },
            "description": "OK"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "VenueGet serves GET /api/venue/{id}.",
        "tags": [
          "venue"
        ]
      },
      "put": {
        "operationId": "VenueUpdate",
        "parameters": [
          {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/VenueBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageEnvelope"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "VenueUpdate serves PUT /api/venue/{id}.",
        "tags": [
          "venue"
        ]
      }
    },
    "/api/v2/watchlist/prop": {
      "delete": {
        "description": "Removing something that was never on the watchlist is a 200, not a 404: the\noriginal does not check the affected row count, and the caller's intent — the\nprop is not on the list — holds either way.",
        "operationId": "WatchlistPropRemove",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "screenerId",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageEnvelope"
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "WatchlistPropRemove serves DELETE /api/watchlist/prop?screenerId=.",
        "tags": [
          "watchlist"
        ]
      },
      "get": {
        "description": "Cache headers are deliberately hostile — this is per-user data and a shared\ncache holding it would serve one account's watchlist to another.",
        "operationId": "WatchlistPropList",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WatchlistPropListOKBody"
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "WatchlistPropList serves GET /api/watchlist/prop: the caller's saved props, each expanded back into the full screener row the UI renders.",
        "tags": [
          "watchlist"
        ]
      },
      "post": {
        "operationId": "WatchlistPropAdd",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WatchlistPropAddInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageEnvelope"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "404": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Not Found"
          },
          "409": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "WatchlistPropAdd serves POST /api/watchlist/prop.",
        "tags": [
          "watchlist"
        ]
      }
    },
    "/api/v2/watchlist/value-bet": {
      "delete": {
        "operationId": "WatchlistValueBetRemove",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "line",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "marketType",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "matchId",
            "schema": {
              "type": "string"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "playerId",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageEnvelope"
                }
              }
            },
            "description": "OK"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "WatchlistValueBetRemove serves DELETE /api/watchlist/value-bet.",
        "tags": [
          "watchlist"
        ]
      },
      "get": {
        "operationId": "WatchlistValueBetList",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "limit",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          },
          {
            "explode": false,
            "in": "query",
            "name": "page",
            "schema": {
              "format": "int64",
              "type": "integer"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WatchlistValueBetListOKBody"
                }
              }
            },
            "description": "OK"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "WatchlistValueBetList serves GET /api/watchlist/value-bet.",
        "tags": [
          "watchlist"
        ]
      },
      "post": {
        "operationId": "WatchlistValueBetAdd",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WatchlistValueBetAddInputBody"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MessageEnvelope"
                }
              }
            },
            "description": "Created"
          },
          "400": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Bad Request"
          },
          "401": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unauthorized"
          },
          "409": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Conflict"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "WatchlistValueBetAdd serves POST /api/watchlist/value-bet.",
        "tags": [
          "watchlist"
        ]
      }
    },
    "/api/v2/world-cup/kickoff": {
      "get": {
        "description": "A failure answers 200 with a null kickoff rather than a 500 — the countdown\nis decoration, and the original chose not to fail a page load over it.",
        "operationId": "WorldCupKickoff",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorldCupKickoffOKBody"
                }
              }
            },
            "description": "OK"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "WorldCupKickoff serves GET /api/world-cup/kickoff: the earliest upcoming World Cup fixture, which drives the homepage countdown.",
        "tags": [
          "world-cup"
        ]
      }
    },
    "/api/v2/world-cup/player-cards": {
      "get": {
        "description": "`scope` decides which appearances count. \"national\" is games for their\ncountry, \"club\" is everything else, and the distinction matters: a player\ndisciplined in a domestic league is not necessarily disciplined in a\ntournament refereed differently.\n\nA failure answers 200 with an empty list, not a 500 — this feeds a promo\npanel, and the original chose not to fail a page over it.",
        "operationId": "WorldCupPlayerCards",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "scope",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorldCupPlayerCardsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "WorldCupPlayerCards serves GET /api/world-cup/player-cards?scope=: the most-carded players among the nations at the 2026 World Cup.",
        "tags": [
          "world-cup"
        ]
      }
    },
    "/api/v2/world-cup/referees": {
      "get": {
        "description": "`scope` decides which fixtures count. \"career\" is everything the official has\nrefereed; \"international\" restricts to matches where both sides are national\nteams. The distinction is the point of the endpoint — a referee's domestic\ncard rate is a poor guide to how they handle a World Cup tie, and the\ninternational sample is usually much smaller.\n\nEvery official on the roster is returned, including those with no matches\nrecorded; their rates are null rather than zero.",
        "operationId": "WorldCupReferees",
        "parameters": [
          {
            "explode": false,
            "in": "query",
            "name": "scope",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorldCupRefereesOKBody"
                }
              }
            },
            "description": "OK"
          },
          "422": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Unprocessable Entity"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "WorldCupReferees serves GET /api/world-cup/referees?scope=.",
        "tags": [
          "world-cup"
        ]
      }
    },
    "/api/v2/world-cup/team-cards": {
      "get": {
        "description": "Friendlies are excluded by name match on the competition. Cards in a friendly\nsay nothing about how a side will be refereed in a tournament, and including\nthem would drag every nation's rate down. A fixture with no competition\nrecorded is kept — the filter is `name IS NULL OR NOT ILIKE '%friendly%'`, so\nan unknown competition counts rather than being silently dropped.\n\nEvery nation in the standings is listed even with no matches in the window;\nthe rates come back null rather than zero, which a client renders as \"no\ndata\" rather than \"perfect discipline\".",
        "operationId": "WorldCupTeamCards",
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorldCupTeamCardsOKBody"
                }
              }
            },
            "description": "OK"
          },
          "500": {
            "content": {
              "application/problem+json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorModel"
                }
              }
            },
            "description": "Internal Server Error"
          }
        },
        "summary": "WorldCupTeamCards serves GET /api/world-cup/team-cards.",
        "tags": [
          "world-cup"
        ]
      }
    }
  }
}
