{
  "openapi": "3.1.0",
  "info": {
    "title": "232rgs API",
    "version": "2026-11-13+3f5afad",
    "description": "Every route the RGS serves at source 3f5afad7d77668ee5b47e72140086514d76b9418 with every optional module configured, read from the code: 204 method/path operations, one of them (/metrics) on the separate metrics listener. Routes registered only when a module or dependency is configured carry x-registration-condition. PSEI (module P) is proprietary and not described here. Request schemas are the handlers' own validators; responses the fragments do not describe are typed from the TypeScript source. The separately supplied operator-wallet.openapi.json describes outgoing operator-hosted wallet calls. The repository-root openapi.json is BetSymphony documentation, not this API."
  },
  "x-source-commit": "3f5afad7d77668ee5b47e72140086514d76b9418",
  "servers": [
    {
      "url": "https://rgs.example.invalid",
      "description": "Placeholder: replace with the supplied RGS API origin."
    },
    {
      "url": "https://232rgs-dev.fly.dev",
      "description": "Casino integration development environment; test funds only."
    },
    {
      "url": "https://232rgs.fly.dev",
      "description": "Existing synthetic-credit showcase RGS; separate from lobby sign-in."
    }
  ],
  "paths": {
    "/health/live": {
      "get": {
        "operationId": "service_liveness",
        "tags": [
          "Service"
        ],
        "summary": "Process liveness",
        "security": [],
        "responses": {
          "200": {
            "description": "Process responds",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "status": {
                      "const": "ok",
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "x-auth": "None",
        "x-source": "apps/rgs/src/app.ts:540"
      }
    },
    "/health/ready": {
      "get": {
        "operationId": "service_readiness",
        "tags": [
          "Service"
        ],
        "summary": "Dependency readiness",
        "description": "Default 2-second deadline. Normal entrypoint checks PostgreSQL, Redis, key/runtime coverage and configured authority readiness.",
        "security": [],
        "responses": {
          "200": {
            "description": "Ready",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "status": {
                      "const": "ready",
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Dependency readiness failed",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "status"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "status": {
                      "const": "not_ready",
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "x-auth": "None",
        "x-source": "apps/rgs/src/app.ts:566"
      }
    },
    "/metrics": {
      "get": {
        "operationId": "service_metrics",
        "tags": [
          "Service"
        ],
        "summary": "Prometheus metrics",
        "security": [],
        "description": "Served by the separate metrics listener (main.ts: config.metrics host and port), not the API listener.",
        "x-registration-condition": "the metrics listener (main.ts)",
        "responses": {
          "200": {
            "description": "Prometheus text exposition",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "503": {
            "description": "The operational snapshot answers unavailable (MetricsSnapshot.response)",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "default": {
            "description": "Status set by the handler at run time.",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "x-auth": "None",
        "x-source": "apps/rgs/src/metrics.ts:65"
      }
    },
    "/v1/authenticate": {
      "post": {
        "operationId": "client_authenticate",
        "security": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "launchToken": {
                    "type": "string",
                    "minLength": 43,
                    "maxLength": 128
                  }
                },
                "required": [
                  "launchToken"
                ],
                "additionalProperties": false
              },
              "example": {
                "launchToken": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Session created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_AuthenticateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. The handler can also answer: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "INVALID_REQUEST"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Invalid, expired, revoked, or consumed launch token. The handler can also answer: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "AUTHENTICATION_FAILED"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "x-auth": "Launch token in the body",
        "x-source": "apps/rgs/src/app.ts:691"
      }
    },
    "/v1/balance": {
      "get": {
        "operationId": "client_getBalance",
        "security": [
          {
            "SessionBearer": []
          }
        ],
        "responses": {
          "200": {
            "description": "Custodial or approved external balance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Balance"
                }
              }
            }
          },
          "202": {
            "description": "External lookup pending or unknown",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_ExternalBalancePending"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request; endpoint validation and exact representation rules apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "401": {
            "description": "Invalid session. The handler can also answer: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "AUTHENTICATION_FAILED"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "429": {
            "description": "Rate limited",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "502": {
            "description": "External balance unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_ExternalBalanceUnavailable"
                }
              }
            }
          },
          "503": {
            "description": "External-wallet runtime unavailable. The handler can also answer: CONTROL_PLANE_BUSY, EXTERNAL_WALLET_UNAVAILABLE, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "CONTROL_PLANE_BUSY",
                            "EXTERNAL_WALLET_UNAVAILABLE",
                            "MONEY_PATH_BUSY"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:716"
      }
    },
    "/v1/session/close": {
      "post": {
        "operationId": "client_closeSession",
        "security": [
          {
            "SessionBearer": []
          }
        ],
        "responses": {
          "204": {
            "description": "Session revoked"
          },
          "400": {
            "description": "Invalid request; endpoint validation and exact representation rules apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "401": {
            "description": "Invalid session. The handler can also answer: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "AUTHENTICATION_FAILED"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:735"
      }
    },
    "/v1/reality-check": {
      "get": {
        "operationId": "client_getRealityCheck",
        "security": [
          {
            "SessionBearer": []
          }
        ],
        "responses": {
          "200": {
            "description": "Reality-check state",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_RealityStatus"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request; endpoint validation and exact representation rules apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "401": {
            "description": "Invalid session. The handler can also answer: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "AUTHENTICATION_FAILED"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "429": {
            "description": "Rate limited",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:750"
      }
    },
    "/v1/reality-check/acknowledge": {
      "post": {
        "operationId": "client_acknowledgeRealityCheck",
        "security": [
          {
            "SessionBearer": []
          }
        ],
        "responses": {
          "200": {
            "description": "Next scheduled check",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_RealityAcknowledged"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request; endpoint validation and exact representation rules apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "401": {
            "description": "Check not due or session invalid. The handler can also answer: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "AUTHENTICATION_FAILED"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:754"
      }
    },
    "/v1/responsible-gaming": {
      "get": {
        "operationId": "client_getResponsibleGaming",
        "x-registration-condition": "responsibleGaming dependency is supplied",
        "security": [
          {
            "SessionBearer": []
          }
        ],
        "responses": {
          "200": {
            "description": "Limits; null is unset",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_ResponsibleGaming"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request; endpoint validation and exact representation rules apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "401": {
            "description": "Invalid session. The handler can also answer: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "AUTHENTICATION_FAILED"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "429": {
            "description": "Rate limited",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:759"
      }
    },
    "/v1/responsible-gaming/self-exclude": {
      "post": {
        "operationId": "client_selfExclude",
        "x-registration-condition": "responsibleGaming dependency is supplied",
        "security": [
          {
            "SessionBearer": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "until": {}
                },
                "required": [
                  "until"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Effective exclusion timestamp; all active account sessions revoked",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_SelfExcludeResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid date or outside allowed window. The handler can also answer: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "INVALID_REQUEST"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Invalid session. The handler can also answer: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "AUTHENTICATION_FAILED"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Account absent. The handler can also answer: RESPONSIBLE_GAMING_ACCOUNT_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "RESPONSIBLE_GAMING_ACCOUNT_NOT_FOUND"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:764"
      }
    },
    "/v1/campaigns": {
      "get": {
        "operationId": "client_listCampaigns",
        "x-registration-condition": "campaigns dependency is supplied",
        "security": [
          {
            "SessionBearer": []
          }
        ],
        "responses": {
          "200": {
            "description": "Newest-first account grants; no pagination",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_CampaignList"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_CAMPAIGN_CURSOR, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_CAMPAIGN_CURSOR",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Invalid session. The handler can also answer: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "AUTHENTICATION_FAILED"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: CAMPAIGN_PAGINATION_REQUIRED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CAMPAIGN_PAGINATION_REQUIRED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Not processable. Error codes: CAMPAIGN_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CAMPAIGN_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:780"
      }
    },
    "/v1/multiplayer/room": {
      "post": {
        "operationId": "client_assignMultiplayerRoom",
        "x-registration-condition": "multiplayerLobby dependency is supplied",
        "security": [
          {
            "SessionBearer": []
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              },
              "example": {}
            }
          }
        },
        "responses": {
          "200": {
            "description": "Room assignment",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_RoomAssignment"
                }
              }
            }
          },
          "400": {
            "description": "Non-empty request body. The handler can also answer: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "INVALID_REQUEST"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Invalid session. The handler can also answer: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "AUTHENTICATION_FAILED"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "No active multiplayer game. The handler can also answer: MULTIPLAYER_GAME_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "MULTIPLAYER_GAME_UNAVAILABLE"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "423": {
            "description": "Reality check required. The handler can also answer: REALITY_CHECK_REQUIRED.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "REALITY_CHECK_REQUIRED"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "429": {
            "description": "Rate limited",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:742"
      }
    },
    "/v1/play": {
      "post": {
        "operationId": "client_playV1",
        "x-registration-condition": "rounds dependency is supplied",
        "security": [
          {
            "SessionBearer": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "playOptions": {
                    "type": "object",
                    "properties": {
                      "autoplay": {
                        "type": "boolean"
                      },
                      "turbo": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "autoplay",
                      "turbo"
                    ],
                    "additionalProperties": false
                  },
                  "externalRoundId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  },
                  "action": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64
                  },
                  "wager": {
                    "type": "object",
                    "properties": {
                      "id": {
                        "type": "string",
                        "minLength": 1,
                        "maxLength": 128
                      },
                      "amount": {
                        "type": "integer",
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991
                      },
                      "currency": {
                        "type": "string",
                        "pattern": "^[A-Z]{3}$"
                      }
                    },
                    "required": [
                      "id",
                      "amount",
                      "currency"
                    ],
                    "additionalProperties": false
                  },
                  "clientSeed": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1024
                  },
                  "freeRoundId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "fairCommitment": {
                    "type": "string",
                    "pattern": "^[0-9a-f]{64}$"
                  }
                },
                "required": [
                  "externalRoundId",
                  "action",
                  "wager",
                  "clientSeed"
                ],
                "additionalProperties": false
              },
              "example": {
                "externalRoundId": "round-123",
                "action": "base",
                "wager": {
                  "id": "wager-123",
                  "amount": 100,
                  "currency": "EUR"
                },
                "clientSeed": "example-client-seed"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Settled result or exact legacy retry",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_RoundResult"
                }
              }
            }
          },
          "202": {
            "description": "External settlement pending",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_RoundPending"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request/action/wager. The handler can also answer: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "INVALID_REQUEST"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Invalid session. The handler can also answer: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "AUTHENTICATION_FAILED"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "402": {
            "description": "External debit declined",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_RoundDeclined"
                }
              }
            }
          },
          "403": {
            "description": "Wager not allowed. The handler can also answer: WAGER_NOT_ALLOWED.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "WAGER_NOT_ALLOWED"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: ROUND_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "ROUND_NOT_FOUND"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Round ID payload conflict. The handler can also answer: FAIR_COMMITMENT_STALE, FREE_ROUNDS_UNAVAILABLE, JACKPOT_UNAVAILABLE, ROUND_CONFLICT.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "FAIR_COMMITMENT_STALE",
                            "FREE_ROUNDS_UNAVAILABLE",
                            "JACKPOT_UNAVAILABLE",
                            "ROUND_CONFLICT"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "422": {
            "description": "Insufficient funds. The handler can also answer: INSUFFICIENT_FUNDS.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "INSUFFICIENT_FUNDS"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "423": {
            "description": "Reality check or responsible-gaming limit. The handler can also answer: REALITY_CHECK_REQUIRED, RESPONSIBLE_GAMING_LIMIT.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "REALITY_CHECK_REQUIRED",
                            "RESPONSIBLE_GAMING_LIMIT"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "429": {
            "description": "Rate limited",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, PROVABLY_FAIR_STOPPED, RNG_NOT_READY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "PROVABLY_FAIR_STOPPED",
                        "RNG_NOT_READY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:1857"
      }
    },
    "/v2/play": {
      "post": {
        "operationId": "client_playV2",
        "x-registration-condition": "rounds dependency is supplied",
        "security": [
          {
            "SessionBearer": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "playOptions": {
                    "type": "object",
                    "properties": {
                      "autoplay": {
                        "type": "boolean"
                      },
                      "turbo": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "autoplay",
                      "turbo"
                    ],
                    "additionalProperties": false
                  },
                  "commandId": {
                    "type": "string",
                    "minLength": 36,
                    "maxLength": 36,
                    "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
                  },
                  "action": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64
                  },
                  "wager": {
                    "type": "object",
                    "properties": {
                      "amount": {
                        "type": "integer",
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991
                      },
                      "currency": {
                        "type": "string",
                        "minLength": 3,
                        "maxLength": 3,
                        "pattern": "^[A-Z]{3}$"
                      }
                    },
                    "required": [
                      "amount",
                      "currency"
                    ],
                    "additionalProperties": false
                  },
                  "clientSeed": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1024
                  },
                  "freeRoundId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "fairCommitment": {
                    "type": "string",
                    "pattern": "^[0-9a-f]{64}$"
                  }
                },
                "required": [
                  "commandId",
                  "action",
                  "wager",
                  "clientSeed"
                ],
                "additionalProperties": false
              },
              "example": {
                "commandId": "31c8a45d-6294-4bbd-99a2-7a2a4a01c9f1",
                "action": "base",
                "wager": {
                  "amount": 100,
                  "currency": "EUR"
                },
                "clientSeed": "example-client-seed"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Settled result or idempotent recovery",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_RoundResult"
                }
              }
            }
          },
          "202": {
            "description": "External settlement pending",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_RoundPending"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request/action/wager. The handler can also answer: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "INVALID_REQUEST"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Invalid session. The handler can also answer: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "AUTHENTICATION_FAILED"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "402": {
            "description": "External debit declined",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_RoundDeclined"
                }
              }
            }
          },
          "403": {
            "description": "Wager not allowed. The handler can also answer: WAGER_NOT_ALLOWED.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "WAGER_NOT_ALLOWED"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: ROUND_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "ROUND_NOT_FOUND"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Command payload/scope conflict. The handler can also answer: FAIR_COMMITMENT_STALE, FREE_ROUNDS_UNAVAILABLE, JACKPOT_UNAVAILABLE, ROUND_CONFLICT.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "FAIR_COMMITMENT_STALE",
                            "FREE_ROUNDS_UNAVAILABLE",
                            "JACKPOT_UNAVAILABLE",
                            "ROUND_CONFLICT"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "422": {
            "description": "Insufficient funds. The handler can also answer: INSUFFICIENT_FUNDS.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "INSUFFICIENT_FUNDS"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "423": {
            "description": "Responsible-gaming limit. The handler can also answer: REALITY_CHECK_REQUIRED, RESPONSIBLE_GAMING_LIMIT.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "REALITY_CHECK_REQUIRED",
                            "RESPONSIBLE_GAMING_LIMIT"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "429": {
            "description": "Rate limited",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, PROVABLY_FAIR_STOPPED, RNG_NOT_READY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "PROVABLY_FAIR_STOPPED",
                        "RNG_NOT_READY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:1843"
      }
    },
    "/v2/recover": {
      "post": {
        "operationId": "client_recoverV2",
        "x-registration-condition": "rounds dependency is supplied",
        "security": [
          {
            "SessionBearer": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "playOptions": {
                    "type": "object",
                    "properties": {
                      "autoplay": {
                        "type": "boolean"
                      },
                      "turbo": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "autoplay",
                      "turbo"
                    ],
                    "additionalProperties": false
                  },
                  "commandId": {
                    "type": "string",
                    "minLength": 36,
                    "maxLength": 36,
                    "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
                  },
                  "action": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64
                  },
                  "wager": {
                    "type": "object",
                    "properties": {
                      "amount": {
                        "type": "integer",
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991
                      },
                      "currency": {
                        "type": "string",
                        "minLength": 3,
                        "maxLength": 3,
                        "pattern": "^[A-Z]{3}$"
                      }
                    },
                    "required": [
                      "amount",
                      "currency"
                    ],
                    "additionalProperties": false
                  },
                  "clientSeed": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1024
                  },
                  "freeRoundId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "fairCommitment": {
                    "type": "string",
                    "pattern": "^[0-9a-f]{64}$"
                  }
                },
                "required": [
                  "commandId",
                  "action",
                  "wager",
                  "clientSeed"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Recovered settled result",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_RoundResult"
                }
              }
            }
          },
          "202": {
            "description": "Accepted external settlement pending",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_RoundPending"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. The handler can also answer: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "INVALID_REQUEST"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Invalid session. The handler can also answer: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "AUTHENTICATION_FAILED"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "402": {
            "description": "External debit declined",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_RoundDeclined"
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: WAGER_NOT_ALLOWED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "WAGER_NOT_ALLOWED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "No accepted command in account/game scope. The handler can also answer: ROUND_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "ROUND_NOT_FOUND"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "409": {
            "description": "Command payload conflict. The handler can also answer: FAIR_COMMITMENT_STALE, FREE_ROUNDS_UNAVAILABLE, JACKPOT_UNAVAILABLE, ROUND_CONFLICT.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "FAIR_COMMITMENT_STALE",
                            "FREE_ROUNDS_UNAVAILABLE",
                            "JACKPOT_UNAVAILABLE",
                            "ROUND_CONFLICT"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "422": {
            "description": "Not processable. Error codes: INSUFFICIENT_FUNDS.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INSUFFICIENT_FUNDS"
                      ]
                    }
                  }
                }
              }
            }
          },
          "423": {
            "description": "Locked by responsible gaming. Error codes: REALITY_CHECK_REQUIRED, RESPONSIBLE_GAMING_LIMIT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "REALITY_CHECK_REQUIRED",
                        "RESPONSIBLE_GAMING_LIMIT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, PROVABLY_FAIR_STOPPED, RNG_NOT_READY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "PROVABLY_FAIR_STOPPED",
                        "RNG_NOT_READY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:1843"
      }
    },
    "/v1/history": {
      "get": {
        "operationId": "client_listHistory",
        "x-registration-condition": "rounds dependency is supplied",
        "security": [
          {
            "SessionBearer": []
          }
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "default": 20,
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Most-recent-first history, no cursor pagination",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_History"
                }
              }
            }
          },
          "400": {
            "description": "Invalid limit. The handler can also answer: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "INVALID_REQUEST"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Invalid session. The handler can also answer: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "AUTHENTICATION_FAILED"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "429": {
            "description": "Rate limited",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:1881"
      }
    },
    "/v1/rounds/{roundId}/fairness": {
      "get": {
        "operationId": "client_getRoundFairness",
        "x-registration-condition": "rounds dependency is supplied",
        "security": [
          {
            "SessionBearer": []
          }
        ],
        "parameters": [
          {
            "name": "roundId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Revealed fairness proof",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_FairnessProof"
                }
              }
            }
          },
          "400": {
            "description": "Invalid round ID. The handler can also answer: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "INVALID_REQUEST"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Invalid session. The handler can also answer: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "AUTHENTICATION_FAILED"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Not owned or proof unavailable. The handler can also answer: ROUND_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "ROUND_NOT_FOUND"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "429": {
            "description": "Rate limited",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:1897"
      }
    },
    "/v1/rounds/{roundId}/replay": {
      "get": {
        "operationId": "client_replayRound",
        "x-registration-condition": "rounds dependency is supplied",
        "security": [
          {
            "SessionBearer": []
          }
        ],
        "parameters": [
          {
            "name": "roundId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Matched or unavailable replay verification",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Replay"
                }
              }
            }
          },
          "400": {
            "description": "Invalid round ID. The handler can also answer: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "INVALID_REQUEST"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Invalid session. The handler can also answer: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "AUTHENTICATION_FAILED"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: WAGER_NOT_ALLOWED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "WAGER_NOT_ALLOWED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Round not owned. The handler can also answer: ROUND_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "ROUND_NOT_FOUND"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "409": {
            "description": "Replay mismatch. The handler can also answer: JACKPOT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Replay"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "JACKPOT_UNAVAILABLE"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "429": {
            "description": "Rate limited",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:1888"
      }
    },
    "/v2/interactive/start": {
      "post": {
        "operationId": "client_interactiveStart",
        "x-registration-condition": "interactive runtime dependency is supplied",
        "security": [
          {
            "SessionBearer": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "commandId": {
                    "type": "string",
                    "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
                  },
                  "wager": {
                    "type": "object",
                    "properties": {
                      "amount": {
                        "type": "integer",
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991
                      },
                      "currency": {
                        "type": "string",
                        "pattern": "^[A-Z]{3}$"
                      }
                    },
                    "required": [
                      "amount",
                      "currency"
                    ],
                    "additionalProperties": false
                  },
                  "clientSeed": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1024
                  }
                },
                "required": [
                  "commandId",
                  "wager",
                  "clientSeed"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Player-safe execution projection",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_InteractiveProjection"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. The handler can also answer: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "INVALID_REQUEST"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Invalid session. The handler can also answer: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "AUTHENTICATION_FAILED"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "Wager not allowed. The handler can also answer: WAGER_NOT_ALLOWED.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "WAGER_NOT_ALLOWED"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: INTERACTIVE_EXECUTION_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INTERACTIVE_EXECUTION_NOT_FOUND"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Interactive command conflict. The handler can also answer: INTERACTIVE_COMMAND_CONFLICT.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "INTERACTIVE_COMMAND_CONFLICT"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "422": {
            "description": "Insufficient funds. The handler can also answer: INSUFFICIENT_FUNDS.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "INSUFFICIENT_FUNDS"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "423": {
            "description": "Responsible-gaming limit. The handler can also answer: RESPONSIBLE_GAMING_LIMIT.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "RESPONSIBLE_GAMING_LIMIT"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "503": {
            "description": "Interactive runtime unavailable. The handler can also answer: INTERACTIVE_RUNTIME_UNAVAILABLE, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "INTERACTIVE_RUNTIME_UNAVAILABLE",
                            "MONEY_PATH_BUSY"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:1797"
      }
    },
    "/v2/interactive/action": {
      "post": {
        "operationId": "client_interactiveAction",
        "x-registration-condition": "interactive runtime dependency is supplied",
        "security": [
          {
            "SessionBearer": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "roundId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "commandId": {
                    "type": "string",
                    "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
                  },
                  "expectedSequence": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 63
                  },
                  "action": {
                    "type": "string",
                    "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
                  },
                  "value": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "sideBet": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  }
                },
                "required": [
                  "roundId",
                  "commandId",
                  "expectedSequence",
                  "action"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Projection and action acknowledgement",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_InteractiveActionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. The handler can also answer: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "INVALID_REQUEST"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Invalid session. The handler can also answer: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "AUTHENTICATION_FAILED"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "Continuation not allowed. The handler can also answer: WAGER_NOT_ALLOWED.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "WAGER_NOT_ALLOWED"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "404": {
            "description": "Execution unavailable. The handler can also answer: INTERACTIVE_EXECUTION_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "INTERACTIVE_EXECUTION_NOT_FOUND"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "409": {
            "description": "Interactive command conflict. The handler can also answer: INTERACTIVE_COMMAND_CONFLICT.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "INTERACTIVE_COMMAND_CONFLICT"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "422": {
            "description": "Not processable. Error codes: INSUFFICIENT_FUNDS.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INSUFFICIENT_FUNDS"
                      ]
                    }
                  }
                }
              }
            }
          },
          "423": {
            "description": "Responsible-gaming limit. The handler can also answer: RESPONSIBLE_GAMING_LIMIT.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "RESPONSIBLE_GAMING_LIMIT"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "503": {
            "description": "Interactive runtime unavailable. The handler can also answer: INTERACTIVE_RUNTIME_UNAVAILABLE, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "INTERACTIVE_RUNTIME_UNAVAILABLE",
                            "MONEY_PATH_BUSY"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:1797"
      }
    },
    "/v2/interactive/recover": {
      "post": {
        "operationId": "client_interactiveRecover",
        "x-registration-condition": "interactive runtime dependency is supplied",
        "security": [
          {
            "SessionBearer": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "commandId": {
                    "type": "string",
                    "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
                  }
                },
                "required": [
                  "commandId"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Player-safe projection",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_InteractiveProjection"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. The handler can also answer: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "INVALID_REQUEST"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Invalid session. The handler can also answer: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "AUTHENTICATION_FAILED"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: WAGER_NOT_ALLOWED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "WAGER_NOT_ALLOWED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Execution unavailable. The handler can also answer: INTERACTIVE_EXECUTION_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "INTERACTIVE_EXECUTION_NOT_FOUND"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: INTERACTIVE_COMMAND_CONFLICT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INTERACTIVE_COMMAND_CONFLICT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "422": {
            "description": "Not processable. Error codes: INSUFFICIENT_FUNDS.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INSUFFICIENT_FUNDS"
                      ]
                    }
                  }
                }
              }
            }
          },
          "423": {
            "description": "Locked by responsible gaming. Error codes: RESPONSIBLE_GAMING_LIMIT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RESPONSIBLE_GAMING_LIMIT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: INTERACTIVE_RUNTIME_UNAVAILABLE, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INTERACTIVE_RUNTIME_UNAVAILABLE",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:1797"
      }
    },
    "/wallet/authenticate": {
      "post": {
        "operationId": "client_walletAuthenticate",
        "x-registration-condition": "rounds dependency is supplied",
        "security": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "sessionID": {
                    "type": "string",
                    "minLength": 8,
                    "maxLength": 256
                  },
                  "language": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 16
                  },
                  "gameId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  }
                },
                "required": [
                  "sessionID"
                ],
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Stake success or protocol error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_StakeAuthenticationResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted; not final yet. Error codes: ROUND_SETTLEMENT_PENDING.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "ROUND_SETTLEMENT_PENDING"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Malformed input. The handler can also answer: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "INVALID_REQUEST"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "402": {
            "description": "Declined by the external wallet. Error codes: EXTERNAL_WALLET_DECLINED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "EXTERNAL_WALLET_DECLINED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: WAGER_NOT_ALLOWED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "WAGER_NOT_ALLOWED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: ROUND_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "ROUND_NOT_FOUND"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: FAIR_COMMITMENT_STALE, FREE_ROUNDS_UNAVAILABLE, JACKPOT_UNAVAILABLE, ROUND_CONFLICT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "FAIR_COMMITMENT_STALE",
                        "FREE_ROUNDS_UNAVAILABLE",
                        "JACKPOT_UNAVAILABLE",
                        "ROUND_CONFLICT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "422": {
            "description": "Not processable. Error codes: INSUFFICIENT_FUNDS.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INSUFFICIENT_FUNDS"
                      ]
                    }
                  }
                }
              }
            }
          },
          "423": {
            "description": "Locked by responsible gaming. Error codes: RESPONSIBLE_GAMING_LIMIT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RESPONSIBLE_GAMING_LIMIT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "502": {
            "description": "Upstream failure.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, PROVABLY_FAIR_STOPPED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "PROVABLY_FAIR_STOPPED"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "x-auth": "Stake session id (sessionID) in the body",
        "x-source": "apps/rgs/src/app.ts:629"
      }
    },
    "/wallet/balance": {
      "post": {
        "operationId": "client_walletBalance",
        "x-registration-condition": "rounds dependency is supplied",
        "security": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "sessionID": {
                    "type": "string",
                    "minLength": 8,
                    "maxLength": 256
                  }
                },
                "required": [
                  "sessionID"
                ],
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Stake success or protocol error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_StakeBalanceResponse"
                }
              }
            }
          },
          "400": {
            "description": "Malformed input. The handler can also answer: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "INVALID_REQUEST"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "502": {
            "description": "Upstream failure.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "x-auth": "Stake session id (sessionID) in the body",
        "x-source": "apps/rgs/src/app.ts:649"
      }
    },
    "/wallet/play": {
      "post": {
        "operationId": "client_walletPlay",
        "description": "No caller idempotency or command identifier is accepted; this route creates the round identity.",
        "x-registration-condition": "rounds dependency is supplied",
        "security": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "sessionID": {
                    "type": "string",
                    "minLength": 8,
                    "maxLength": 256
                  },
                  "playOptions": {
                    "type": "object",
                    "properties": {
                      "autoplay": {
                        "type": "boolean"
                      },
                      "turbo": {
                        "type": "boolean"
                      }
                    },
                    "required": [
                      "autoplay",
                      "turbo"
                    ],
                    "additionalProperties": false
                  },
                  "amount": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 9007199254740991
                  },
                  "currency": {
                    "type": "string",
                    "pattern": "^[A-Z]{3}$"
                  },
                  "mode": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64
                  },
                  "gameId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  },
                  "freeRoundId": {
                    "type": "string",
                    "format": "uuid"
                  }
                },
                "required": [
                  "sessionID",
                  "amount",
                  "currency",
                  "mode"
                ],
                "additionalProperties": {}
              },
              "example": {
                "sessionID": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                "amount": 1000000,
                "currency": "EUR",
                "mode": "BASE",
                "gameId": "coin-flip"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Stake success or protocol error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_StakePlayResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted; not final yet. Error codes: ROUND_SETTLEMENT_PENDING.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "ROUND_SETTLEMENT_PENDING"
                      ]
                    }
                  }
                }
              }
            }
          },
          "400": {
            "description": "Malformed input. The handler can also answer: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "INVALID_REQUEST"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "402": {
            "description": "Declined by the external wallet. Error codes: EXTERNAL_WALLET_DECLINED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "EXTERNAL_WALLET_DECLINED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: WAGER_NOT_ALLOWED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "WAGER_NOT_ALLOWED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: ROUND_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "ROUND_NOT_FOUND"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: FAIR_COMMITMENT_STALE, FREE_ROUNDS_UNAVAILABLE, JACKPOT_UNAVAILABLE, ROUND_CONFLICT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "FAIR_COMMITMENT_STALE",
                        "FREE_ROUNDS_UNAVAILABLE",
                        "JACKPOT_UNAVAILABLE",
                        "ROUND_CONFLICT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "422": {
            "description": "Not processable. Error codes: INSUFFICIENT_FUNDS.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INSUFFICIENT_FUNDS"
                      ]
                    }
                  }
                }
              }
            }
          },
          "423": {
            "description": "Locked by responsible gaming. Error codes: REALITY_CHECK_REQUIRED, RESPONSIBLE_GAMING_LIMIT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "REALITY_CHECK_REQUIRED",
                        "RESPONSIBLE_GAMING_LIMIT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "502": {
            "description": "Upstream failure.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, PROVABLY_FAIR_STOPPED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "PROVABLY_FAIR_STOPPED"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "x-auth": "Stake session id (sessionID) in the body",
        "x-source": "apps/rgs/src/app.ts:654"
      }
    },
    "/wallet/end-round": {
      "post": {
        "operationId": "client_walletEndRound",
        "x-registration-condition": "rounds dependency is supplied",
        "security": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "sessionID": {
                    "type": "string",
                    "minLength": 8,
                    "maxLength": 256
                  }
                },
                "required": [
                  "sessionID"
                ],
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Stake success or protocol error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_StakeBalanceResponse"
                }
              }
            }
          },
          "400": {
            "description": "Malformed input. The handler can also answer: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "INVALID_REQUEST"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "502": {
            "description": "Upstream failure.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "x-auth": "Stake session id (sessionID) in the body",
        "x-source": "apps/rgs/src/app.ts:674"
      }
    },
    "/bet/event": {
      "post": {
        "operationId": "client_betEvent",
        "x-registration-condition": "rounds dependency is supplied",
        "security": [],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "sessionID": {
                    "type": "string",
                    "minLength": 8,
                    "maxLength": 256
                  },
                  "event": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  }
                },
                "required": [
                  "sessionID"
                ],
                "additionalProperties": {}
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Stake success or protocol error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_StakeEventResponse"
                }
              }
            }
          },
          "400": {
            "description": "Malformed input. The handler can also answer: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/C_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "INVALID_REQUEST"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "500": {
            "description": "Internal error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/C_Error"
                }
              }
            }
          },
          "502": {
            "description": "Upstream failure.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "x-auth": "Stake session id (sessionID) in the body",
        "x-source": "apps/rgs/src/app.ts:679"
      }
    },
    "/operator/v1/api-keys": {
      "post": {
        "operationId": "operator_createApiKey",
        "summary": "Create an operator API key",
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "keys",
        "x-registration-condition": "operatorAuth",
        "responses": {
          "201": {
            "description": "Key created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/O_ApiKeyCreateResponse"
                },
                "example": {
                  "keyId": "11111111-1111-4111-8111-111111111111",
                  "token": "REDACTED_ONE_TIME_TOKEN",
                  "expiresAt": "2026-09-21T12:00:00.000Z"
                }
              }
            }
          },
          "400": {
            "description": "Malformed JSON or route validation failed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: TWO_PERSON_REQUIRED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "TWO_PERSON_REQUIRED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INTERNAL_ERROR"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "label": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  },
                  "scopes": {
                    "minItems": 1,
                    "maxItems": 16,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "keys",
                        "launch",
                        "wallet",
                        "wallet-admin",
                        "campaigns",
                        "responsible-gaming",
                        "reconciliation",
                        "games",
                        "disputes",
                        "reports",
                        "verifier"
                      ]
                    }
                  },
                  "ttlSeconds": {
                    "default": 7776000,
                    "type": "integer",
                    "minimum": 300,
                    "maximum": 7776000
                  }
                },
                "required": [
                  "label",
                  "scopes"
                ],
                "additionalProperties": false
              },
              "example": {
                "label": "synthetic-ops",
                "scopes": [
                  "wallet"
                ],
                "ttlSeconds": 3600
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:1328"
      }
    },
    "/operator/v1/api-keys/{keyId}": {
      "delete": {
        "operationId": "operator_revokeApiKey",
        "summary": "Revoke another operator API key",
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "keys",
        "x-registration-condition": "operatorAuth",
        "responses": {
          "204": {
            "description": "Key revoked."
          },
          "400": {
            "description": "Malformed JSON or route validation failed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INTERNAL_ERROR"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "keyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1345"
      }
    },
    "/operator/v1/games/{gameCode}": {
      "put": {
        "operationId": "operator_setGameEntitlement",
        "summary": "Set operator game entitlement",
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "games",
        "x-registration-condition": "operatorAuth",
        "responses": {
          "200": {
            "description": "Entitlement saved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/O_GameEntitlementResponse"
                },
                "example": {
                  "gameCode": "heist-v2",
                  "enabled": true,
                  "currencies": [
                    "EUR"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Malformed JSON or route validation failed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "No active game with this code.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "GAME_NOT_FOUND"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: TWO_PERSON_REQUIRED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "TWO_PERSON_REQUIRED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INTERNAL_ERROR"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "enabled": {
                    "type": "boolean"
                  },
                  "currencies": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "required": [
                  "enabled",
                  "currencies"
                ],
                "additionalProperties": false
              },
              "example": {
                "enabled": true,
                "currencies": [
                  "EUR"
                ]
              }
            }
          }
        },
        "parameters": [
          {
            "name": "gameCode",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9][a-z0-9_-]{1,63}$"
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1357"
      }
    },
    "/operator/v1/responsible-gaming/limits": {
      "put": {
        "operationId": "operator_setResponsibleGamingLimits",
        "summary": "Set all responsible-gaming limits for an account",
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "responsible-gaming",
        "x-registration-condition": "operatorAuth && responsibleGaming",
        "responses": {
          "200": {
            "description": "Limits saved.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/O_RgLimitsResponse"
                },
                "example": {
                  "realityCheckIntervalSeconds": 600,
                  "maxSingleWager": 500,
                  "dailyNetLossLimit": null,
                  "dailyDepositLimit": 1000,
                  "maxSessionSeconds": null,
                  "selfExcludedUntil": null
                }
              }
            }
          },
          "400": {
            "description": "Malformed JSON or route validation failed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "The operator account does not exist.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RESPONSIBLE_GAMING_ACCOUNT_NOT_FOUND"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INTERNAL_ERROR"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "playerId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256
                  },
                  "currency": {
                    "type": "string",
                    "pattern": "^[A-Z]{3}$"
                  },
                  "realityCheckIntervalSeconds": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "maxSingleWager": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "dailyNetLossLimit": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "dailyDepositLimit": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "exclusiveMinimum": 0,
                        "maximum": 9007199254740991
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "maxSessionSeconds": {
                    "anyOf": [
                      {
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "playerId",
                  "currency",
                  "realityCheckIntervalSeconds",
                  "maxSingleWager",
                  "dailyNetLossLimit",
                  "dailyDepositLimit",
                  "maxSessionSeconds"
                ],
                "additionalProperties": false
              },
              "example": {
                "playerId": "synthetic-player",
                "currency": "EUR",
                "realityCheckIntervalSeconds": 600,
                "maxSingleWager": 500,
                "dailyNetLossLimit": null,
                "dailyDepositLimit": 1000,
                "maxSessionSeconds": null
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:1373"
      }
    },
    "/operator/v1/accounts": {
      "post": {
        "operationId": "operator_provisionAccount",
        "summary": "Provision or find a custodial account",
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "wallet",
        "x-registration-condition": "operatorAuth && wallet",
        "responses": {
          "200": {
            "description": "Existing account.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/O_AccountResponse"
                }
              }
            }
          },
          "201": {
            "description": "Account created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/O_AccountResponse"
                },
                "example": {
                  "id": "22222222-2222-4222-8222-222222222222",
                  "created": true,
                  "balance": 0,
                  "currency": "EUR"
                }
              }
            }
          },
          "400": {
            "description": "Malformed JSON or route validation failed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: WALLET_RESOURCE_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "WALLET_RESOURCE_NOT_FOUND"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INTERNAL_ERROR"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "playerId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256
                  },
                  "currency": {
                    "type": "string",
                    "pattern": "^[A-Z]{3}$"
                  }
                },
                "required": [
                  "playerId",
                  "currency"
                ],
                "additionalProperties": false
              },
              "example": {
                "playerId": "synthetic-player",
                "currency": "EUR"
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:1530"
      }
    },
    "/operator/v1/wallet/transactions": {
      "post": {
        "operationId": "operator_postCustodialTransaction",
        "summary": "Post an idempotent custodial deposit or withdrawal",
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "wallet",
        "x-registration-condition": "operatorAuth && wallet",
        "responses": {
          "200": {
            "description": "Completed or idempotent transaction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/O_WalletTransactionResponse"
                },
                "example": {
                  "id": "33333333-3333-4333-8333-333333333333",
                  "externalTransactionId": "synthetic-deposit-1",
                  "kind": "deposit",
                  "amount": 2500,
                  "currency": "EUR",
                  "status": "completed",
                  "balance": 2500
                }
              }
            }
          },
          "400": {
            "description": "Malformed JSON or route validation failed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "The operator account does not exist.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "WALLET_RESOURCE_NOT_FOUND"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Transaction identity conflicts, transaction is non-retryable, or a deposit is blocked by responsible-gaming state.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "WALLET_TRANSACTION_CONFLICT"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "422": {
            "description": "Withdrawal cannot be funded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INSUFFICIENT_FUNDS"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "423": {
            "description": "Locked by responsible gaming. Error codes: RESPONSIBLE_GAMING_LIMIT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RESPONSIBLE_GAMING_LIMIT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INTERNAL_ERROR"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "playerId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256
                  },
                  "externalTransactionId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256
                  },
                  "kind": {
                    "type": "string",
                    "enum": [
                      "deposit",
                      "withdrawal"
                    ]
                  },
                  "amount": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "currency": {
                    "type": "string",
                    "pattern": "^[A-Z]{3}$"
                  }
                },
                "required": [
                  "playerId",
                  "externalTransactionId",
                  "kind",
                  "amount",
                  "currency"
                ],
                "additionalProperties": false
              },
              "example": {
                "playerId": "synthetic-player",
                "externalTransactionId": "synthetic-deposit-1",
                "kind": "deposit",
                "amount": 2500,
                "currency": "EUR"
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:1545"
      }
    },
    "/operator/v1/wallet/transactions/{externalTransactionId}": {
      "get": {
        "operationId": "operator_getCustodialTransaction",
        "summary": "Look up a custodial transaction",
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "wallet",
        "x-registration-condition": "operatorAuth && wallet",
        "responses": {
          "200": {
            "description": "Transaction.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/O_WalletTransactionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Malformed JSON or route validation failed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "The custodial transaction is absent or belongs to another operator.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "WALLET_RESOURCE_NOT_FOUND"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INTERNAL_ERROR"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "externalTransactionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1565"
      }
    },
    "/operator/v1/reconciliation": {
      "get": {
        "operationId": "operator_scanReconciliation",
        "summary": "Compare stored and ledger balances",
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reconciliation",
        "x-registration-condition": "operatorAuth && wallet",
        "responses": {
          "200": {
            "description": "Reconciliation scan.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/O_ReconciliationScan"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request; endpoint validation and exact representation rules apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INTERNAL_ERROR"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:1571"
      }
    },
    "/operator/v1/reconciliation/runs": {
      "post": {
        "operationId": "operator_createReconciliationRun",
        "summary": "Create a custodial reconciliation run",
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reconciliation",
        "x-registration-condition": "operatorAuth && wallet",
        "responses": {
          "201": {
            "description": "Run created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/O_ReconciliationRun"
                },
                "example": {
                  "id": "44444444-4444-4444-8444-444444444444",
                  "status": "completed",
                  "accountsChecked": 1,
                  "mismatchCount": 0,
                  "createdAt": "2026-09-21T11:00:00.000Z",
                  "completedAt": "2026-09-21T11:00:01.000Z",
                  "cases": []
                }
              }
            }
          },
          "400": {
            "description": "Malformed JSON or route validation failed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: WALLET_RESOURCE_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "WALLET_RESOURCE_NOT_FOUND"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INTERNAL_ERROR"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              },
              "example": {}
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:1576"
      }
    },
    "/operator/v1/reconciliation/runs/{runId}": {
      "get": {
        "operationId": "operator_getReconciliationRun",
        "summary": "Get a custodial reconciliation run",
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reconciliation",
        "x-registration-condition": "operatorAuth && wallet",
        "responses": {
          "200": {
            "description": "Run.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/O_ReconciliationRun"
                }
              }
            }
          },
          "400": {
            "description": "Malformed JSON or route validation failed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "The reconciliation run is absent or belongs to another operator.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "WALLET_RESOURCE_NOT_FOUND"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INTERNAL_ERROR"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "runId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1601"
      }
    },
    "/operator/v1/reconciliation/cases/{caseId}/resolution-requests": {
      "post": {
        "operationId": "operator_requestReconciliationResolution",
        "summary": "Request reconciliation-case resolution",
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reconciliation",
        "x-registration-condition": "operatorAuth && wallet",
        "responses": {
          "200": {
            "description": "Case pending resolution.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/O_ReconciliationCase"
                }
              }
            }
          },
          "400": {
            "description": "Malformed JSON or route validation failed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "The reconciliation case is absent or belongs to another operator.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "WALLET_RESOURCE_NOT_FOUND"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Case state or existing resolution request conflicts.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RECONCILIATION_CONFLICT"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INTERNAL_ERROR"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "reasonCode": {
                    "type": "string",
                    "enum": [
                      "legacy_opening_balance",
                      "operator_wallet_confirmed",
                      "data_repair"
                    ]
                  },
                  "note": {
                    "type": "string",
                    "minLength": 10,
                    "maxLength": 2048
                  },
                  "confirm": {
                    "type": "object",
                    "properties": {
                      "target": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "amount": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 9007199254740991
                      },
                      "direction": {
                        "type": "string",
                        "enum": [
                          "credit",
                          "debit"
                        ]
                      },
                      "currency": {
                        "type": "string",
                        "pattern": "^[A-Z]{3}$"
                      },
                      "profile": {
                        "type": "string",
                        "enum": [
                          "dev",
                          "demo",
                          "staging",
                          "real-money"
                        ]
                      },
                      "environmentId": {
                        "type": "string",
                        "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
                      }
                    },
                    "required": [
                      "target",
                      "amount",
                      "direction",
                      "currency",
                      "profile",
                      "environmentId"
                    ],
                    "additionalProperties": false
                  },
                  "expiresInSeconds": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 900
                  }
                },
                "required": [
                  "reasonCode",
                  "note"
                ],
                "additionalProperties": false
              },
              "example": {
                "reasonCode": "data_repair",
                "note": "Synthetic verification reconciled this opening balance."
              }
            }
          }
        },
        "parameters": [
          {
            "name": "caseId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1607"
      }
    },
    "/operator/v1/reconciliation/cases/{caseId}/approve": {
      "post": {
        "operationId": "operator_approveReconciliationResolution",
        "summary": "Approve reconciliation-case resolution",
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reconciliation",
        "x-registration-condition": "operatorAuth && wallet",
        "responses": {
          "200": {
            "description": "Resolved case.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/O_ReconciliationCase"
                }
              }
            }
          },
          "400": {
            "description": "Malformed JSON or route validation failed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "The reconciliation case is absent or belongs to another operator.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "WALLET_RESOURCE_NOT_FOUND"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Approver is not distinct, snapshot is stale, or case state conflicts.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RECONCILIATION_CONFLICT"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INTERNAL_ERROR"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "confirm": {
                    "type": "object",
                    "properties": {
                      "target": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "amount": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 9007199254740991
                      },
                      "direction": {
                        "type": "string",
                        "enum": [
                          "credit",
                          "debit"
                        ]
                      },
                      "currency": {
                        "type": "string",
                        "pattern": "^[A-Z]{3}$"
                      },
                      "profile": {
                        "type": "string",
                        "enum": [
                          "dev",
                          "demo",
                          "staging",
                          "real-money"
                        ]
                      },
                      "environmentId": {
                        "type": "string",
                        "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
                      }
                    },
                    "required": [
                      "target",
                      "amount",
                      "direction",
                      "currency",
                      "profile",
                      "environmentId"
                    ],
                    "additionalProperties": false
                  }
                },
                "additionalProperties": false
              },
              "example": {}
            }
          }
        },
        "parameters": [
          {
            "name": "caseId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1633"
      }
    },
    "/operator/v1/launch": {
      "post": {
        "operationId": "operator_createLaunch",
        "summary": "Issue one-time game launch token",
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "launch",
        "x-registration-condition": "operatorAuth",
        "responses": {
          "201": {
            "description": "Launch token issued.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/O_LaunchResponse"
                },
                "example": {
                  "launchToken": "REDACTED_ONE_TIME_TOKEN",
                  "expiresInSeconds": 300
                }
              }
            }
          },
          "400": {
            "description": "Malformed JSON or route validation failed. brandId and marketId are sent together or not at all, and playerToken and token are never both sent; either rule broken answers 400 INVALID_REQUEST (app.ts launch: the refine and the handler's own check).",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "The account, active game/version, or enabled matching-currency entitlement is absent.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "ACCOUNT_OR_GAME_NOT_FOUND"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "The active game version cannot issue a launch token. The handler can also answer: GAME_OVER_OPERATOR_PAYOUT_LIMIT, WALLET_NOT_VERIFIED.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "GAME_VERSION_UNAVAILABLE"
                          ]
                        }
                      },
                      "required": [
                        "error"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "GAME_OVER_OPERATOR_PAYOUT_LIMIT",
                            "WALLET_NOT_VERIFIED"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INTERNAL_ERROR"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "playerId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256
                  },
                  "currency": {
                    "type": "string",
                    "pattern": "^[A-Z]{3}$"
                  },
                  "gameCode": {
                    "type": "string",
                    "pattern": "^[a-z0-9][a-z0-9_-]{1,63}$"
                  },
                  "locale": {
                    "type": "string",
                    "pattern": "^[a-z]{2}(?:-[A-Z]{2})?$"
                  },
                  "brandId": {
                    "type": "string",
                    "pattern": "^[a-z0-9][a-z0-9._-]{0,63}$"
                  },
                  "marketId": {
                    "type": "string",
                    "pattern": "^[a-z0-9][a-z0-9._-]{0,63}$"
                  },
                  "countryCode": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 2,
                    "pattern": "^[A-Z]{2}$"
                  },
                  "playerToken": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 8192
                  },
                  "betLimitsOverride": {
                    "type": "object",
                    "properties": {
                      "minimum": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 9007199254740991
                      },
                      "maximum": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 9007199254740991
                      },
                      "market": {
                        "type": "object",
                        "properties": {
                          "operatorId": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "brandId": {
                            "type": "string",
                            "pattern": "^[a-z0-9][a-z0-9._-]{0,63}$"
                          },
                          "marketId": {
                            "type": "string",
                            "pattern": "^[a-z0-9][a-z0-9._-]{0,63}$"
                          },
                          "country": {
                            "type": "string",
                            "pattern": "^[A-Z]{2}$"
                          }
                        },
                        "required": [
                          "operatorId",
                          "brandId",
                          "marketId",
                          "country"
                        ],
                        "additionalProperties": false
                      },
                      "default": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 9007199254740991
                      },
                      "maximumBonusBet": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 9007199254740991
                      },
                      "maximumExposure": {
                        "type": "integer",
                        "minimum": 0,
                        "maximum": 9007199254740991
                      },
                      "bonusBuy": {
                        "type": "boolean"
                      }
                    },
                    "additionalProperties": false
                  },
                  "token": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 8192
                  }
                },
                "required": [
                  "playerId",
                  "currency",
                  "gameCode",
                  "locale"
                ],
                "additionalProperties": false,
                "dependentRequired": {
                  "brandId": [
                    "marketId"
                  ],
                  "marketId": [
                    "brandId"
                  ]
                },
                "not": {
                  "required": [
                    "playerToken",
                    "token"
                  ]
                }
              },
              "example": {
                "playerId": "synthetic-player",
                "currency": "EUR",
                "gameCode": "heist-v2",
                "locale": "en-GB"
              }
            }
          },
          "description": "brandId and marketId are sent together or not at all, and playerToken and token are never both sent; either rule broken answers 400 INVALID_REQUEST (app.ts launch: the refine and the handler's own check)."
        },
        "x-source": "apps/rgs/src/app.ts:1677"
      }
    },
    "/operator/v1/campaigns": {
      "post": {
        "operationId": "operator_createCampaign",
        "summary": "Create a campaign",
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "campaigns",
        "x-registration-condition": "operatorAuth && campaigns",
        "responses": {
          "201": {
            "description": "Campaign created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/O_CampaignId"
                },
                "example": {
                  "id": "55555555-5555-4555-8555-555555555555"
                }
              }
            }
          },
          "400": {
            "description": "Malformed JSON or route validation failed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: TWO_PERSON_REQUIRED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "TWO_PERSON_REQUIRED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "422": {
            "description": "Referenced game is not active.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CAMPAIGN_UNAVAILABLE"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INTERNAL_ERROR"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string",
                    "pattern": "^[a-z0-9][a-z0-9_-]{1,63}$"
                  },
                  "gameCode": {
                    "type": "string",
                    "pattern": "^[a-z0-9][a-z0-9_-]{1,63}$"
                  },
                  "currency": {
                    "type": "string",
                    "pattern": "^[A-Z]{3}$"
                  },
                  "budget": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "startsAt": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "endsAt": {
                    "type": "string",
                    "format": "date-time"
                  }
                },
                "required": [
                  "code",
                  "gameCode",
                  "currency",
                  "budget",
                  "startsAt",
                  "endsAt"
                ],
                "additionalProperties": false
              },
              "example": {
                "code": "synthetic-bonus",
                "gameCode": "heist-v2",
                "currency": "EUR",
                "budget": 10000,
                "startsAt": "2026-09-21T00:00:00.000Z",
                "endsAt": "2026-09-22T00:00:00.000Z"
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:1736"
      }
    },
    "/operator/v1/campaigns/{campaignId}/grants": {
      "post": {
        "operationId": "operator_grantCampaign",
        "summary": "Grant campaign funds idempotently",
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "campaigns",
        "x-registration-condition": "operatorAuth && campaigns",
        "responses": {
          "200": {
            "description": "Idempotent existing grant.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/O_CampaignGrantResponse"
                }
              }
            }
          },
          "201": {
            "description": "Grant created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/O_CampaignGrantResponse"
                },
                "example": {
                  "created": true,
                  "balance": 3000,
                  "grantId": "66666666-6666-4666-8666-666666666666"
                }
              }
            }
          },
          "400": {
            "description": "Malformed JSON or route validation failed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "422": {
            "description": "Campaign is unavailable, out of window/budget, account is absent, or idempotency key conflicts. The handler can also answer: INSUFFICIENT_FUNDS.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "CAMPAIGN_UNAVAILABLE"
                          ]
                        }
                      },
                      "required": [
                        "error"
                      ],
                      "additionalProperties": false
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "INSUFFICIENT_FUNDS"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "423": {
            "description": "Locked by responsible gaming. Error codes: RESPONSIBLE_GAMING_LIMIT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RESPONSIBLE_GAMING_LIMIT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INTERNAL_ERROR"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "playerId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256
                  },
                  "amount": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "idempotencyKey": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256
                  }
                },
                "required": [
                  "playerId",
                  "amount",
                  "idempotencyKey"
                ],
                "additionalProperties": false
              },
              "example": {
                "playerId": "synthetic-player",
                "amount": 500,
                "idempotencyKey": "synthetic-grant-1"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "campaignId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1754"
      }
    },
    "/operator/v1/campaigns/{campaignId}/status": {
      "put": {
        "operationId": "operator_setCampaignStatus",
        "summary": "Transition campaign status",
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "campaigns",
        "x-registration-condition": "operatorAuth && campaigns",
        "responses": {
          "200": {
            "description": "Campaign transitioned.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/O_CampaignStatusResponse"
                },
                "example": {
                  "id": "55555555-5555-4555-8555-555555555555",
                  "status": "paused"
                }
              }
            }
          },
          "400": {
            "description": "Malformed JSON or route validation failed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: TWO_PERSON_REQUIRED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "TWO_PERSON_REQUIRED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "422": {
            "description": "Campaign is absent or the requested transition is not allowed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CAMPAIGN_UNAVAILABLE"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INTERNAL_ERROR"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "status": {
                    "type": "string",
                    "enum": [
                      "active",
                      "paused",
                      "ended"
                    ]
                  }
                },
                "required": [
                  "status"
                ],
                "additionalProperties": false
              },
              "example": {
                "status": "paused"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "campaignId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1771"
      }
    },
    "/operator/v1/disputes/wallet-operations/{operationId}": {
      "get": {
        "operationId": "operator_getWalletOperationDisputeEvidence",
        "summary": "Get tenant-scoped external-wallet operation evidence",
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "disputes",
        "x-registration-condition": "operatorAuth",
        "responses": {
          "200": {
            "description": "Coherent dispute evidence.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/O_DisputeResponse"
                }
              }
            }
          },
          "400": {
            "description": "Query validation or canonical cursor validation failed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST",
                        "INVALID_DISPUTE_CURSOR"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "The external-wallet operation is absent or belongs to another operator.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "NOT_FOUND"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "409": {
            "description": "Evidence graph is inconsistent or response/item byte guard was exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "DISPUTE_EVIDENCE_INTEGRITY_MISMATCH",
                        "DISPUTE_EVIDENCE_TOO_LARGE",
                        "DISPUTE_EVIDENCE_ITEM_TOO_LARGE"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "429": {
            "description": "Rate limit exceeded.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "500": {
            "description": "Unexpected server error.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INTERNAL_ERROR"
                      ]
                    }
                  },
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, DISPUTE_EVIDENCE_UNAVAILABLE, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "DISPUTE_EVIDENCE_UNAVAILABLE",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "operationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "collection",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "callbacks",
                "conflicts",
                "reconciliation",
                "audit",
                "actionAudit"
              ]
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1032"
      }
    },
    "/operator/v1/rng/draw-log": {
      "get": {
        "operationId": "operator_rngDrawLog",
        "tags": [
          "Operator"
        ],
        "summary": "Export a signed, ordered RNG draw log",
        "description": "Reports-scope operator export of all financially attributed draws visible in one read-only snapshot, in the half-open created_at window [from,to). The key determines the operator. UTC ordering preserves PostgreSQL microseconds. NDJSON contains one header, indexed public draw records with verified/unsigned/invalid status, and a root-certified signed footer authenticating every preceding byte and the count. No server seed is exported. Save the complete stream and verify offline with tools/verify-rng-draw-log.ts and independently provisioned trusted public roots. HTTP 200 alone does not prove completion: dependency or disconnect failures can truncate the stream. Maximum one export per operator and two per process, 128 rows per page, 15-second idle and 10-minute overall deadlines. Window length is at most 24 hours; to must be at least 30 seconds before the snapshot. Platform draws are not exported. Shared-room receipts may name both consenting operators but contain no player or money details. See docs/design/rng-draw-log.md for the format and trust boundary.",
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reports",
        "x-registration-condition": "operatorAuth; export also requires a configured RNG signer and trusted roots",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "NDJSON attachment. Only a valid signed final footer proves a complete file. Unsigned and invalid draws remain listed.",
            "content": {
              "application/x-ndjson": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid window, window longer than 24 hours, precision greater than six fractional digits, from >= to, or unknown query fields. The handler can also answer: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "RNG_EXPORT_WINDOW_NOT_READY: to is too recent. eligibleTo gives the latest settled timestamp for this snapshot. The handler can also answer: RNG_EXPORT_WINDOW_NOT_READY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RNG_EXPORT_WINDOW_NOT_READY"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "RNG_EXPORT_BUSY: this operator already owns an export or the process has two active exports. The handler can also answer: RNG_EXPORT_BUSY.",
            "headers": {
              "Retry-After": {
                "description": "Seconds until a fresh request may be attempted.",
                "schema": {
                  "type": "string",
                  "const": "15"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RNG_EXPORT_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Signing or export dependency unavailable before streaming. The handler can also answer: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RNG_NOT_READY.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": false,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "RNG_EXPORT_SIGNING_UNAVAILABLE",
                            "RNG_EXPORT_UNAVAILABLE"
                          ]
                        }
                      }
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "CONTROL_PLANE_BUSY",
                            "MONEY_PATH_BUSY",
                            "RNG_NOT_READY"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        },
        "x-source": "apps/rgs/src/rng-draw-log-route.ts:13"
      }
    },
    "/wallet/v1/callbacks/{operatorCode}": {
      "post": {
        "operationId": "wallet_acceptCallback",
        "summary": "Accept a signed operator wallet callback",
        "security": [
          {
            "W_WalletKeyId": [],
            "W_WalletTimestamp": [],
            "W_WalletMessageId": [],
            "W_WalletSignature": []
          }
        ],
        "parameters": [
          {
            "name": "operatorCode",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
            }
          },
          {
            "name": "X-Wallet-Key-Id",
            "in": "header",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/W_KeyId"
            }
          },
          {
            "name": "X-Wallet-Timestamp",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^\\d{10}$"
            }
          },
          {
            "name": "X-Wallet-Message-Id",
            "in": "header",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/W_Uuid"
            }
          },
          {
            "name": "X-Wallet-Signature",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[A-Za-z0-9_-]{86}$"
            }
          },
          {
            "name": "x-wallet-key-id",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[A-Za-z0-9._-]{1,128}$"
            }
          },
          {
            "name": "x-wallet-timestamp",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^\\d{10}$"
            }
          },
          {
            "name": "x-wallet-message-id",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "x-wallet-signature",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[A-Za-z0-9_-]{86}$"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/vnd.23rgs.wallet-callback+json": {
              "schema": {
                "$ref": "#/components/schemas/W_CallbackPayload"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Exact duplicate callback replay",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/W_CallbackAcceptance"
                }
              }
            }
          },
          "202": {
            "description": "New callback accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/W_CallbackAcceptance"
                }
              }
            }
          },
          "400": {
            "description": "Invalid headers, JSON, media type, or payload",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/W_Error"
                }
              }
            }
          },
          "401": {
            "description": "Inactive/unknown key or operator, stale timestamp, or invalid signature",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/W_Error"
                }
              }
            }
          },
          "409": {
            "description": "Message, operation, terminal tuple, statement, or remote transaction identity conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/W_Error"
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Internal failure",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/W_Error"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:579"
      }
    },
    "/operator/v1/wallet/signing-keys": {
      "post": {
        "operationId": "wallet_createSigningKey",
        "summary": "Register an operator Ed25519 callback/response key",
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "keyId": {
                    "type": "string",
                    "pattern": "^[A-Za-z0-9._-]{1,128}$"
                  },
                  "publicKeyPem": {
                    "type": "string",
                    "minLength": 64,
                    "maxLength": 4096
                  },
                  "notBefore": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "expiresAt": {
                    "type": "string",
                    "format": "date-time"
                  }
                },
                "required": [
                  "keyId",
                  "publicKeyPem"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Idempotent active-key registration",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/W_SigningKeyResult"
                }
              }
            }
          },
          "201": {
            "description": "Key created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/W_SigningKeyResult"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request, PEM, algorithm, or validity interval",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/W_Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Key ID conflicts with an existing key. The handler can also answer: TWO_PERSON_REQUIRED.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/W_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "TWO_PERSON_REQUIRED"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "x-operator-scope": "wallet-admin",
        "x-registration-condition": "operatorAuth and dependencies.wallet",
        "x-source": "apps/rgs/src/app.ts:1415"
      }
    },
    "/operator/v1/wallet/signing-keys/{keyId}": {
      "delete": {
        "operationId": "wallet_revokeSigningKey",
        "summary": "Revoke an unbound active signing key",
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "parameters": [
          {
            "name": "keyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[A-Za-z0-9._-]{1,128}$"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "Key revoked"
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "No active key with this key ID",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/W_Error"
                }
              }
            }
          },
          "409": {
            "description": "Active connector still binds this response signing key",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/W_Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "x-operator-scope": "wallet-admin",
        "x-registration-condition": "operatorAuth and dependencies.wallet",
        "x-source": "apps/rgs/src/app.ts:1425"
      }
    },
    "/operator/v1/external-wallet/reconciliation/runs/{runId}": {
      "get": {
        "operationId": "wallet_getExternalReconciliationRun",
        "summary": "Get a reconciliation run created from a signed balance statement",
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "parameters": [
          {
            "name": "runId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Reconciliation run",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/W_ReconciliationRun"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Run does not belong to this operator",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/W_Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "x-operator-scope": "wallet-admin",
        "x-registration-condition": "operatorAuth and dependencies.wallet",
        "x-source": "apps/rgs/src/app.ts:1461"
      }
    },
    "/operator/v1/external-wallet/mode": {
      "put": {
        "operationId": "wallet_setExternalWalletMode",
        "summary": "Set custodial or signed external settlement mode",
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "mode": {
                    "type": "string",
                    "enum": [
                      "custodial",
                      "external"
                    ]
                  },
                  "echo": {
                    "type": "object",
                    "properties": {
                      "amountMinor": {
                        "type": "string",
                        "maxLength": 32
                      },
                      "currency": {
                        "type": "string",
                        "maxLength": 16
                      },
                      "target": {
                        "type": "string",
                        "maxLength": 2048
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "mode",
                  "echo"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Mode stored",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/W_WalletModeResult"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. The handler can also answer: CHANGE_REFUSED.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/W_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "CHANGE_REFUSED"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: TWO_PERSON_REQUIRED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "TWO_PERSON_REQUIRED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "External wallet runtime or active connector/key unavailable. The handler can also answer: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/W_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "CONTROL_PLANE_BUSY",
                            "MONEY_PATH_BUSY",
                            "RATE_LIMIT_UNAVAILABLE"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        },
        "x-operator-scope": "wallet-admin",
        "description": "Requires wallet-admin and echo.target matching mode.",
        "x-registration-condition": "operatorAuth and dependencies.wallet",
        "x-source": "apps/rgs/src/app.ts:1467"
      }
    },
    "/operator/v1/external-wallet/connector": {
      "put": {
        "operationId": "wallet_setExternalWalletConnector",
        "summary": "Configure the operator-hosted signed-wallet endpoint",
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "endpoint": {
                    "type": "string",
                    "maxLength": 2048,
                    "format": "uri"
                  },
                  "responseKeyId": {
                    "type": "string",
                    "pattern": "^[A-Za-z0-9._-]{1,128}$"
                  },
                  "echo": {
                    "type": "object",
                    "properties": {
                      "amountMinor": {
                        "type": "string",
                        "maxLength": 32
                      },
                      "currency": {
                        "type": "string",
                        "maxLength": 16
                      },
                      "target": {
                        "type": "string",
                        "maxLength": 2048
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "endpoint",
                  "responseKeyId",
                  "echo"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Active connector stored",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/W_ConnectorResult"
                }
              }
            }
          },
          "400": {
            "description": "Invalid URL, credentials in URL, insecure non-loopback endpoint, or invalid request. The handler can also answer: CHANGE_REFUSED.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/W_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "CHANGE_REFUSED"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Active response signing key is absent or outside validity",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/W_Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: TWO_PERSON_REQUIRED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "TWO_PERSON_REQUIRED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "x-operator-scope": "wallet-admin",
        "description": "Requires wallet-admin and echo.target matching endpoint exactly, including URL case.",
        "x-registration-condition": "operatorAuth and dependencies.wallet and dependencies.externalWallet",
        "x-source": "apps/rgs/src/app.ts:1478"
      }
    },
    "/operator/v1/external-wallet/operations": {
      "post": {
        "operationId": "wallet_executeExternalOperation",
        "summary": "Durably submit an external-wallet operation",
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "operationId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "kind": {
                    "type": "string",
                    "enum": [
                      "debit",
                      "credit",
                      "cancel",
                      "balance"
                    ]
                  },
                  "playerId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256
                  },
                  "currency": {
                    "type": "string",
                    "pattern": "^[A-Z]{3}$"
                  },
                  "amount": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "originalOperationId": {
                    "type": "string",
                    "format": "uuid"
                  }
                },
                "required": [
                  "operationId",
                  "kind",
                  "playerId",
                  "currency"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Idempotent duplicate operation",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/W_ExternalOperationResult"
                }
              }
            }
          },
          "201": {
            "description": "New operation; status may be approved, declined, or unknown",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/W_ExternalOperationResult"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/W_Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Operation request, cancellation, remote identity, or terminal evidence conflict. The handler can also answer: TWO_PERSON_REQUIRED.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/W_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "TWO_PERSON_REQUIRED"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Active connector/key unavailable. The handler can also answer: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/W_Error"
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "CONTROL_PLANE_BUSY",
                            "MONEY_PATH_BUSY",
                            "RATE_LIMIT_UNAVAILABLE"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        },
        "x-operator-scope": "wallet-admin",
        "x-registration-condition": "operatorAuth and dependencies.wallet and dependencies.externalWallet",
        "x-source": "apps/rgs/src/app.ts:1494"
      }
    },
    "/operator/v1/external-wallet/operations/{operationId}": {
      "get": {
        "operationId": "wallet_getExternalOperation",
        "summary": "Get a durable external-wallet operation result",
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "parameters": [
          {
            "name": "operationId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Stored operation result; duplicate is always true for lookup",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/W_ExternalOperationResult"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Operation does not exist for this operator",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/W_Error"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "x-operator-scope": "wallet-admin",
        "x-registration-condition": "operatorAuth and dependencies.wallet and dependencies.externalWallet",
        "x-source": "apps/rgs/src/app.ts:1523"
      }
    },
    "/game-launch": {
      "get": {
        "operationId": "get_game_launch",
        "tags": [
          "BetSymphony adapter"
        ],
        "summary": "BetSymphony: provider launch (alias path); 303 redirect to the game",
        "responses": {
          "303": {
            "description": "Redirect (See Other).",
            "headers": {
              "Location": {
                "description": "Where the client goes next",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "502": {
            "description": "Upstream failure.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [],
        "x-auth": "The provider's launch token in the query",
        "x-registration-condition": "a BetSymphony adapter",
        "parameters": [
          {
            "name": "gameId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "cherry-dream",
                "fruit-oasis"
              ]
            }
          },
          {
            "name": "token",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 8192
            }
          },
          {
            "name": "playerToken",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 8192
            }
          },
          {
            "name": "language",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[a-z]{2}(?:-[A-Z]{2})?$"
            }
          }
        ],
        "x-source": "packages/adapters/betsymphony/src/betsymphony-routes.ts:22"
      }
    },
    "/integrations/betsymphony/launch": {
      "get": {
        "operationId": "get_integrations_betsymphony_launch",
        "tags": [
          "BetSymphony adapter"
        ],
        "summary": "BetSymphony: provider launch; 303 redirect to the game",
        "responses": {
          "303": {
            "description": "Redirect (See Other).",
            "headers": {
              "Location": {
                "description": "Where the client goes next",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "502": {
            "description": "Upstream failure.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [],
        "x-auth": "The provider's launch token in the query",
        "x-registration-condition": "a BetSymphony adapter",
        "parameters": [
          {
            "name": "gameId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "cherry-dream",
                "fruit-oasis"
              ]
            }
          },
          {
            "name": "token",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 8192
            }
          },
          {
            "name": "playerToken",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 8192
            }
          },
          {
            "name": "language",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[a-z]{2}(?:-[A-Z]{2})?$"
            }
          }
        ],
        "x-source": "packages/adapters/betsymphony/src/betsymphony-routes.ts:22"
      }
    },
    "/integrations/betsymphony/session": {
      "post": {
        "operationId": "post_integrations_betsymphony_session",
        "tags": [
          "BetSymphony adapter"
        ],
        "summary": "BetSymphony: complete a launch with the player token; answers the game URL",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "url": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "url"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "502": {
            "description": "Upstream failure.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [],
        "x-auth": "BetSymphony launch token and player token in the body",
        "x-registration-condition": "a BetSymphony adapter",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "launchToken": {
                    "type": "string",
                    "pattern": "^[A-Za-z0-9_-]{43}$"
                  },
                  "playerToken": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 8192
                  }
                },
                "required": [
                  "launchToken",
                  "playerToken"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "packages/adapters/betsymphony/src/betsymphony-routes.ts:14"
      }
    },
    "/operator/console": {
      "get": {
        "operationId": "get_operator_console",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: redirect to /operator/console/",
        "responses": {
          "302": {
            "description": "Redirect.",
            "headers": {
              "Location": {
                "description": "Where the client goes next",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request; endpoint validation and exact representation rules apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          }
        },
        "security": [],
        "x-auth": "None",
        "x-registration-condition": "dependencies.console",
        "x-source": "apps/rgs/src/console.ts:121"
      }
    },
    "/operator/console/": {
      "get": {
        "operationId": "get_operator_console_index",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: the single-page application",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request; endpoint validation and exact representation rules apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          }
        },
        "security": [],
        "x-auth": "None",
        "x-registration-condition": "dependencies.console",
        "x-source": "apps/rgs/src/console.ts:122"
      }
    },
    "/operator/console/api/activity": {
      "get": {
        "operationId": "get_operator_console_api_activity",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: action log ('keys' scope)",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_ActivityLog"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED, CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED",
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "activity",
        "x-registration-condition": "dependencies.console and backoffice",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "kind",
            "in": "query",
            "required": false,
            "schema": {
              "default": "changes",
              "type": "string",
              "enum": [
                "changes",
                "all"
              ]
            }
          },
          {
            "name": "actor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            }
          },
          {
            "name": "action",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[a-z][a-z_.]{0,63}$"
            }
          },
          {
            "name": "before",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{6}Z\\|[1-9][0-9]{0,18}$"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "default": 100,
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "x-source": "apps/rgs/src/console.ts:332"
      }
    },
    "/operator/console/api/activity.csv": {
      "get": {
        "operationId": "get_operator_console_api_activity_csv",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: action log as CSV ('keys' scope)",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED, CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED",
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Not processable. Error codes: BACKOFFICE_EXPORT_TOO_LARGE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_EXPORT_TOO_LARGE"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "activity",
        "x-registration-condition": "dependencies.console and backoffice",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "kind",
            "in": "query",
            "required": false,
            "schema": {
              "default": "changes",
              "type": "string",
              "enum": [
                "changes",
                "all"
              ]
            }
          },
          {
            "name": "actor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            }
          },
          {
            "name": "action",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[a-z][a-z_.]{0,63}$"
            }
          }
        ],
        "x-source": "apps/rgs/src/console.ts:337"
      }
    },
    "/operator/console/api/alerts": {
      "get": {
        "operationId": "get_operator_console_api_alerts",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: alerts",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_BackofficeAlerts"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED, CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED",
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "reports",
        "x-registration-condition": "dependencies.console and backoffice",
        "parameters": [
          {
            "name": "stuckAfterMinutes",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "maximum": 1440
            }
          },
          {
            "name": "largeWinMultiplier",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 1000000
            }
          }
        ],
        "x-source": "apps/rgs/src/console.ts:227"
      }
    },
    "/operator/console/api/changes": {
      "get": {
        "operationId": "get_operator_console_api_changes",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: LiveOps change requests (and console user changes, for admins)",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/D_OperatorChangeView"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request; endpoint validation and exact representation rules apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "users",
        "x-registration-condition": "dependencies.console and changes",
        "x-source": "apps/rgs/src/console.ts:398"
      },
      "post": {
        "operationId": "post_operator_console_api_changes",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: propose a LiveOps or console user change",
        "responses": {
          "201": {
            "description": "Created.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "termsSha256": {
                      "type": "string"
                    },
                    "expiresAt": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "termsSha256",
                    "expiresAt"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: CONSOLE_SETUP_INVALID, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_SETUP_INVALID",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: CHANGE_REFUSED, CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CHANGE_REFUSED",
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: CHANGE_REFUSED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CHANGE_REFUSED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "liveops",
        "x-registration-condition": "dependencies.console and changes",
        "parameters": [
          {
            "name": "x-console-csrf",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "const": "1"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "free-rounds.create"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "code": {
                            "type": "string",
                            "pattern": "^[a-z0-9][a-z0-9._-]{0,63}$"
                          },
                          "gameVersionId": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "currency": {
                            "type": "string",
                            "pattern": "^[A-Z]{3}$"
                          },
                          "amount": {
                            "type": "integer",
                            "exclusiveMinimum": 0,
                            "maximum": 9007199254740991
                          },
                          "payoutCategory": {
                            "type": "string",
                            "enum": [
                              "promo",
                              "normal"
                            ]
                          },
                          "budgetMinor": {
                            "type": "string",
                            "pattern": "^[1-9][0-9]{0,15}$"
                          },
                          "startsAt": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "endsAt": {
                            "type": "string",
                            "format": "date-time"
                          }
                        },
                        "required": [
                          "code",
                          "gameVersionId",
                          "currency",
                          "amount",
                          "payoutCategory",
                          "budgetMinor",
                          "startsAt",
                          "endsAt"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "free-rounds.remove"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "campaignId": {
                            "type": "string",
                            "format": "uuid"
                          }
                        },
                        "required": [
                          "campaignId"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "tournament.create"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "code": {
                            "type": "string",
                            "pattern": "^[a-z0-9][a-z0-9._-]{0,63}$"
                          },
                          "currency": {
                            "type": "string",
                            "pattern": "^[A-Z]{3}$"
                          },
                          "gameVersionIds": {
                            "minItems": 1,
                            "maxItems": 64,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "format": "uuid"
                            }
                          },
                          "minimumWagerMinor": {
                            "type": "string",
                            "pattern": "^[1-9][0-9]{0,15}$"
                          },
                          "scoring": {
                            "type": "string",
                            "enum": [
                              "total-win",
                              "wager-volume"
                            ]
                          },
                          "startsAt": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "endsAt": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "prizesMinor": {
                            "minItems": 1,
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "pattern": "^[1-9][0-9]{0,15}$"
                            }
                          },
                          "budgetMinor": {
                            "type": "string",
                            "pattern": "^[1-9][0-9]{0,15}$"
                          },
                          "fundingSources": {
                            "minItems": 1,
                            "maxItems": 2,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "cash",
                                "promo"
                              ]
                            }
                          },
                          "tieBreak": {
                            "type": "string",
                            "const": "first-achieved"
                          }
                        },
                        "required": [
                          "code",
                          "currency",
                          "gameVersionIds",
                          "minimumWagerMinor",
                          "scoring",
                          "startsAt",
                          "endsAt",
                          "prizesMinor",
                          "budgetMinor",
                          "fundingSources",
                          "tieBreak"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "tournament.close"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "tournamentId": {
                            "type": "string",
                            "format": "uuid"
                          }
                        },
                        "required": [
                          "tournamentId"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "jackpot.create"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "gameVersionId": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "poolKey": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64
                          },
                          "reserveByTier": {
                            "type": "object",
                            "propertyNames": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 64
                            },
                            "additionalProperties": {
                              "type": "string",
                              "pattern": "^(0|[1-9][0-9]{0,15})$"
                            }
                          }
                        },
                        "required": [
                          "gameVersionId",
                          "poolKey",
                          "reserveByTier"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "campaign.create"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "code": {
                            "type": "string",
                            "pattern": "^[a-z0-9][a-z0-9_-]{1,63}$"
                          },
                          "gameCode": {
                            "type": "string",
                            "pattern": "^[a-z0-9][a-z0-9_-]{1,63}$"
                          },
                          "currency": {
                            "type": "string",
                            "pattern": "^[A-Z]{3}$"
                          },
                          "budget": {
                            "type": "integer",
                            "exclusiveMinimum": 0,
                            "maximum": 9007199254740991
                          },
                          "startsAt": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "endsAt": {
                            "type": "string",
                            "format": "date-time"
                          }
                        },
                        "required": [
                          "code",
                          "gameCode",
                          "currency",
                          "budget",
                          "startsAt",
                          "endsAt"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "campaign.status"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "campaignId": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "active",
                              "paused",
                              "ended"
                            ]
                          }
                        },
                        "required": [
                          "campaignId",
                          "status"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "market.profile"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "market": {
                            "type": "string",
                            "pattern": "^[A-Z]{2}(-[A-Z0-9]{1,3})?$"
                          },
                          "taxBasis": {
                            "type": "string",
                            "enum": [
                              "ggr",
                              "ngr",
                              "turnover"
                            ]
                          },
                          "rateBps": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 10000
                          },
                          "freeRoundExempt": {
                            "type": "boolean"
                          },
                          "validFrom": {
                            "type": "string",
                            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                          }
                        },
                        "required": [
                          "market",
                          "taxBasis",
                          "rateBps",
                          "freeRoundExempt",
                          "validFrom"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "wallet.mode"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "mode": {
                            "type": "string",
                            "enum": [
                              "custodial",
                              "external"
                            ]
                          }
                        },
                        "required": [
                          "mode"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "wallet.connector"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "endpoint": {
                            "type": "string",
                            "maxLength": 2048,
                            "format": "uri"
                          },
                          "responseKeyId": {
                            "type": "string",
                            "pattern": "^[A-Za-z0-9._-]{1,128}$"
                          }
                        },
                        "required": [
                          "endpoint",
                          "responseKeyId"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "wallet.signing-key"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "keyId": {
                            "type": "string",
                            "pattern": "^[A-Za-z0-9._-]{1,128}$"
                          },
                          "publicKeyPem": {
                            "type": "string",
                            "minLength": 64,
                            "maxLength": 4096
                          },
                          "notBefore": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "expiresAt": {
                            "type": "string",
                            "format": "date-time"
                          }
                        },
                        "required": [
                          "keyId",
                          "publicKeyPem"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "api-key.create"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "label": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 128
                          },
                          "scopes": {
                            "minItems": 1,
                            "maxItems": 16,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "keys",
                                "launch",
                                "wallet",
                                "wallet-admin",
                                "campaigns",
                                "responsible-gaming",
                                "reconciliation",
                                "games",
                                "disputes",
                                "reports",
                                "verifier"
                              ]
                            }
                          },
                          "ttlSeconds": {
                            "default": 7776000,
                            "type": "integer",
                            "minimum": 300,
                            "maximum": 7776000
                          }
                        },
                        "required": [
                          "label",
                          "scopes"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "game.entitlement"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "gameCode": {
                            "type": "string",
                            "pattern": "^[a-z0-9][a-z0-9_-]{1,63}$"
                          },
                          "enabled": {
                            "type": "boolean"
                          },
                          "currencies": {
                            "minItems": 1,
                            "maxItems": 32,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "pattern": "^[A-Z]{3}$"
                            }
                          }
                        },
                        "required": [
                          "gameCode",
                          "enabled",
                          "currencies"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "jackpot.membership.offer"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "poolId": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "operatorId": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "gameVersionId": {
                            "type": "string",
                            "format": "uuid"
                          }
                        },
                        "required": [
                          "poolId",
                          "operatorId",
                          "gameVersionId"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "jackpot.membership.accept"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "poolId": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "offerId": {
                            "type": "string",
                            "format": "uuid"
                          }
                        },
                        "required": [
                          "poolId",
                          "offerId"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "wallet.operation"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "operationId": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "kind": {
                            "type": "string",
                            "enum": [
                              "debit",
                              "credit",
                              "cancel"
                            ]
                          },
                          "playerId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 256
                          },
                          "currency": {
                            "type": "string",
                            "pattern": "^[A-Z]{3}$"
                          },
                          "amount": {
                            "type": "integer",
                            "exclusiveMinimum": 0,
                            "maximum": 9007199254740991
                          },
                          "originalOperationId": {
                            "type": "string",
                            "format": "uuid"
                          }
                        },
                        "required": [
                          "operationId",
                          "kind",
                          "playerId",
                          "currency"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "wallet.adjust"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "externalPlayerId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 256
                          },
                          "currency": {
                            "type": "string",
                            "pattern": "^[A-Z]{3}$"
                          },
                          "amountMinor": {
                            "type": "string"
                          },
                          "reason": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          },
                          "reference": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64
                          }
                        },
                        "required": [
                          "externalPlayerId",
                          "currency",
                          "amountMinor",
                          "reason",
                          "reference"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "player.erase"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "accountId": {
                            "type": "string",
                            "format": "uuid"
                          }
                        },
                        "required": [
                          "accountId"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "round.void"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "roundId": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "reason": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          }
                        },
                        "required": [
                          "roundId",
                          "reason"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "console.user.create"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "username": {
                            "type": "string",
                            "pattern": "^[a-z0-9][a-z0-9._@-]{2,127}$"
                          },
                          "role": {
                            "type": "string",
                            "enum": [
                              "viewer",
                              "support",
                              "finance",
                              "admin"
                            ]
                          }
                        },
                        "required": [
                          "username",
                          "role"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "console.user.role"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "userId": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "role": {
                            "type": "string",
                            "enum": [
                              "viewer",
                              "support",
                              "finance",
                              "admin"
                            ]
                          }
                        },
                        "required": [
                          "userId",
                          "role"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "console.user.reset"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "userId": {
                            "type": "string",
                            "format": "uuid"
                          }
                        },
                        "required": [
                          "userId"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  }
                ]
              }
            }
          }
        },
        "x-refused-actions": [
          "api-key.create",
          "game.entitlement",
          "player.erase",
          "round.void",
          "wallet.adjust",
          "wallet.connector",
          "wallet.mode",
          "wallet.operation",
          "wallet.signing-key"
        ],
        "description": "These actions pass validation but are always refused here with 403 CHANGE_REFUSED (round.void: 'round voids are made on the operator API: two enrolled people with reconciliation keys propose and approve them'; api-key.create: 'API keys are issued on the operator API: two enrolled people with keys-scope keys propose and approve them'; game.entitlement: 'game entitlement changes are made on the operator API: two enrolled people with games-scope keys propose and approve them'; player.erase: 'player erasures are made on the operator API: two enrolled people with owner keys propose and approve them'; wallet changes: 'wallet changes are made on the operator API'): api-key.create, game.entitlement, player.erase, round.void, wallet.adjust, wallet.connector, wallet.mode, wallet.operation, wallet.signing-key. console.user.create, console.user.reset, console.user.role also need the users permission.",
        "x-source": "apps/rgs/src/console.ts:406"
      }
    },
    "/operator/console/api/changes/{changeId}/decision": {
      "post": {
        "operationId": "post_operator_console_api_changes_changeId_decision",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: approve or reject a change; approving needs a fresh authenticator code",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "decision": {
                      "type": "string"
                    },
                    "result": {}
                  },
                  "required": [
                    "decision",
                    "result"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: CHANGE_REFUSED, CONSOLE_SETUP_INVALID, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CHANGE_REFUSED",
                        "CONSOLE_SETUP_INVALID",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_STEP_UP_FAILED, CONSOLE_UNAUTHENTICATED, OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_STEP_UP_FAILED",
                        "CONSOLE_UNAUTHENTICATED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED, CHANGE_REFUSED, CONSOLE_DISABLED, CONSOLE_FORBIDDEN, DATA_PROTECTION_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED",
                        "CHANGE_REFUSED",
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN",
                        "DATA_PROTECTION_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: BACKOFFICE_RESOURCE_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_RESOURCE_NOT_FOUND"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: CHANGE_REFUSED, CONSOLE_USER_EXISTS, PLAYER_ERASURE_REFUSED, WALLET_TRANSACTION_CONFLICT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CHANGE_REFUSED",
                        "CONSOLE_USER_EXISTS",
                        "PLAYER_ERASURE_REFUSED",
                        "WALLET_TRANSACTION_CONFLICT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "422": {
            "description": "Not processable. Error codes: INSUFFICIENT_FUNDS.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INSUFFICIENT_FUNDS"
                      ]
                    }
                  }
                }
              }
            }
          },
          "423": {
            "description": "Locked by responsible gaming. Error codes: RESPONSIBLE_GAMING_LIMIT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RESPONSIBLE_GAMING_LIMIT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONSOLE_UNAVAILABLE, CONTROL_PLANE_BUSY, EXTERNAL_WALLET_UNAVAILABLE, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONSOLE_UNAVAILABLE",
                        "CONTROL_PLANE_BUSY",
                        "EXTERNAL_WALLET_UNAVAILABLE",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "liveops",
        "x-registration-condition": "dependencies.console and changes",
        "parameters": [
          {
            "name": "changeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "x-console-csrf",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "const": "1"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "decision": {
                    "type": "string",
                    "enum": [
                      "approved",
                      "rejected"
                    ]
                  },
                  "confirm": {
                    "type": "string",
                    "pattern": "^[0-9a-f]{64}$"
                  },
                  "code": {
                    "type": "string",
                    "pattern": "^\\d{6}$"
                  },
                  "echo": {
                    "type": "object",
                    "properties": {
                      "amountMinor": {
                        "type": "string",
                        "maxLength": 32
                      },
                      "currency": {
                        "type": "string",
                        "maxLength": 16
                      },
                      "target": {
                        "type": "string",
                        "maxLength": 2048
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "decision",
                  "confirm"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/console.ts:420"
      }
    },
    "/operator/console/api/fx/rates": {
      "get": {
        "operationId": "get_operator_console_api_fx_rates",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: FX source freshness, active observations and quarantined candidates",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "baseCurrency": {
                      "type": "string"
                    },
                    "purpose": {
                      "type": "string"
                    },
                    "rates": {
                      "type": "array",
                      "items": {}
                    }
                  },
                  "required": [
                    "baseCurrency",
                    "purpose",
                    "rates"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request; endpoint validation and exact representation rules apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED, CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED",
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "reports",
        "x-registration-condition": "dependencies.console and backoffice",
        "x-source": "apps/rgs/src/console.ts:297"
      }
    },
    "/operator/console/api/games": {
      "get": {
        "operationId": "get_operator_console_api_games",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: enabled operator games and development test-play availability",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "testBets": {
                      "type": "number"
                    },
                    "games": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "code": {
                            "type": "string"
                          },
                          "version": {
                            "type": "string"
                          },
                          "currencies": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "fundingMinor": {
                            "$ref": "#/components/schemas/D_Record_string_number"
                          },
                          "name": {
                            "type": "string"
                          },
                          "canPlay": {
                            "type": "boolean"
                          }
                        },
                        "required": [
                          "code",
                          "version",
                          "currencies",
                          "fundingMinor",
                          "name",
                          "canPlay"
                        ]
                      }
                    }
                  },
                  "required": [
                    "testBets",
                    "games"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED, OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "reports",
        "x-registration-condition": "dependencies.console",
        "x-source": "apps/rgs/src/console.ts:136"
      }
    },
    "/operator/console/api/games/play": {
      "post": {
        "operationId": "post_operator_console_api_games_play",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: launch a fresh funded development test session",
        "description": "Admin console session and CSRF header required. Disabled unless a private test key is explicitly configured and the database birth is staging with the configured environment ID. Restricted to that key's custodial operator, enabled game entitlements and installed clients. Credits a new synthetic player with enough native-currency test units for 10,000 default bets from the pinned currency profile through the standard wallet API; retries with the same requestId and currency reuse the deposit. Returns a relative game launch URL, valid for initial authentication for five minutes. Six requests per minute per console user. No production credits or external casino wallet calls.",
        "responses": {
          "201": {
            "description": "Created.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "url": {
                      "type": "string"
                    },
                    "expiresInSeconds": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "url",
                    "expiresInSeconds"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED, OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          },
          "default": {
            "description": "Status set by the handler at run time. Error codes: CONSOLE_GAME_REFUSED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_GAME_REFUSED"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "users",
        "x-registration-condition": "dependencies.console",
        "parameters": [
          {
            "name": "x-console-csrf",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "const": "1"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "gameCode": {
                    "type": "string",
                    "pattern": "^[a-z0-9][a-z0-9_-]{1,63}$"
                  },
                  "currency": {
                    "type": "string",
                    "pattern": "^[A-Z]{3}$"
                  },
                  "requestId": {
                    "type": "string",
                    "format": "uuid"
                  }
                },
                "required": [
                  "gameCode",
                  "currency",
                  "requestId"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/console.ts:140"
      }
    },
    "/operator/console/api/liveops": {
      "get": {
        "operationId": "get_operator_console_api_liveops",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: LiveOps report",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_LiveOpsReport"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED, CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED",
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "liveops",
        "x-registration-condition": "dependencies.console and backoffice",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          }
        ],
        "x-source": "apps/rgs/src/console.ts:376"
      }
    },
    "/operator/console/api/liveops-games": {
      "get": {
        "operationId": "get_operator_console_api_liveops_games",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: games LiveOps changes can name",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/D_LiveOpsGame"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request; endpoint validation and exact representation rules apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "liveops",
        "x-registration-condition": "dependencies.console and changes",
        "x-source": "apps/rgs/src/console.ts:404"
      }
    },
    "/operator/console/api/liveops.csv": {
      "get": {
        "operationId": "get_operator_console_api_liveops_csv",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: LiveOps report as CSV",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED, CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED",
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "liveops",
        "x-registration-condition": "dependencies.console and backoffice",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          }
        ],
        "x-source": "apps/rgs/src/console.ts:369"
      }
    },
    "/operator/console/api/login": {
      "post": {
        "operationId": "post_operator_console_api_login",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: sign in; sets the rgs_console session cookie",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "user": {
                      "type": "object",
                      "properties": {
                        "approver": {
                          "type": "boolean"
                        },
                        "platformAlerts": {
                          "type": "boolean"
                        },
                        "username": {
                          "type": "string"
                        },
                        "role": {
                          "type": "string",
                          "enum": [
                            "finance",
                            "viewer",
                            "support",
                            "admin"
                          ]
                        },
                        "operator": {
                          "type": "string"
                        },
                        "permissions": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "reports",
                              "players",
                              "finance",
                              "liveops",
                              "verifier",
                              "users",
                              "activity"
                            ]
                          }
                        }
                      },
                      "required": [
                        "approver",
                        "platformAlerts",
                        "username",
                        "role",
                        "operator",
                        "permissions"
                      ]
                    },
                    "database": {
                      "type": "object",
                      "properties": {
                        "profile": {
                          "type": "string"
                        },
                        "environmentId": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "profile",
                        "environmentId"
                      ]
                    },
                    "expiresAt": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "user",
                    "database",
                    "expiresAt"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_LOGIN_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_LOGIN_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONSOLE_UNAVAILABLE, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAVAILABLE",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [],
        "x-auth": "Console username, password and code in the body",
        "x-registration-condition": "dependencies.console",
        "parameters": [
          {
            "name": "x-console-csrf",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "const": "1"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "operator": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  },
                  "username": {
                    "type": "string",
                    "pattern": "^[a-z0-9][a-z0-9._@-]{2,127}$"
                  },
                  "password": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1024
                  },
                  "code": {
                    "type": "string",
                    "pattern": "^\\d{6}$"
                  }
                },
                "required": [
                  "operator",
                  "username",
                  "password",
                  "code"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/console.ts:173"
      }
    },
    "/operator/console/api/logout": {
      "post": {
        "operationId": "post_operator_console_api_logout",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: sign out; clears the session cookie",
        "responses": {
          "204": {
            "description": "No content."
          },
          "400": {
            "description": "Invalid request; endpoint validation and exact representation rules apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "any signed-in console user",
        "x-registration-condition": "dependencies.console",
        "parameters": [
          {
            "name": "x-console-csrf",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "const": "1"
            }
          }
        ],
        "x-source": "apps/rgs/src/console.ts:182"
      }
    },
    "/operator/console/api/markets": {
      "get": {
        "operationId": "get_operator_console_api_markets",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: market profiles",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "profiles": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/D_MarketProfile"
                      }
                    }
                  },
                  "required": [
                    "profiles"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED, CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED",
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "finance",
        "x-registration-condition": "dependencies.console and backoffice",
        "x-source": "apps/rgs/src/console.ts:222"
      }
    },
    "/operator/console/api/me": {
      "get": {
        "operationId": "get_operator_console_api_me",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: the signed-in user and the database identity",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "user": {
                      "type": "object",
                      "properties": {
                        "approver": {
                          "type": "boolean"
                        },
                        "platformAlerts": {
                          "type": "boolean"
                        },
                        "username": {
                          "type": "string"
                        },
                        "role": {
                          "type": "string",
                          "enum": [
                            "finance",
                            "viewer",
                            "support",
                            "admin"
                          ]
                        },
                        "operator": {
                          "type": "string"
                        },
                        "permissions": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "reports",
                              "players",
                              "finance",
                              "liveops",
                              "verifier",
                              "users",
                              "activity"
                            ]
                          }
                        }
                      },
                      "required": [
                        "approver",
                        "platformAlerts",
                        "username",
                        "role",
                        "operator",
                        "permissions"
                      ]
                    },
                    "database": {
                      "type": "object",
                      "properties": {
                        "profile": {
                          "type": "string"
                        },
                        "environmentId": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "profile",
                        "environmentId"
                      ]
                    }
                  },
                  "required": [
                    "user",
                    "database"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request; endpoint validation and exact representation rules apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "any signed-in console user",
        "x-registration-condition": "dependencies.console",
        "x-source": "apps/rgs/src/console.ts:189"
      }
    },
    "/operator/console/api/platform-alerts": {
      "get": {
        "operationId": "get_operator_console_api_platform_alerts",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: platform alerts, for users the platform owner granted",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "active": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/D_PlatformAlertView"
                      }
                    },
                    "resolved": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/D_PlatformAlertView"
                      }
                    }
                  },
                  "required": [
                    "active",
                    "resolved"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request; endpoint validation and exact representation rules apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "any signed-in console user",
        "x-registration-condition": "dependencies.console and options.platformAlerts",
        "x-source": "apps/rgs/src/console.ts:196"
      }
    },
    "/operator/console/api/players": {
      "get": {
        "operationId": "get_operator_console_api_players",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: look up a player by external id",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_BackofficePlayer"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED, CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED",
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: BACKOFFICE_RESOURCE_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_RESOURCE_NOT_FOUND"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "players",
        "x-registration-condition": "dependencies.console and backoffice",
        "parameters": [
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          },
          {
            "name": "externalPlayerId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            }
          }
        ],
        "x-source": "apps/rgs/src/console.ts:217"
      }
    },
    "/operator/console/api/players/activity": {
      "get": {
        "operationId": "get_operator_console_api_players_activity",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: a player's activity",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_PlayerActivity"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED, CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED",
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: BACKOFFICE_RESOURCE_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_RESOURCE_NOT_FOUND"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "players",
        "x-registration-condition": "dependencies.console and backoffice",
        "parameters": [
          {
            "name": "externalPlayerId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "x-source": "apps/rgs/src/console.ts:245"
      }
    },
    "/operator/console/api/players/data": {
      "get": {
        "operationId": "get_operator_console_api_players_data",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: a player's data (data protection access)",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_PlayerDataExport"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED, CONSOLE_DISABLED, CONSOLE_FORBIDDEN, DATA_PROTECTION_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED",
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN",
                        "DATA_PROTECTION_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: BACKOFFICE_RESOURCE_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_RESOURCE_NOT_FOUND"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "players",
        "x-registration-condition": "dependencies.console and backoffice",
        "parameters": [
          {
            "name": "externalPlayerId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            }
          }
        ],
        "x-source": "apps/rgs/src/console.ts:240"
      }
    },
    "/operator/console/api/players/time-out": {
      "post": {
        "operationId": "post_operator_console_api_players_time_out",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: time-out on the player's request, on every account of the player",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_ResponsibleGamingLimits"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: RESPONSIBLE_GAMING_ACCOUNT_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RESPONSIBLE_GAMING_ACCOUNT_NOT_FOUND"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "players",
        "x-registration-condition": "dependencies.console and responsibleGaming",
        "parameters": [
          {
            "name": "x-console-csrf",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "const": "1"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "playerId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256
                  },
                  "period": {
                    "type": "string",
                    "enum": [
                      "24h",
                      "7d",
                      "30d",
                      "42d"
                    ]
                  }
                },
                "required": [
                  "playerId",
                  "period"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/console.ts:446"
      }
    },
    "/operator/console/api/players/wins": {
      "get": {
        "operationId": "get_operator_console_api_players_wins",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: a player's wins",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_PlayerWins"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED, CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED",
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: BACKOFFICE_RESOURCE_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_RESOURCE_NOT_FOUND"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "players",
        "x-registration-condition": "dependencies.console and backoffice",
        "parameters": [
          {
            "name": "externalPlayerId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "x-source": "apps/rgs/src/console.ts:250"
      }
    },
    "/operator/console/api/reports/cohorts": {
      "get": {
        "operationId": "get_operator_console_api_reports_cohorts",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: cohort report",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_CohortReport"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_COHORTS_DISABLED, BACKOFFICE_DISABLED, CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_COHORTS_DISABLED",
                        "BACKOFFICE_DISABLED",
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "reports",
        "x-registration-condition": "dependencies.console and backoffice",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          }
        ],
        "x-source": "apps/rgs/src/console.ts:320"
      }
    },
    "/operator/console/api/reports/cohorts.csv": {
      "get": {
        "operationId": "get_operator_console_api_reports_cohorts_csv",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: cohort report as CSV",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_COHORTS_DISABLED, BACKOFFICE_DISABLED, CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_COHORTS_DISABLED",
                        "BACKOFFICE_DISABLED",
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "finance",
        "x-registration-condition": "dependencies.console and backoffice",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          }
        ],
        "x-source": "apps/rgs/src/console.ts:325"
      }
    },
    "/operator/console/api/reports/daily": {
      "get": {
        "operationId": "get_operator_console_api_reports_daily",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: daily report",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_DailyReport"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED, CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED",
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "reports",
        "x-registration-condition": "dependencies.console and backoffice",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          },
          {
            "name": "gameCode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9][a-z0-9_-]{1,63}$"
            }
          },
          {
            "name": "groupBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "day",
                "game",
                "market"
              ]
            }
          }
        ],
        "x-source": "apps/rgs/src/console.ts:286"
      }
    },
    "/operator/console/api/reports/daily.csv": {
      "get": {
        "operationId": "get_operator_console_api_reports_daily_csv",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: daily report as CSV",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED, CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED",
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "finance",
        "x-registration-condition": "dependencies.console and backoffice",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          },
          {
            "name": "gameCode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9][a-z0-9_-]{1,63}$"
            }
          },
          {
            "name": "groupBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "day",
                "game",
                "market"
              ]
            }
          }
        ],
        "x-source": "apps/rgs/src/console.ts:301"
      }
    },
    "/operator/console/api/reports/fx": {
      "get": {
        "operationId": "get_operator_console_api_reports_fx",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: historical EUR reporting using each round's pinned reference rate",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "baseCurrency": {
                      "type": "string"
                    },
                    "precision": {
                      "type": "number"
                    },
                    "complete": {
                      "type": "boolean"
                    },
                    "unconvertedRounds": {
                      "type": "string"
                    },
                    "wagerEurMicros": {
                      "type": "string"
                    },
                    "payoutEurMicros": {
                      "type": "string"
                    },
                    "promoPayoutEurMicros": {
                      "type": "string"
                    },
                    "ggrEurMicros": {
                      "type": "string"
                    },
                    "ngrEurMicros": {
                      "type": "string"
                    },
                    "rows": {
                      "type": "array",
                      "items": {
                        "anyOf": [
                          {
                            "type": "object",
                            "properties": {
                              "wagerEurMicros": {
                                "type": "null"
                              },
                              "payoutEurMicros": {
                                "type": "null"
                              },
                              "promoPayoutEurMicros": {
                                "type": "null"
                              },
                              "ggrEurMicros": {
                                "type": "null"
                              },
                              "ngrEurMicros": {
                                "type": "null"
                              },
                              "currency": {
                                "type": "string"
                              },
                              "decimals": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ]
                              },
                              "observation_id": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "provider": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "source_date": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "numerator": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "denominator": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "rounds": {
                                "type": "string"
                              },
                              "wager": {
                                "type": "string"
                              },
                              "payout": {
                                "type": "string"
                              },
                              "promo_payout": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "wagerEurMicros",
                              "payoutEurMicros",
                              "promoPayoutEurMicros",
                              "ggrEurMicros",
                              "ngrEurMicros",
                              "currency",
                              "decimals",
                              "observation_id",
                              "provider",
                              "source_date",
                              "numerator",
                              "denominator",
                              "rounds",
                              "wager",
                              "payout",
                              "promo_payout"
                            ]
                          },
                          {
                            "type": "object",
                            "properties": {
                              "wagerEurMicros": {
                                "type": "string"
                              },
                              "payoutEurMicros": {
                                "type": "string"
                              },
                              "promoPayoutEurMicros": {
                                "type": "string"
                              },
                              "ggrEurMicros": {
                                "type": "string"
                              },
                              "ngrEurMicros": {
                                "type": "string"
                              },
                              "currency": {
                                "type": "string"
                              },
                              "decimals": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ]
                              },
                              "observation_id": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "provider": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "source_date": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "numerator": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "denominator": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "rounds": {
                                "type": "string"
                              },
                              "wager": {
                                "type": "string"
                              },
                              "payout": {
                                "type": "string"
                              },
                              "promo_payout": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "wagerEurMicros",
                              "payoutEurMicros",
                              "promoPayoutEurMicros",
                              "ggrEurMicros",
                              "ngrEurMicros",
                              "currency",
                              "decimals",
                              "observation_id",
                              "provider",
                              "source_date",
                              "numerator",
                              "denominator",
                              "rounds",
                              "wager",
                              "payout",
                              "promo_payout"
                            ]
                          }
                        ]
                      }
                    },
                    "from": {
                      "type": "string"
                    },
                    "to": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "baseCurrency",
                    "precision",
                    "complete",
                    "unconvertedRounds",
                    "wagerEurMicros",
                    "payoutEurMicros",
                    "promoPayoutEurMicros",
                    "ggrEurMicros",
                    "ngrEurMicros",
                    "rows",
                    "from",
                    "to"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED, CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED",
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "reports",
        "x-registration-condition": "dependencies.console and backoffice",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          },
          {
            "name": "gameCode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9][a-z0-9_-]{1,63}$"
            }
          }
        ],
        "x-source": "apps/rgs/src/console.ts:291"
      }
    },
    "/operator/console/api/reports/liability": {
      "get": {
        "operationId": "get_operator_console_api_reports_liability",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: liability report",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_LiabilityReport"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED, CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED",
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "finance",
        "x-registration-condition": "dependencies.console and backoffice",
        "parameters": [
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          }
        ],
        "x-source": "apps/rgs/src/console.ts:381"
      }
    },
    "/operator/console/api/reports/liability.csv": {
      "get": {
        "operationId": "get_operator_console_api_reports_liability_csv",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: liability report as CSV",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED, CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED",
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "finance",
        "x-registration-condition": "dependencies.console and backoffice",
        "parameters": [
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          }
        ],
        "x-source": "apps/rgs/src/console.ts:386"
      }
    },
    "/operator/console/api/reports/tax": {
      "get": {
        "operationId": "get_operator_console_api_reports_tax",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: monthly tax report",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_TaxReport"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED, CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED",
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "finance",
        "x-registration-condition": "dependencies.console and backoffice",
        "parameters": [
          {
            "name": "month",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^(19|20)\\d\\d-(0[1-9]|1[0-2])$"
            }
          },
          {
            "name": "market",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{2}(-[A-Z0-9]{1,3})?$"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          }
        ],
        "x-source": "apps/rgs/src/console.ts:308"
      }
    },
    "/operator/console/api/reports/tax.csv": {
      "get": {
        "operationId": "get_operator_console_api_reports_tax_csv",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: monthly tax report as CSV",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED, CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED",
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "finance",
        "x-registration-condition": "dependencies.console and backoffice",
        "parameters": [
          {
            "name": "month",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^(19|20)\\d\\d-(0[1-9]|1[0-2])$"
            }
          },
          {
            "name": "market",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{2}(-[A-Z0-9]{1,3})?$"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          }
        ],
        "x-source": "apps/rgs/src/console.ts:313"
      }
    },
    "/operator/console/api/rounds": {
      "get": {
        "operationId": "get_operator_console_api_rounds",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: search rounds",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "rounds": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/D_BackofficeRoundListItem"
                      }
                    },
                    "nextCursor": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "string"
                        }
                      ]
                    }
                  },
                  "required": [
                    "rounds",
                    "nextCursor"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED, CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED",
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: BACKOFFICE_RESOURCE_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_RESOURCE_NOT_FOUND"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "players",
        "x-registration-condition": "dependencies.console and backoffice",
        "parameters": [
          {
            "name": "externalPlayerId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            }
          },
          {
            "name": "gameCode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9][a-z0-9_-]{1,63}$"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512
            }
          }
        ],
        "x-source": "apps/rgs/src/console.ts:255"
      }
    },
    "/operator/console/api/rounds.csv": {
      "get": {
        "operationId": "get_operator_console_api_rounds_csv",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: rounds as CSV",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED, CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED",
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: BACKOFFICE_RESOURCE_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_RESOURCE_NOT_FOUND"
                      ]
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Not processable. Error codes: BACKOFFICE_EXPORT_TOO_LARGE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_EXPORT_TOO_LARGE"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "players",
        "x-registration-condition": "dependencies.console and backoffice",
        "parameters": [
          {
            "name": "externalPlayerId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            }
          },
          {
            "name": "gameCode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9][a-z0-9_-]{1,63}$"
            }
          }
        ],
        "x-source": "apps/rgs/src/console.ts:260"
      }
    },
    "/operator/console/api/rounds/{roundId}": {
      "get": {
        "operationId": "get_operator_console_api_rounds_roundId",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: one round",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_BackofficeRoundDetail"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED, CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED",
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: BACKOFFICE_RESOURCE_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_RESOURCE_NOT_FOUND"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "players",
        "x-registration-condition": "dependencies.console and backoffice",
        "parameters": [
          {
            "name": "roundId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "x-source": "apps/rgs/src/console.ts:272"
      }
    },
    "/operator/console/api/rounds/{roundId}/replay": {
      "get": {
        "operationId": "get_operator_console_api_rounds_roundId_replay",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: replay and verify a round",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_Record_string_unknown"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED, CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED",
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "players",
        "x-registration-condition": "dependencies.console and backoffice and replayRound",
        "parameters": [
          {
            "name": "roundId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "x-source": "apps/rgs/src/console.ts:279"
      }
    },
    "/operator/console/api/rounds/attention": {
      "get": {
        "operationId": "get_operator_console_api_rounds_attention",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: rounds needing attention and player outliers",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_RoundAttention"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED, CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED",
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "reports",
        "x-registration-condition": "dependencies.console and backoffice",
        "parameters": [
          {
            "name": "olderThanMinutes",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "maximum": 1440
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "created",
                "debit_pending",
                "credit_pending",
                "cancel_pending",
                "manual_review"
              ]
            }
          },
          {
            "name": "outlierWindowMinutes",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1440
            }
          },
          {
            "name": "velocityRounds",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000000
            }
          },
          {
            "name": "winRateMinimumRounds",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000000
            }
          },
          {
            "name": "winRatePercentOfRtp",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 101,
              "maximum": 100000
            }
          }
        ],
        "x-source": "apps/rgs/src/console.ts:352"
      }
    },
    "/operator/console/api/rounds/attention.csv": {
      "get": {
        "operationId": "get_operator_console_api_rounds_attention_csv",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: rounds needing attention as CSV",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED, CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED",
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Not processable. Error codes: BACKOFFICE_EXPORT_TOO_LARGE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_EXPORT_TOO_LARGE"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "players",
        "x-registration-condition": "dependencies.console and backoffice",
        "parameters": [
          {
            "name": "olderThanMinutes",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "maximum": 1440
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "created",
                "debit_pending",
                "credit_pending",
                "cancel_pending",
                "manual_review"
              ]
            }
          },
          {
            "name": "outlierWindowMinutes",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1440
            }
          },
          {
            "name": "velocityRounds",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000000
            }
          },
          {
            "name": "winRateMinimumRounds",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000000
            }
          },
          {
            "name": "winRatePercentOfRtp",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 101,
              "maximum": 100000
            }
          }
        ],
        "x-source": "apps/rgs/src/console.ts:344"
      }
    },
    "/operator/console/api/rounds/lookup": {
      "get": {
        "operationId": "get_operator_console_api_rounds_lookup",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: find rounds by external round id or wallet transaction id",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_RoundLookup"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED, CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED",
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "players",
        "x-registration-condition": "dependencies.console and backoffice",
        "parameters": [
          {
            "name": "reference",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            }
          }
        ],
        "x-source": "apps/rgs/src/console.ts:267"
      }
    },
    "/operator/console/api/setup": {
      "post": {
        "operationId": "post_operator_console_api_setup",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: complete a user's setup from a setup link",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "operatorCode": {
                      "type": "string"
                    },
                    "username": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "operatorCode",
                    "username"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: CONSOLE_SETUP_INVALID, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_SETUP_INVALID",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONSOLE_UNAVAILABLE, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAVAILABLE",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [],
        "x-auth": "A setup token in the body",
        "x-registration-condition": "dependencies.console",
        "parameters": [
          {
            "name": "x-console-csrf",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "const": "1"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string",
                    "pattern": "^[A-Za-z0-9_-]{43}$"
                  },
                  "password": {
                    "type": "string",
                    "minLength": 12,
                    "maxLength": 1024
                  },
                  "code": {
                    "type": "string",
                    "pattern": "^\\d{6}$"
                  }
                },
                "required": [
                  "token",
                  "password",
                  "code"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/console.ts:208"
      }
    },
    "/operator/console/api/setup/info": {
      "post": {
        "operationId": "post_operator_console_api_setup_info",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: what a setup link is for",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "operatorCode": {
                      "type": "string"
                    },
                    "username": {
                      "type": "string"
                    },
                    "role": {
                      "type": "string",
                      "enum": [
                        "finance",
                        "viewer",
                        "support",
                        "admin"
                      ]
                    },
                    "totpSecret": {
                      "type": "string"
                    },
                    "otpauthUri": {
                      "type": "string"
                    },
                    "qr": {
                      "type": "object",
                      "properties": {
                        "size": {
                          "type": "number"
                        },
                        "path": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "size",
                        "path"
                      ]
                    }
                  },
                  "required": [
                    "operatorCode",
                    "username",
                    "role",
                    "totpSecret",
                    "otpauthUri",
                    "qr"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: CONSOLE_SETUP_INVALID, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_SETUP_INVALID",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONSOLE_UNAVAILABLE, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAVAILABLE",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [],
        "x-auth": "A setup token in the body",
        "x-registration-condition": "dependencies.console",
        "parameters": [
          {
            "name": "x-console-csrf",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "const": "1"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "token": {
                    "type": "string",
                    "pattern": "^[A-Za-z0-9_-]{43}$"
                  }
                },
                "required": [
                  "token"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/console.ts:202"
      }
    },
    "/operator/console/api/tournaments/{tournamentId}/standings": {
      "get": {
        "operationId": "get_operator_console_api_tournaments_tournamentId_standings",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: tournament standings (player ids masked without the players permission)",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_TournamentStandings"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED, CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED",
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: BACKOFFICE_RESOURCE_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_RESOURCE_NOT_FOUND"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "liveops",
        "x-registration-condition": "dependencies.console and backoffice",
        "parameters": [
          {
            "name": "tournamentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "x-source": "apps/rgs/src/console.ts:359"
      }
    },
    "/operator/console/api/users": {
      "get": {
        "operationId": "get_operator_console_api_users",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: list console users",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/D_ConsoleUserView"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request; endpoint validation and exact representation rules apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "users",
        "x-registration-condition": "dependencies.console",
        "x-source": "apps/rgs/src/console.ts:482"
      },
      "post": {
        "operationId": "post_operator_console_api_users",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: create a console user (two people where required)",
        "responses": {
          "201": {
            "description": "Created.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "userId": {
                      "type": "string"
                    },
                    "username": {
                      "type": "string"
                    },
                    "role": {
                      "type": "string",
                      "enum": [
                        "finance",
                        "viewer",
                        "support",
                        "admin"
                      ]
                    },
                    "setupToken": {
                      "type": "string"
                    },
                    "setupExpiresAt": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "userId",
                    "username",
                    "role",
                    "setupToken",
                    "setupExpiresAt"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: CONSOLE_SETUP_INVALID, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_SETUP_INVALID",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED, OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: CONSOLE_USER_EXISTS, TWO_PERSON_REQUIRED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_USER_EXISTS",
                        "TWO_PERSON_REQUIRED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "users",
        "x-registration-condition": "dependencies.console",
        "parameters": [
          {
            "name": "x-console-csrf",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "const": "1"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "username": {
                    "type": "string",
                    "pattern": "^[a-z0-9][a-z0-9._@-]{2,127}$"
                  },
                  "role": {
                    "type": "string",
                    "enum": [
                      "viewer",
                      "support",
                      "finance",
                      "admin"
                    ]
                  }
                },
                "required": [
                  "username",
                  "role"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/console.ts:484"
      }
    },
    "/operator/console/api/users.csv": {
      "get": {
        "operationId": "get_operator_console_api_users_csv",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: console users as CSV",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request; endpoint validation and exact representation rules apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "users",
        "x-registration-condition": "dependencies.console",
        "x-source": "apps/rgs/src/console.ts:492"
      }
    },
    "/operator/console/api/users/{userId}/disable": {
      "post": {
        "operationId": "post_operator_console_api_users_userId_disable",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: disable a user",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "user": {
                      "$ref": "#/components/schemas/D_ConsoleUserView"
                    },
                    "setupToken": {
                      "type": "string"
                    },
                    "setupExpiresAt": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "user"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: CONSOLE_SETUP_INVALID, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_SETUP_INVALID",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED, OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: CONSOLE_USER_EXISTS, TWO_PERSON_REQUIRED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_USER_EXISTS",
                        "TWO_PERSON_REQUIRED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "users",
        "x-registration-condition": "dependencies.console",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "x-console-csrf",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "const": "1"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/console.ts:507"
      }
    },
    "/operator/console/api/users/{userId}/reset": {
      "post": {
        "operationId": "post_operator_console_api_users_userId_reset",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: reset a user; issues a new setup link (two people where required)",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "user": {
                      "$ref": "#/components/schemas/D_ConsoleUserView"
                    },
                    "setupToken": {
                      "type": "string"
                    },
                    "setupExpiresAt": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "user"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: CONSOLE_SETUP_INVALID, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_SETUP_INVALID",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED, OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: CONSOLE_USER_EXISTS, TWO_PERSON_REQUIRED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_USER_EXISTS",
                        "TWO_PERSON_REQUIRED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "users",
        "x-registration-condition": "dependencies.console",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "x-console-csrf",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "const": "1"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/console.ts:507"
      }
    },
    "/operator/console/api/users/{userId}/role": {
      "post": {
        "operationId": "post_operator_console_api_users_userId_role",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: change a user's role (two people where required)",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "user": {
                      "$ref": "#/components/schemas/D_ConsoleUserView"
                    },
                    "setupToken": {
                      "type": "string"
                    },
                    "setupExpiresAt": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "user"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: CONSOLE_SETUP_INVALID, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_SETUP_INVALID",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED, OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: CONSOLE_USER_EXISTS, TWO_PERSON_REQUIRED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_USER_EXISTS",
                        "TWO_PERSON_REQUIRED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "users",
        "x-registration-condition": "dependencies.console",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "x-console-csrf",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "const": "1"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "role": {
                    "type": "string",
                    "enum": [
                      "viewer",
                      "support",
                      "finance",
                      "admin"
                    ]
                  }
                },
                "required": [
                  "role"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/console.ts:499"
      }
    },
    "/operator/console/api/users/{userId}/sign-out": {
      "post": {
        "operationId": "post_operator_console_api_users_userId_sign_out",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: sign a user out everywhere",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "user": {
                      "$ref": "#/components/schemas/D_ConsoleUserView"
                    },
                    "setupToken": {
                      "type": "string"
                    },
                    "setupExpiresAt": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "user"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: CONSOLE_SETUP_INVALID, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_SETUP_INVALID",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED, OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: CONSOLE_USER_EXISTS, TWO_PERSON_REQUIRED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_USER_EXISTS",
                        "TWO_PERSON_REQUIRED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "users",
        "x-registration-condition": "dependencies.console",
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "x-console-csrf",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "const": "1"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/console.ts:507"
      }
    },
    "/operator/console/api/wallet-verifications": {
      "get": {
        "operationId": "get_operator_console_api_wallet_verifications",
        "tags": [
          "Operator console"
        ],
        "summary": "Wallet verifier: recent runs",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/D_WalletVerificationRun"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: CONSOLE_DISABLED, CONSOLE_FORBIDDEN, WALLET_VERIFIER_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN",
                        "WALLET_VERIFIER_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: WALLET_VERIFIER_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "WALLET_VERIFIER_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, WALLET_VERIFIER_STOPPED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "WALLET_VERIFIER_STOPPED"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "verifier",
        "x-registration-condition": "dependencies.console and walletVerifier",
        "x-source": "apps/rgs/src/console.ts:462"
      },
      "post": {
        "operationId": "post_operator_console_api_wallet_verifications",
        "tags": [
          "Operator console"
        ],
        "summary": "Wallet verifier: run a small, net-zero check through the real wallet path",
        "responses": {
          "201": {
            "description": "Created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_WalletVerificationRun"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: CONSOLE_DISABLED, CONSOLE_FORBIDDEN, WALLET_VERIFIER_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN",
                        "WALLET_VERIFIER_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: WALLET_VERIFIER_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "WALLET_VERIFIER_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, WALLET_VERIFIER_STOPPED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "WALLET_VERIFIER_STOPPED"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "verifier",
        "x-registration-condition": "dependencies.console and walletVerifier",
        "parameters": [
          {
            "name": "x-console-csrf",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "const": "1"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "playerId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256
                  },
                  "currency": {
                    "type": "string",
                    "pattern": "^[A-Z]{3}$"
                  },
                  "amount": {
                    "default": 1,
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1000
                  },
                  "confirm": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256
                  }
                },
                "required": [
                  "playerId",
                  "currency",
                  "confirm"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/console.ts:474"
      }
    },
    "/operator/console/api/wallet-verifications/attention": {
      "get": {
        "operationId": "get_operator_console_api_wallet_verifications_attention",
        "tags": [
          "Operator console"
        ],
        "summary": "Wallet verifier: runs needing attention",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/D_WalletVerificationAttempt"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: CONSOLE_DISABLED, CONSOLE_FORBIDDEN, WALLET_VERIFIER_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN",
                        "WALLET_VERIFIER_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: WALLET_VERIFIER_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "WALLET_VERIFIER_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, WALLET_VERIFIER_STOPPED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "WALLET_VERIFIER_STOPPED"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "verifier",
        "x-registration-condition": "dependencies.console and walletVerifier",
        "x-source": "apps/rgs/src/console.ts:468"
      }
    },
    "/operator/console/api/wins": {
      "get": {
        "operationId": "get_operator_console_api_wins",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: large wins (player ids masked without the players permission)",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_LargeWins"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: CONSOLE_UNAUTHENTICATED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_UNAUTHENTICATED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED, CONSOLE_DISABLED, CONSOLE_FORBIDDEN.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED",
                        "CONSOLE_DISABLED",
                        "CONSOLE_FORBIDDEN"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "ConsoleSession": []
          }
        ],
        "x-console-permission": "reports",
        "x-registration-condition": "dependencies.console and backoffice",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          },
          {
            "name": "minMultiplier",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 1000000
            }
          }
        ],
        "x-source": "apps/rgs/src/console.ts:232"
      }
    },
    "/operator/console/assets/console.css": {
      "get": {
        "operationId": "get_operator_console_assets_console_css",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: style sheet",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "text/css": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request; endpoint validation and exact representation rules apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          }
        },
        "security": [],
        "x-auth": "None",
        "x-registration-condition": "dependencies.console",
        "x-source": "apps/rgs/src/console.ts:126"
      }
    },
    "/operator/console/assets/console.js": {
      "get": {
        "operationId": "get_operator_console_assets_console_js",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: application script",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "text/javascript": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request; endpoint validation and exact representation rules apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          }
        },
        "security": [],
        "x-auth": "None",
        "x-registration-condition": "dependencies.console",
        "x-source": "apps/rgs/src/console.ts:124"
      }
    },
    "/operator/console/setup": {
      "get": {
        "operationId": "get_operator_console_setup",
        "tags": [
          "Operator console"
        ],
        "summary": "Console: the setup page (same application)",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request; endpoint validation and exact representation rules apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          }
        },
        "security": [],
        "x-auth": "None",
        "x-registration-condition": "dependencies.console",
        "x-source": "apps/rgs/src/console.ts:123"
      }
    },
    "/operator/v1/backoffice/activity": {
      "get": {
        "operationId": "get_operator_v1_backoffice_activity",
        "tags": [
          "Back office"
        ],
        "summary": "Back office: action log ('keys' scope)",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_ActivityLog"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "keys",
        "x-registration-condition": "operatorAuth and backofficeService",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "kind",
            "in": "query",
            "required": false,
            "schema": {
              "default": "changes",
              "type": "string",
              "enum": [
                "changes",
                "all"
              ]
            }
          },
          {
            "name": "actor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            }
          },
          {
            "name": "action",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[a-z][a-z_.]{0,63}$"
            }
          },
          {
            "name": "before",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\.\\d{6}Z\\|[1-9][0-9]{0,18}$"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "default": 100,
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1193"
      }
    },
    "/operator/v1/backoffice/activity.csv": {
      "get": {
        "operationId": "get_operator_v1_backoffice_activity_csv",
        "tags": [
          "Back office"
        ],
        "summary": "Back office: action log as CSV ('keys' scope)",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Not processable. Error codes: BACKOFFICE_EXPORT_TOO_LARGE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_EXPORT_TOO_LARGE"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "keys",
        "x-registration-condition": "operatorAuth and backofficeService",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "kind",
            "in": "query",
            "required": false,
            "schema": {
              "default": "changes",
              "type": "string",
              "enum": [
                "changes",
                "all"
              ]
            }
          },
          {
            "name": "actor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            }
          },
          {
            "name": "action",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[a-z][a-z_.]{0,63}$"
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1198"
      }
    },
    "/operator/v1/backoffice/alerts": {
      "get": {
        "operationId": "get_operator_v1_backoffice_alerts",
        "tags": [
          "Back office"
        ],
        "summary": "Back office: alerts",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_BackofficeAlerts"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reports",
        "x-registration-condition": "operatorAuth and backofficeService",
        "parameters": [
          {
            "name": "stuckAfterMinutes",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "maximum": 1440
            }
          },
          {
            "name": "largeWinMultiplier",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 1000000
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1068"
      }
    },
    "/operator/v1/backoffice/fx/rates": {
      "get": {
        "operationId": "get_operator_v1_backoffice_fx_rates",
        "tags": [
          "Back office"
        ],
        "summary": "Back office: FX source freshness, active observations and quarantined candidates",
        "description": "Read-only source status. Rates are reference values for reporting; they do not convert a wallet balance or execute an exchange. Approving a quarantined observation requires the environment-guarded owner command and a recorded reason.",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "baseCurrency": {
                      "type": "string"
                    },
                    "purpose": {
                      "type": "string"
                    },
                    "rates": {
                      "type": "array",
                      "items": {}
                    }
                  },
                  "required": [
                    "baseCurrency",
                    "purpose",
                    "rates"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request; endpoint validation and exact representation rules apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reports",
        "x-registration-condition": "operatorAuth and backofficeService",
        "x-source": "apps/rgs/src/app.ts:1160"
      }
    },
    "/operator/v1/backoffice/liveops": {
      "get": {
        "operationId": "get_operator_v1_backoffice_liveops",
        "tags": [
          "Back office"
        ],
        "summary": "Back office: LiveOps report",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_LiveOpsReport"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reports",
        "x-registration-condition": "operatorAuth and backofficeService",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1221"
      }
    },
    "/operator/v1/backoffice/liveops.csv": {
      "get": {
        "operationId": "get_operator_v1_backoffice_liveops_csv",
        "tags": [
          "Back office"
        ],
        "summary": "Back office: LiveOps report as CSV",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reports",
        "x-registration-condition": "operatorAuth and backofficeService",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1212"
      }
    },
    "/operator/v1/backoffice/markets": {
      "get": {
        "operationId": "get_operator_v1_backoffice_markets",
        "tags": [
          "Back office"
        ],
        "summary": "Back office: market profiles",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "profiles": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/D_MarketProfile"
                      }
                    }
                  },
                  "required": [
                    "profiles"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reports",
        "x-registration-condition": "operatorAuth and backofficeService",
        "x-source": "apps/rgs/src/app.ts:1063"
      }
    },
    "/operator/v1/backoffice/players": {
      "get": {
        "operationId": "get_operator_v1_backoffice_players",
        "tags": [
          "Back office"
        ],
        "summary": "Back office: look up a player by external id",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_BackofficePlayer"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: BACKOFFICE_RESOURCE_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_RESOURCE_NOT_FOUND"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reports",
        "x-registration-condition": "operatorAuth and backofficeService",
        "parameters": [
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          },
          {
            "name": "externalPlayerId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1058"
      }
    },
    "/operator/v1/backoffice/players/activity": {
      "get": {
        "operationId": "get_operator_v1_backoffice_players_activity",
        "tags": [
          "Back office"
        ],
        "summary": "Back office: a player's activity",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_PlayerActivity"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: BACKOFFICE_RESOURCE_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_RESOURCE_NOT_FOUND"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reports",
        "x-registration-condition": "operatorAuth and backofficeService",
        "parameters": [
          {
            "name": "externalPlayerId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1090"
      }
    },
    "/operator/v1/backoffice/players/data": {
      "get": {
        "operationId": "get_operator_v1_backoffice_players_data",
        "tags": [
          "Back office"
        ],
        "summary": "Back office: a player's data (data protection access)",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_PlayerDataExport"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED, DATA_PROTECTION_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED",
                        "DATA_PROTECTION_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: BACKOFFICE_RESOURCE_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_RESOURCE_NOT_FOUND"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reports",
        "x-registration-condition": "operatorAuth and backofficeService",
        "parameters": [
          {
            "name": "externalPlayerId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1078"
      }
    },
    "/operator/v1/backoffice/players/erase": {
      "post": {
        "operationId": "post_operator_v1_backoffice_players_erase",
        "tags": [
          "Back office"
        ],
        "summary": "Back office: erase a player by pseudonymisation (GDPR art. 17)",
        "description": "One owner key, or a player.erase change where two people are required. Money records are kept.",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_PlayerErasure"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED, DATA_PROTECTION_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED",
                        "DATA_PROTECTION_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: BACKOFFICE_RESOURCE_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_RESOURCE_NOT_FOUND"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: PLAYER_ERASURE_REFUSED, TWO_PERSON_REQUIRED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "PLAYER_ERASURE_REFUSED",
                        "TWO_PERSON_REQUIRED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "*",
        "x-registration-condition": "operatorAuth and backofficeService",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "accountId": {
                    "type": "string",
                    "format": "uuid"
                  }
                },
                "required": [
                  "accountId"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:1084"
      }
    },
    "/operator/v1/backoffice/players/wins": {
      "get": {
        "operationId": "get_operator_v1_backoffice_players_wins",
        "tags": [
          "Back office"
        ],
        "summary": "Back office: a player's wins",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_PlayerWins"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: BACKOFFICE_RESOURCE_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_RESOURCE_NOT_FOUND"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reports",
        "x-registration-condition": "operatorAuth and backofficeService",
        "parameters": [
          {
            "name": "externalPlayerId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1095"
      }
    },
    "/operator/v1/backoffice/reports/cohorts": {
      "get": {
        "operationId": "get_operator_v1_backoffice_reports_cohorts",
        "tags": [
          "Back office"
        ],
        "summary": "Back office: cohort report",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_CohortReport"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_COHORTS_DISABLED, BACKOFFICE_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_COHORTS_DISABLED",
                        "BACKOFFICE_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reports",
        "x-registration-condition": "operatorAuth and backofficeService",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1164"
      }
    },
    "/operator/v1/backoffice/reports/cohorts.csv": {
      "get": {
        "operationId": "get_operator_v1_backoffice_reports_cohorts_csv",
        "tags": [
          "Back office"
        ],
        "summary": "Back office: cohort report as CSV",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_COHORTS_DISABLED, BACKOFFICE_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_COHORTS_DISABLED",
                        "BACKOFFICE_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reports",
        "x-registration-condition": "operatorAuth and backofficeService",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1169"
      }
    },
    "/operator/v1/backoffice/reports/daily": {
      "get": {
        "operationId": "get_operator_v1_backoffice_reports_daily",
        "tags": [
          "Back office"
        ],
        "summary": "Back office: daily report",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_DailyReport"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reports",
        "x-registration-condition": "operatorAuth and backofficeService",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          },
          {
            "name": "gameCode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9][a-z0-9_-]{1,63}$"
            }
          },
          {
            "name": "groupBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "day",
                "game",
                "market"
              ]
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1149"
      }
    },
    "/operator/v1/backoffice/reports/daily.csv": {
      "get": {
        "operationId": "get_operator_v1_backoffice_reports_daily_csv",
        "tags": [
          "Back office"
        ],
        "summary": "Back office: daily report as CSV",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reports",
        "x-registration-condition": "operatorAuth and backofficeService",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          },
          {
            "name": "gameCode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9][a-z0-9_-]{1,63}$"
            }
          },
          {
            "name": "groupBy",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "day",
                "game",
                "market"
              ]
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1249"
      }
    },
    "/operator/v1/backoffice/reports/fx": {
      "get": {
        "operationId": "get_operator_v1_backoffice_reports_fx",
        "tags": [
          "Back office"
        ],
        "summary": "Back office: historical EUR reporting using each round's pinned reference rate",
        "description": "Native wager, payout and promotional payout totals grouped by currency and immutable rate observation. EUR values are integer strings scaled by 1,000,000, rounded half-even per group. Missing legacy pins are reported as incomplete, never converted at today's rate. Date window is at most 92 days; cancelled rounds are excluded.",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "baseCurrency": {
                      "type": "string"
                    },
                    "precision": {
                      "type": "number"
                    },
                    "complete": {
                      "type": "boolean"
                    },
                    "unconvertedRounds": {
                      "type": "string"
                    },
                    "wagerEurMicros": {
                      "type": "string"
                    },
                    "payoutEurMicros": {
                      "type": "string"
                    },
                    "promoPayoutEurMicros": {
                      "type": "string"
                    },
                    "ggrEurMicros": {
                      "type": "string"
                    },
                    "ngrEurMicros": {
                      "type": "string"
                    },
                    "rows": {
                      "type": "array",
                      "items": {
                        "anyOf": [
                          {
                            "type": "object",
                            "properties": {
                              "wagerEurMicros": {
                                "type": "null"
                              },
                              "payoutEurMicros": {
                                "type": "null"
                              },
                              "promoPayoutEurMicros": {
                                "type": "null"
                              },
                              "ggrEurMicros": {
                                "type": "null"
                              },
                              "ngrEurMicros": {
                                "type": "null"
                              },
                              "currency": {
                                "type": "string"
                              },
                              "decimals": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ]
                              },
                              "observation_id": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "provider": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "source_date": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "numerator": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "denominator": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "rounds": {
                                "type": "string"
                              },
                              "wager": {
                                "type": "string"
                              },
                              "payout": {
                                "type": "string"
                              },
                              "promo_payout": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "wagerEurMicros",
                              "payoutEurMicros",
                              "promoPayoutEurMicros",
                              "ggrEurMicros",
                              "ngrEurMicros",
                              "currency",
                              "decimals",
                              "observation_id",
                              "provider",
                              "source_date",
                              "numerator",
                              "denominator",
                              "rounds",
                              "wager",
                              "payout",
                              "promo_payout"
                            ]
                          },
                          {
                            "type": "object",
                            "properties": {
                              "wagerEurMicros": {
                                "type": "string"
                              },
                              "payoutEurMicros": {
                                "type": "string"
                              },
                              "promoPayoutEurMicros": {
                                "type": "string"
                              },
                              "ggrEurMicros": {
                                "type": "string"
                              },
                              "ngrEurMicros": {
                                "type": "string"
                              },
                              "currency": {
                                "type": "string"
                              },
                              "decimals": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "number"
                                  }
                                ]
                              },
                              "observation_id": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "provider": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "source_date": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "numerator": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "denominator": {
                                "anyOf": [
                                  {
                                    "type": "null"
                                  },
                                  {
                                    "type": "string"
                                  }
                                ]
                              },
                              "rounds": {
                                "type": "string"
                              },
                              "wager": {
                                "type": "string"
                              },
                              "payout": {
                                "type": "string"
                              },
                              "promo_payout": {
                                "type": "string"
                              }
                            },
                            "required": [
                              "wagerEurMicros",
                              "payoutEurMicros",
                              "promoPayoutEurMicros",
                              "ggrEurMicros",
                              "ngrEurMicros",
                              "currency",
                              "decimals",
                              "observation_id",
                              "provider",
                              "source_date",
                              "numerator",
                              "denominator",
                              "rounds",
                              "wager",
                              "payout",
                              "promo_payout"
                            ]
                          }
                        ]
                      }
                    },
                    "from": {
                      "type": "string"
                    },
                    "to": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "baseCurrency",
                    "precision",
                    "complete",
                    "unconvertedRounds",
                    "wagerEurMicros",
                    "payoutEurMicros",
                    "promoPayoutEurMicros",
                    "ggrEurMicros",
                    "ngrEurMicros",
                    "rows",
                    "from",
                    "to"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reports",
        "x-registration-condition": "operatorAuth and backofficeService",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          },
          {
            "name": "gameCode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9][a-z0-9_-]{1,63}$"
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1154"
      }
    },
    "/operator/v1/backoffice/reports/liability": {
      "get": {
        "operationId": "get_operator_v1_backoffice_reports_liability",
        "tags": [
          "Back office"
        ],
        "summary": "Back office: liability report",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_LiabilityReport"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reports",
        "x-registration-condition": "operatorAuth and backofficeService",
        "parameters": [
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1226"
      }
    },
    "/operator/v1/backoffice/reports/liability.csv": {
      "get": {
        "operationId": "get_operator_v1_backoffice_reports_liability_csv",
        "tags": [
          "Back office"
        ],
        "summary": "Back office: liability report as CSV",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reports",
        "x-registration-condition": "operatorAuth and backofficeService",
        "parameters": [
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1180"
      }
    },
    "/operator/v1/backoffice/reports/tax": {
      "get": {
        "operationId": "get_operator_v1_backoffice_reports_tax",
        "tags": [
          "Back office"
        ],
        "summary": "Back office: monthly tax report",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_TaxReport"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reports",
        "x-registration-condition": "operatorAuth and backofficeService",
        "parameters": [
          {
            "name": "month",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^(19|20)\\d\\d-(0[1-9]|1[0-2])$"
            }
          },
          {
            "name": "market",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{2}(-[A-Z0-9]{1,3})?$"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1231"
      }
    },
    "/operator/v1/backoffice/reports/tax.csv": {
      "get": {
        "operationId": "get_operator_v1_backoffice_reports_tax_csv",
        "tags": [
          "Back office"
        ],
        "summary": "Back office: monthly tax report as CSV",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reports",
        "x-registration-condition": "operatorAuth and backofficeService",
        "parameters": [
          {
            "name": "month",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^(19|20)\\d\\d-(0[1-9]|1[0-2])$"
            }
          },
          {
            "name": "market",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{2}(-[A-Z0-9]{1,3})?$"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1236"
      }
    },
    "/operator/v1/backoffice/rounds": {
      "get": {
        "operationId": "get_operator_v1_backoffice_rounds",
        "tags": [
          "Back office"
        ],
        "summary": "Back office: search rounds",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "rounds": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/D_BackofficeRoundListItem"
                      }
                    },
                    "nextCursor": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "string"
                        }
                      ]
                    }
                  },
                  "required": [
                    "rounds",
                    "nextCursor"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: BACKOFFICE_RESOURCE_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_RESOURCE_NOT_FOUND"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reports",
        "x-registration-condition": "operatorAuth and backofficeService",
        "parameters": [
          {
            "name": "externalPlayerId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            }
          },
          {
            "name": "gameCode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9][a-z0-9_-]{1,63}$"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 200
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1100"
      }
    },
    "/operator/v1/backoffice/rounds.csv": {
      "get": {
        "operationId": "get_operator_v1_backoffice_rounds_csv",
        "tags": [
          "Back office"
        ],
        "summary": "Back office: rounds as CSV",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: BACKOFFICE_RESOURCE_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_RESOURCE_NOT_FOUND"
                      ]
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Not processable. Error codes: BACKOFFICE_EXPORT_TOO_LARGE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_EXPORT_TOO_LARGE"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reports",
        "x-registration-condition": "operatorAuth and backofficeService",
        "parameters": [
          {
            "name": "externalPlayerId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          },
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            }
          },
          {
            "name": "gameCode",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9][a-z0-9_-]{1,63}$"
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1105"
      }
    },
    "/operator/v1/backoffice/rounds/{roundId}": {
      "get": {
        "operationId": "get_operator_v1_backoffice_rounds_roundId",
        "tags": [
          "Back office"
        ],
        "summary": "Back office: one round",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_BackofficeRoundDetail"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: BACKOFFICE_RESOURCE_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_RESOURCE_NOT_FOUND"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reports",
        "x-registration-condition": "operatorAuth and backofficeService",
        "parameters": [
          {
            "name": "roundId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1134"
      }
    },
    "/operator/v1/backoffice/rounds/{roundId}/replay": {
      "get": {
        "operationId": "get_operator_v1_backoffice_rounds_roundId_replay",
        "tags": [
          "Back office"
        ],
        "summary": "Back office: replay and verify a round",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_Record_string_unknown"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED, WAGER_NOT_ALLOWED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED",
                        "WAGER_NOT_ALLOWED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: ROUND_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "ROUND_NOT_FOUND"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: JACKPOT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "JACKPOT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reports",
        "x-registration-condition": "operatorAuth and backofficeService and dependencies.rounds",
        "parameters": [
          {
            "name": "roundId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1141"
      }
    },
    "/operator/v1/backoffice/rounds/attention": {
      "get": {
        "operationId": "get_operator_v1_backoffice_rounds_attention",
        "tags": [
          "Back office"
        ],
        "summary": "Back office: rounds needing attention and player outliers",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_RoundAttention"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reports",
        "x-registration-condition": "operatorAuth and backofficeService",
        "parameters": [
          {
            "name": "olderThanMinutes",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "maximum": 1440
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "created",
                "debit_pending",
                "credit_pending",
                "cancel_pending",
                "manual_review"
              ]
            }
          },
          {
            "name": "outlierWindowMinutes",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1440
            }
          },
          {
            "name": "velocityRounds",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000000
            }
          },
          {
            "name": "winRateMinimumRounds",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000000
            }
          },
          {
            "name": "winRatePercentOfRtp",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 101,
              "maximum": 100000
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1124"
      }
    },
    "/operator/v1/backoffice/rounds/attention.csv": {
      "get": {
        "operationId": "get_operator_v1_backoffice_rounds_attention_csv",
        "tags": [
          "Back office"
        ],
        "summary": "Back office: rounds needing attention as CSV",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "text/csv": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "422": {
            "description": "Not processable. Error codes: BACKOFFICE_EXPORT_TOO_LARGE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_EXPORT_TOO_LARGE"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reports",
        "x-registration-condition": "operatorAuth and backofficeService",
        "parameters": [
          {
            "name": "olderThanMinutes",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "maximum": 1440
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "created",
                "debit_pending",
                "credit_pending",
                "cancel_pending",
                "manual_review"
              ]
            }
          },
          {
            "name": "outlierWindowMinutes",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1440
            }
          },
          {
            "name": "velocityRounds",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000000
            }
          },
          {
            "name": "winRateMinimumRounds",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 1000000
            }
          },
          {
            "name": "winRatePercentOfRtp",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 101,
              "maximum": 100000
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1116"
      }
    },
    "/operator/v1/backoffice/rounds/lookup": {
      "get": {
        "operationId": "get_operator_v1_backoffice_rounds_lookup",
        "tags": [
          "Back office"
        ],
        "summary": "Back office: find rounds by external round id or wallet transaction id",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_RoundLookup"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reports",
        "x-registration-condition": "operatorAuth and backofficeService",
        "parameters": [
          {
            "name": "reference",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 256
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1129"
      }
    },
    "/operator/v1/backoffice/tournaments/{tournamentId}/standings": {
      "get": {
        "operationId": "get_operator_v1_backoffice_tournaments_tournamentId_standings",
        "tags": [
          "Back office"
        ],
        "summary": "Back office: tournament standings",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_TournamentStandings"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: BACKOFFICE_RESOURCE_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_RESOURCE_NOT_FOUND"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reports",
        "x-registration-condition": "operatorAuth and backofficeService",
        "parameters": [
          {
            "name": "tournamentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1207"
      }
    },
    "/operator/v1/backoffice/wallet-verifications": {
      "get": {
        "operationId": "get_operator_v1_backoffice_wallet_verifications",
        "tags": [
          "Back office"
        ],
        "summary": "Wallet verifier: recent runs",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/D_WalletVerificationRun"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: WALLET_VERIFIER_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "WALLET_VERIFIER_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: WALLET_VERIFIER_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "WALLET_VERIFIER_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE, WALLET_VERIFIER_STOPPED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE",
                        "WALLET_VERIFIER_STOPPED"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "verifier",
        "x-registration-condition": "operatorAuth and dependencies.walletVerifier",
        "x-source": "apps/rgs/src/app.ts:1316"
      },
      "post": {
        "operationId": "post_operator_v1_backoffice_wallet_verifications",
        "tags": [
          "Back office"
        ],
        "summary": "Wallet verifier: run a small, net-zero check through the real wallet path",
        "responses": {
          "201": {
            "description": "Created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_WalletVerificationRun"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: WALLET_VERIFIER_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "WALLET_VERIFIER_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: WALLET_VERIFIER_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "WALLET_VERIFIER_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE, WALLET_VERIFIER_STOPPED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE",
                        "WALLET_VERIFIER_STOPPED"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "verifier",
        "x-registration-condition": "operatorAuth and dependencies.walletVerifier",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "playerId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256
                  },
                  "currency": {
                    "type": "string",
                    "pattern": "^[A-Z]{3}$"
                  },
                  "amount": {
                    "default": 1,
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 1000
                  },
                  "confirm": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256
                  }
                },
                "required": [
                  "playerId",
                  "currency",
                  "confirm"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:1311"
      }
    },
    "/operator/v1/backoffice/wallet-verifications/attention": {
      "get": {
        "operationId": "get_operator_v1_backoffice_wallet_verifications_attention",
        "tags": [
          "Back office"
        ],
        "summary": "Wallet verifier: runs needing attention",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/D_WalletVerificationAttempt"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: WALLET_VERIFIER_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "WALLET_VERIFIER_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: WALLET_VERIFIER_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "WALLET_VERIFIER_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE, WALLET_VERIFIER_STOPPED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE",
                        "WALLET_VERIFIER_STOPPED"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "verifier",
        "x-registration-condition": "operatorAuth and dependencies.walletVerifier",
        "x-source": "apps/rgs/src/app.ts:1321"
      }
    },
    "/operator/v1/backoffice/wins": {
      "get": {
        "operationId": "get_operator_v1_backoffice_wins",
        "tags": [
          "Back office"
        ],
        "summary": "Back office: large wins",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_LargeWins"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_BACKOFFICE_QUERY, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_BACKOFFICE_QUERY",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reports",
        "x-registration-condition": "operatorAuth and backofficeService",
        "parameters": [
          {
            "name": "from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "to",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          },
          {
            "name": "minMultiplier",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 100,
              "maximum": 1000000
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1073"
      }
    },
    "/operator/v1/changes": {
      "get": {
        "operationId": "get_operator_v1_changes",
        "tags": [
          "Two-person changes"
        ],
        "summary": "List two-person change requests in one scope (console user changes are not listed here)",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/D_OperatorChangeView"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "campaigns",
        "x-registration-condition": "operatorAuth",
        "parameters": [
          {
            "name": "scope",
            "in": "query",
            "required": false,
            "schema": {
              "default": "campaigns",
              "type": "string",
              "enum": [
                "campaigns",
                "wallet",
                "wallet-admin",
                "keys",
                "games",
                "players",
                "reconciliation"
              ]
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:847"
      },
      "post": {
        "operationId": "post_operator_v1_changes",
        "tags": [
          "Two-person changes"
        ],
        "summary": "Propose a two-person change; a different enrolled person approves it",
        "description": "The key needs the action's change scope (operator-changes.ts changeScope): campaigns, wallet (custodial adjustment), wallet-admin (wallet configuration and external operations), keys or games; player.erase needs an owner key. These actions pass validation but are always refused here with 403 CHANGE_REFUSED (console user changes are made in the console): console.user.create, console.user.reset, console.user.role.",
        "responses": {
          "201": {
            "description": "Created.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "termsSha256": {
                      "type": "string"
                    },
                    "expiresAt": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "termsSha256",
                    "expiresAt"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: CHANGE_REFUSED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CHANGE_REFUSED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: CHANGE_REFUSED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CHANGE_REFUSED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "*",
        "x-registration-condition": "operatorAuth",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "free-rounds.create"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "code": {
                            "type": "string",
                            "pattern": "^[a-z0-9][a-z0-9._-]{0,63}$"
                          },
                          "gameVersionId": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "currency": {
                            "type": "string",
                            "pattern": "^[A-Z]{3}$"
                          },
                          "amount": {
                            "type": "integer",
                            "exclusiveMinimum": 0,
                            "maximum": 9007199254740991
                          },
                          "payoutCategory": {
                            "type": "string",
                            "enum": [
                              "promo",
                              "normal"
                            ]
                          },
                          "budgetMinor": {
                            "type": "string",
                            "pattern": "^[1-9][0-9]{0,15}$"
                          },
                          "startsAt": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "endsAt": {
                            "type": "string",
                            "format": "date-time"
                          }
                        },
                        "required": [
                          "code",
                          "gameVersionId",
                          "currency",
                          "amount",
                          "payoutCategory",
                          "budgetMinor",
                          "startsAt",
                          "endsAt"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "free-rounds.remove"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "campaignId": {
                            "type": "string",
                            "format": "uuid"
                          }
                        },
                        "required": [
                          "campaignId"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "tournament.create"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "code": {
                            "type": "string",
                            "pattern": "^[a-z0-9][a-z0-9._-]{0,63}$"
                          },
                          "currency": {
                            "type": "string",
                            "pattern": "^[A-Z]{3}$"
                          },
                          "gameVersionIds": {
                            "minItems": 1,
                            "maxItems": 64,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "format": "uuid"
                            }
                          },
                          "minimumWagerMinor": {
                            "type": "string",
                            "pattern": "^[1-9][0-9]{0,15}$"
                          },
                          "scoring": {
                            "type": "string",
                            "enum": [
                              "total-win",
                              "wager-volume"
                            ]
                          },
                          "startsAt": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "endsAt": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "prizesMinor": {
                            "minItems": 1,
                            "maxItems": 100,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "pattern": "^[1-9][0-9]{0,15}$"
                            }
                          },
                          "budgetMinor": {
                            "type": "string",
                            "pattern": "^[1-9][0-9]{0,15}$"
                          },
                          "fundingSources": {
                            "minItems": 1,
                            "maxItems": 2,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "cash",
                                "promo"
                              ]
                            }
                          },
                          "tieBreak": {
                            "type": "string",
                            "const": "first-achieved"
                          }
                        },
                        "required": [
                          "code",
                          "currency",
                          "gameVersionIds",
                          "minimumWagerMinor",
                          "scoring",
                          "startsAt",
                          "endsAt",
                          "prizesMinor",
                          "budgetMinor",
                          "fundingSources",
                          "tieBreak"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "tournament.close"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "tournamentId": {
                            "type": "string",
                            "format": "uuid"
                          }
                        },
                        "required": [
                          "tournamentId"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "jackpot.create"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "gameVersionId": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "poolKey": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64
                          },
                          "reserveByTier": {
                            "type": "object",
                            "propertyNames": {
                              "type": "string",
                              "minLength": 1,
                              "maxLength": 64
                            },
                            "additionalProperties": {
                              "type": "string",
                              "pattern": "^(0|[1-9][0-9]{0,15})$"
                            }
                          }
                        },
                        "required": [
                          "gameVersionId",
                          "poolKey",
                          "reserveByTier"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "campaign.create"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "code": {
                            "type": "string",
                            "pattern": "^[a-z0-9][a-z0-9_-]{1,63}$"
                          },
                          "gameCode": {
                            "type": "string",
                            "pattern": "^[a-z0-9][a-z0-9_-]{1,63}$"
                          },
                          "currency": {
                            "type": "string",
                            "pattern": "^[A-Z]{3}$"
                          },
                          "budget": {
                            "type": "integer",
                            "exclusiveMinimum": 0,
                            "maximum": 9007199254740991
                          },
                          "startsAt": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "endsAt": {
                            "type": "string",
                            "format": "date-time"
                          }
                        },
                        "required": [
                          "code",
                          "gameCode",
                          "currency",
                          "budget",
                          "startsAt",
                          "endsAt"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "campaign.status"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "campaignId": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "active",
                              "paused",
                              "ended"
                            ]
                          }
                        },
                        "required": [
                          "campaignId",
                          "status"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "market.profile"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "market": {
                            "type": "string",
                            "pattern": "^[A-Z]{2}(-[A-Z0-9]{1,3})?$"
                          },
                          "taxBasis": {
                            "type": "string",
                            "enum": [
                              "ggr",
                              "ngr",
                              "turnover"
                            ]
                          },
                          "rateBps": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 10000
                          },
                          "freeRoundExempt": {
                            "type": "boolean"
                          },
                          "validFrom": {
                            "type": "string",
                            "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                          }
                        },
                        "required": [
                          "market",
                          "taxBasis",
                          "rateBps",
                          "freeRoundExempt",
                          "validFrom"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "wallet.mode"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "mode": {
                            "type": "string",
                            "enum": [
                              "custodial",
                              "external"
                            ]
                          }
                        },
                        "required": [
                          "mode"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "wallet.connector"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "endpoint": {
                            "type": "string",
                            "maxLength": 2048,
                            "format": "uri"
                          },
                          "responseKeyId": {
                            "type": "string",
                            "pattern": "^[A-Za-z0-9._-]{1,128}$"
                          }
                        },
                        "required": [
                          "endpoint",
                          "responseKeyId"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "wallet.signing-key"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "keyId": {
                            "type": "string",
                            "pattern": "^[A-Za-z0-9._-]{1,128}$"
                          },
                          "publicKeyPem": {
                            "type": "string",
                            "minLength": 64,
                            "maxLength": 4096
                          },
                          "notBefore": {
                            "type": "string",
                            "format": "date-time"
                          },
                          "expiresAt": {
                            "type": "string",
                            "format": "date-time"
                          }
                        },
                        "required": [
                          "keyId",
                          "publicKeyPem"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "api-key.create"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "label": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 128
                          },
                          "scopes": {
                            "minItems": 1,
                            "maxItems": 16,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "enum": [
                                "keys",
                                "launch",
                                "wallet",
                                "wallet-admin",
                                "campaigns",
                                "responsible-gaming",
                                "reconciliation",
                                "games",
                                "disputes",
                                "reports",
                                "verifier"
                              ]
                            }
                          },
                          "ttlSeconds": {
                            "default": 7776000,
                            "type": "integer",
                            "minimum": 300,
                            "maximum": 7776000
                          }
                        },
                        "required": [
                          "label",
                          "scopes"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "game.entitlement"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "gameCode": {
                            "type": "string",
                            "pattern": "^[a-z0-9][a-z0-9_-]{1,63}$"
                          },
                          "enabled": {
                            "type": "boolean"
                          },
                          "currencies": {
                            "minItems": 1,
                            "maxItems": 32,
                            "type": "array",
                            "items": {
                              "type": "string",
                              "pattern": "^[A-Z]{3}$"
                            }
                          }
                        },
                        "required": [
                          "gameCode",
                          "enabled",
                          "currencies"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "jackpot.membership.offer"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "poolId": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "operatorId": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "gameVersionId": {
                            "type": "string",
                            "format": "uuid"
                          }
                        },
                        "required": [
                          "poolId",
                          "operatorId",
                          "gameVersionId"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "jackpot.membership.accept"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "poolId": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "offerId": {
                            "type": "string",
                            "format": "uuid"
                          }
                        },
                        "required": [
                          "poolId",
                          "offerId"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "wallet.operation"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "operationId": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "kind": {
                            "type": "string",
                            "enum": [
                              "debit",
                              "credit",
                              "cancel"
                            ]
                          },
                          "playerId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 256
                          },
                          "currency": {
                            "type": "string",
                            "pattern": "^[A-Z]{3}$"
                          },
                          "amount": {
                            "type": "integer",
                            "exclusiveMinimum": 0,
                            "maximum": 9007199254740991
                          },
                          "originalOperationId": {
                            "type": "string",
                            "format": "uuid"
                          }
                        },
                        "required": [
                          "operationId",
                          "kind",
                          "playerId",
                          "currency"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "wallet.adjust"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "externalPlayerId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 256
                          },
                          "currency": {
                            "type": "string",
                            "pattern": "^[A-Z]{3}$"
                          },
                          "amountMinor": {
                            "type": "string"
                          },
                          "reason": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          },
                          "reference": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 64
                          }
                        },
                        "required": [
                          "externalPlayerId",
                          "currency",
                          "amountMinor",
                          "reason",
                          "reference"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "player.erase"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "accountId": {
                            "type": "string",
                            "format": "uuid"
                          }
                        },
                        "required": [
                          "accountId"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "round.void"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "roundId": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "reason": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 200
                          }
                        },
                        "required": [
                          "roundId",
                          "reason"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "console.user.create"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "username": {
                            "type": "string",
                            "pattern": "^[a-z0-9][a-z0-9._@-]{2,127}$"
                          },
                          "role": {
                            "type": "string",
                            "enum": [
                              "viewer",
                              "support",
                              "finance",
                              "admin"
                            ]
                          }
                        },
                        "required": [
                          "username",
                          "role"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "console.user.role"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "userId": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "role": {
                            "type": "string",
                            "enum": [
                              "viewer",
                              "support",
                              "finance",
                              "admin"
                            ]
                          }
                        },
                        "required": [
                          "userId",
                          "role"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  },
                  {
                    "type": "object",
                    "properties": {
                      "action": {
                        "type": "string",
                        "const": "console.user.reset"
                      },
                      "terms": {
                        "type": "object",
                        "properties": {
                          "userId": {
                            "type": "string",
                            "format": "uuid"
                          }
                        },
                        "required": [
                          "userId"
                        ],
                        "additionalProperties": false
                      },
                      "ttlSeconds": {
                        "default": 3600,
                        "type": "integer",
                        "minimum": 60,
                        "maximum": 86400
                      }
                    },
                    "required": [
                      "action",
                      "terms"
                    ],
                    "additionalProperties": false
                  }
                ]
              }
            }
          }
        },
        "x-refused-actions": [
          "console.user.create",
          "console.user.reset",
          "console.user.role"
        ],
        "x-source": "apps/rgs/src/app.ts:853"
      }
    },
    "/operator/v1/changes/{changeId}/decision": {
      "post": {
        "operationId": "post_operator_v1_changes_changeId_decision",
        "tags": [
          "Two-person changes"
        ],
        "summary": "Approve or reject a change request",
        "description": "confirm is the request's termsSha256; echo is the typed confirmation where the change moves money or cannot be undone. An approved change runs under the approver's key.",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "decision": {
                      "type": "string"
                    },
                    "result": {}
                  },
                  "required": [
                    "decision",
                    "result"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: CHANGE_REFUSED, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CHANGE_REFUSED",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: BACKOFFICE_DISABLED, CHANGE_REFUSED, DATA_PROTECTION_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_DISABLED",
                        "CHANGE_REFUSED",
                        "DATA_PROTECTION_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: BACKOFFICE_RESOURCE_NOT_FOUND, CHANGE_REFUSED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_RESOURCE_NOT_FOUND",
                        "CHANGE_REFUSED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: CHANGE_REFUSED, PLAYER_ERASURE_REFUSED, WALLET_TRANSACTION_CONFLICT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CHANGE_REFUSED",
                        "PLAYER_ERASURE_REFUSED",
                        "WALLET_TRANSACTION_CONFLICT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "422": {
            "description": "Not processable. Error codes: INSUFFICIENT_FUNDS.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INSUFFICIENT_FUNDS"
                      ]
                    }
                  }
                }
              }
            }
          },
          "423": {
            "description": "Locked by responsible gaming. Error codes: RESPONSIBLE_GAMING_LIMIT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RESPONSIBLE_GAMING_LIMIT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: BACKOFFICE_STOPPED, CONTROL_PLANE_BUSY, EXTERNAL_WALLET_UNAVAILABLE, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "BACKOFFICE_STOPPED",
                        "CONTROL_PLANE_BUSY",
                        "EXTERNAL_WALLET_UNAVAILABLE",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "*",
        "x-registration-condition": "operatorAuth",
        "parameters": [
          {
            "name": "changeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "decision": {
                    "type": "string",
                    "enum": [
                      "approved",
                      "rejected"
                    ]
                  },
                  "confirm": {
                    "type": "string",
                    "pattern": "^[0-9a-f]{64}$"
                  },
                  "echo": {
                    "type": "object",
                    "properties": {
                      "amountMinor": {
                        "type": "string",
                        "maxLength": 32
                      },
                      "currency": {
                        "type": "string",
                        "maxLength": 16
                      },
                      "target": {
                        "type": "string",
                        "maxLength": 2048
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "decision",
                  "confirm"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:861"
      }
    },
    "/operator/v1/console/users": {
      "post": {
        "operationId": "post_operator_v1_console_users",
        "tags": [
          "Operator console"
        ],
        "summary": "Bootstrap a console user with a 'keys' operator key",
        "description": "Where two people are required the console's changes add users instead (409 TWO_PERSON_REQUIRED).",
        "responses": {
          "201": {
            "description": "Created.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "userId": {
                      "type": "string"
                    },
                    "username": {
                      "type": "string"
                    },
                    "role": {
                      "type": "string",
                      "enum": [
                        "finance",
                        "viewer",
                        "support",
                        "admin"
                      ]
                    },
                    "setupToken": {
                      "type": "string"
                    },
                    "setupExpiresAt": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "userId",
                    "username",
                    "role",
                    "setupToken",
                    "setupExpiresAt"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: CONSOLE_SETUP_INVALID, INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_SETUP_INVALID",
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: CONSOLE_DISABLED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_DISABLED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: CONSOLE_USER_EXISTS, TWO_PERSON_REQUIRED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONSOLE_USER_EXISTS",
                        "TWO_PERSON_REQUIRED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "keys",
        "x-registration-condition": "dependencies.console",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "username": {
                    "type": "string",
                    "pattern": "^[a-z0-9][a-z0-9._@-]{2,127}$"
                  },
                  "role": {
                    "type": "string",
                    "enum": [
                      "viewer",
                      "support",
                      "finance",
                      "admin"
                    ]
                  }
                },
                "required": [
                  "username",
                  "role"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/console.ts:518"
      }
    },
    "/operator/v1/demo-lobby/admin-activity": {
      "post": {
        "operationId": "post_operator_v1_demo_lobby_admin_activity",
        "tags": [
          "Demo lobby"
        ],
        "summary": "Demo lobby admin: activity search",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {}
                    },
                    {
                      "type": "object",
                      "properties": {
                        "user": {
                          "$ref": "#/components/schemas/D_PublicLobbyUser"
                        },
                        "sessionToken": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "user",
                        "sessionToken"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "user": {
                          "$ref": "#/components/schemas/D_PublicLobbyUser"
                        }
                      },
                      "required": [
                        "user"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "games": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "required": [
                        "games"
                      ]
                    },
                    {
                      "$ref": "#/components/schemas/D_LobbySnapshot"
                    },
                    {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/D_LobbyActivityOverview"
                        },
                        {
                          "$ref": "#/components/schemas/D_LobbyActivityDetail"
                        }
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "changed": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "changed"
                      ]
                    },
                    {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "launchToken": {
                              "type": "string"
                            },
                            "sessionToken": {
                              "not": {}
                            },
                            "balance": {
                              "not": {}
                            },
                            "currency": {
                              "not": {}
                            },
                            "gameId": {
                              "not": {}
                            },
                            "walletMode": {
                              "not": {}
                            },
                            "activeCommandId": {
                              "not": {}
                            },
                            "clientScope": {
                              "not": {}
                            }
                          },
                          "required": [
                            "launchToken"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "sessionToken": {
                              "type": "string"
                            },
                            "balance": {
                              "type": "number"
                            },
                            "currency": {
                              "type": "string"
                            },
                            "gameId": {
                              "type": "string"
                            },
                            "walletMode": {
                              "type": "string"
                            },
                            "activeCommandId": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "string"
                                }
                              ]
                            },
                            "clientScope": {
                              "type": "string"
                            },
                            "launchToken": {
                              "not": {}
                            }
                          },
                          "required": [
                            "sessionToken",
                            "balance",
                            "currency",
                            "gameId",
                            "walletMode",
                            "activeCommandId",
                            "clientScope"
                          ]
                        }
                      ]
                    },
                    {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "$ref": "#/components/schemas/D_Readonly_balance_number_currency_string_refilled_boolean"
                        }
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "context": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "$ref": "#/components/schemas/D_Readonly_account_id_string_game_code_string"
                            }
                          ]
                        }
                      },
                      "required": [
                        "context"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "code": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "string"
                            }
                          ]
                        }
                      },
                      "required": [
                        "code"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "422": {
            "description": "Not processable. Error codes: INSUFFICIENT_FUNDS.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INSUFFICIENT_FUNDS"
                      ]
                    }
                  }
                }
              }
            }
          },
          "423": {
            "description": "Locked by responsible gaming. Error codes: RESPONSIBLE_GAMING_LIMIT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RESPONSIBLE_GAMING_LIMIT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          },
          "default": {
            "description": "Status set by the handler at run time.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "const": "LOBBY_REQUEST_REJECTED"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error",
                    "message"
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "demo-lobby",
        "x-registration-condition": "dependencies.demoLobby",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "sessionToken": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1100
                  },
                  "query": {
                    "type": "object",
                    "properties": {
                      "q": {
                        "type": "string",
                        "maxLength": 32
                      },
                      "player": {
                        "type": "string",
                        "maxLength": 32
                      },
                      "game": {
                        "type": "string",
                        "maxLength": 100
                      },
                      "page": {
                        "anyOf": [
                          {
                            "type": "string",
                            "maxLength": 10
                          },
                          {
                            "type": "integer",
                            "exclusiveMinimum": 0,
                            "maximum": 9007199254740991
                          }
                        ]
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "sessionToken",
                  "query"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/demo-lobby.ts:36"
      }
    },
    "/operator/v1/demo-lobby/admin-change": {
      "post": {
        "operationId": "post_operator_v1_demo_lobby_admin_change",
        "tags": [
          "Demo lobby"
        ],
        "summary": "Demo lobby admin: create or update users, reset passwords, set games and grants",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {}
                    },
                    {
                      "type": "object",
                      "properties": {
                        "user": {
                          "$ref": "#/components/schemas/D_PublicLobbyUser"
                        },
                        "sessionToken": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "user",
                        "sessionToken"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "user": {
                          "$ref": "#/components/schemas/D_PublicLobbyUser"
                        }
                      },
                      "required": [
                        "user"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "games": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "required": [
                        "games"
                      ]
                    },
                    {
                      "$ref": "#/components/schemas/D_LobbySnapshot"
                    },
                    {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/D_LobbyActivityOverview"
                        },
                        {
                          "$ref": "#/components/schemas/D_LobbyActivityDetail"
                        }
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "changed": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "changed"
                      ]
                    },
                    {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "launchToken": {
                              "type": "string"
                            },
                            "sessionToken": {
                              "not": {}
                            },
                            "balance": {
                              "not": {}
                            },
                            "currency": {
                              "not": {}
                            },
                            "gameId": {
                              "not": {}
                            },
                            "walletMode": {
                              "not": {}
                            },
                            "activeCommandId": {
                              "not": {}
                            },
                            "clientScope": {
                              "not": {}
                            }
                          },
                          "required": [
                            "launchToken"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "sessionToken": {
                              "type": "string"
                            },
                            "balance": {
                              "type": "number"
                            },
                            "currency": {
                              "type": "string"
                            },
                            "gameId": {
                              "type": "string"
                            },
                            "walletMode": {
                              "type": "string"
                            },
                            "activeCommandId": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "string"
                                }
                              ]
                            },
                            "clientScope": {
                              "type": "string"
                            },
                            "launchToken": {
                              "not": {}
                            }
                          },
                          "required": [
                            "sessionToken",
                            "balance",
                            "currency",
                            "gameId",
                            "walletMode",
                            "activeCommandId",
                            "clientScope"
                          ]
                        }
                      ]
                    },
                    {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "$ref": "#/components/schemas/D_Readonly_balance_number_currency_string_refilled_boolean"
                        }
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "context": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "$ref": "#/components/schemas/D_Readonly_account_id_string_game_code_string"
                            }
                          ]
                        }
                      },
                      "required": [
                        "context"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "code": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "string"
                            }
                          ]
                        }
                      },
                      "required": [
                        "code"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "422": {
            "description": "Not processable. Error codes: INSUFFICIENT_FUNDS.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INSUFFICIENT_FUNDS"
                      ]
                    }
                  }
                }
              }
            }
          },
          "423": {
            "description": "Locked by responsible gaming. Error codes: RESPONSIBLE_GAMING_LIMIT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RESPONSIBLE_GAMING_LIMIT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          },
          "default": {
            "description": "Status set by the handler at run time.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "const": "LOBBY_REQUEST_REJECTED"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error",
                    "message"
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "demo-lobby",
        "x-registration-condition": "dependencies.demoLobby",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "sessionToken": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1100
                  },
                  "action": {
                    "type": "string",
                    "enum": [
                      "create-user",
                      "update-user",
                      "reset-password",
                      "set-game",
                      "set-grant",
                      "grant-all"
                    ]
                  },
                  "body": {
                    "type": "object",
                    "properties": {
                      "username": {
                        "type": "string",
                        "maxLength": 32
                      },
                      "password": {
                        "type": "string",
                        "maxLength": 256
                      },
                      "role": {
                        "type": "string",
                        "maxLength": 16
                      },
                      "disabled": {
                        "type": "string",
                        "maxLength": 5
                      },
                      "gameCode": {
                        "type": "string",
                        "maxLength": 100
                      },
                      "visibility": {
                        "type": "string",
                        "maxLength": 16
                      },
                      "access": {
                        "type": "string",
                        "maxLength": 16
                      }
                    },
                    "additionalProperties": false
                  }
                },
                "required": [
                  "sessionToken",
                  "action",
                  "body"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/demo-lobby.ts:36"
      }
    },
    "/operator/v1/demo-lobby/admin-snapshot": {
      "post": {
        "operationId": "post_operator_v1_demo_lobby_admin_snapshot",
        "tags": [
          "Demo lobby"
        ],
        "summary": "Demo lobby admin: snapshot",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {}
                    },
                    {
                      "type": "object",
                      "properties": {
                        "user": {
                          "$ref": "#/components/schemas/D_PublicLobbyUser"
                        },
                        "sessionToken": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "user",
                        "sessionToken"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "user": {
                          "$ref": "#/components/schemas/D_PublicLobbyUser"
                        }
                      },
                      "required": [
                        "user"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "games": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "required": [
                        "games"
                      ]
                    },
                    {
                      "$ref": "#/components/schemas/D_LobbySnapshot"
                    },
                    {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/D_LobbyActivityOverview"
                        },
                        {
                          "$ref": "#/components/schemas/D_LobbyActivityDetail"
                        }
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "changed": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "changed"
                      ]
                    },
                    {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "launchToken": {
                              "type": "string"
                            },
                            "sessionToken": {
                              "not": {}
                            },
                            "balance": {
                              "not": {}
                            },
                            "currency": {
                              "not": {}
                            },
                            "gameId": {
                              "not": {}
                            },
                            "walletMode": {
                              "not": {}
                            },
                            "activeCommandId": {
                              "not": {}
                            },
                            "clientScope": {
                              "not": {}
                            }
                          },
                          "required": [
                            "launchToken"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "sessionToken": {
                              "type": "string"
                            },
                            "balance": {
                              "type": "number"
                            },
                            "currency": {
                              "type": "string"
                            },
                            "gameId": {
                              "type": "string"
                            },
                            "walletMode": {
                              "type": "string"
                            },
                            "activeCommandId": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "string"
                                }
                              ]
                            },
                            "clientScope": {
                              "type": "string"
                            },
                            "launchToken": {
                              "not": {}
                            }
                          },
                          "required": [
                            "sessionToken",
                            "balance",
                            "currency",
                            "gameId",
                            "walletMode",
                            "activeCommandId",
                            "clientScope"
                          ]
                        }
                      ]
                    },
                    {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "$ref": "#/components/schemas/D_Readonly_balance_number_currency_string_refilled_boolean"
                        }
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "context": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "$ref": "#/components/schemas/D_Readonly_account_id_string_game_code_string"
                            }
                          ]
                        }
                      },
                      "required": [
                        "context"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "code": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "string"
                            }
                          ]
                        }
                      },
                      "required": [
                        "code"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "422": {
            "description": "Not processable. Error codes: INSUFFICIENT_FUNDS.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INSUFFICIENT_FUNDS"
                      ]
                    }
                  }
                }
              }
            }
          },
          "423": {
            "description": "Locked by responsible gaming. Error codes: RESPONSIBLE_GAMING_LIMIT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RESPONSIBLE_GAMING_LIMIT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          },
          "default": {
            "description": "Status set by the handler at run time.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "const": "LOBBY_REQUEST_REJECTED"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error",
                    "message"
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "demo-lobby",
        "x-registration-condition": "dependencies.demoLobby",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "sessionToken": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1100
                  }
                },
                "required": [
                  "sessionToken"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/demo-lobby.ts:36"
      }
    },
    "/operator/v1/demo-lobby/authenticate": {
      "post": {
        "operationId": "post_operator_v1_demo_lobby_authenticate",
        "tags": [
          "Demo lobby"
        ],
        "summary": "Demo lobby: sign a lobby user in with username and password",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {}
                    },
                    {
                      "type": "object",
                      "properties": {
                        "user": {
                          "$ref": "#/components/schemas/D_PublicLobbyUser"
                        },
                        "sessionToken": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "user",
                        "sessionToken"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "user": {
                          "$ref": "#/components/schemas/D_PublicLobbyUser"
                        }
                      },
                      "required": [
                        "user"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "games": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "required": [
                        "games"
                      ]
                    },
                    {
                      "$ref": "#/components/schemas/D_LobbySnapshot"
                    },
                    {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/D_LobbyActivityOverview"
                        },
                        {
                          "$ref": "#/components/schemas/D_LobbyActivityDetail"
                        }
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "changed": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "changed"
                      ]
                    },
                    {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "launchToken": {
                              "type": "string"
                            },
                            "sessionToken": {
                              "not": {}
                            },
                            "balance": {
                              "not": {}
                            },
                            "currency": {
                              "not": {}
                            },
                            "gameId": {
                              "not": {}
                            },
                            "walletMode": {
                              "not": {}
                            },
                            "activeCommandId": {
                              "not": {}
                            },
                            "clientScope": {
                              "not": {}
                            }
                          },
                          "required": [
                            "launchToken"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "sessionToken": {
                              "type": "string"
                            },
                            "balance": {
                              "type": "number"
                            },
                            "currency": {
                              "type": "string"
                            },
                            "gameId": {
                              "type": "string"
                            },
                            "walletMode": {
                              "type": "string"
                            },
                            "activeCommandId": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "string"
                                }
                              ]
                            },
                            "clientScope": {
                              "type": "string"
                            },
                            "launchToken": {
                              "not": {}
                            }
                          },
                          "required": [
                            "sessionToken",
                            "balance",
                            "currency",
                            "gameId",
                            "walletMode",
                            "activeCommandId",
                            "clientScope"
                          ]
                        }
                      ]
                    },
                    {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "$ref": "#/components/schemas/D_Readonly_balance_number_currency_string_refilled_boolean"
                        }
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "context": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "$ref": "#/components/schemas/D_Readonly_account_id_string_game_code_string"
                            }
                          ]
                        }
                      },
                      "required": [
                        "context"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "code": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "string"
                            }
                          ]
                        }
                      },
                      "required": [
                        "code"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "422": {
            "description": "Not processable. Error codes: INSUFFICIENT_FUNDS.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INSUFFICIENT_FUNDS"
                      ]
                    }
                  }
                }
              }
            }
          },
          "423": {
            "description": "Locked by responsible gaming. Error codes: RESPONSIBLE_GAMING_LIMIT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RESPONSIBLE_GAMING_LIMIT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          },
          "default": {
            "description": "Status set by the handler at run time.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "const": "LOBBY_REQUEST_REJECTED"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error",
                    "message"
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "demo-lobby",
        "x-registration-condition": "dependencies.demoLobby",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "username": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 32
                  },
                  "password": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256
                  }
                },
                "required": [
                  "username",
                  "password"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/demo-lobby.ts:36"
      }
    },
    "/operator/v1/demo-lobby/catalog": {
      "post": {
        "operationId": "post_operator_v1_demo_lobby_catalog",
        "tags": [
          "Demo lobby"
        ],
        "summary": "Demo lobby: game catalogue for a lobby session",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {}
                    },
                    {
                      "type": "object",
                      "properties": {
                        "user": {
                          "$ref": "#/components/schemas/D_PublicLobbyUser"
                        },
                        "sessionToken": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "user",
                        "sessionToken"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "user": {
                          "$ref": "#/components/schemas/D_PublicLobbyUser"
                        }
                      },
                      "required": [
                        "user"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "games": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "required": [
                        "games"
                      ]
                    },
                    {
                      "$ref": "#/components/schemas/D_LobbySnapshot"
                    },
                    {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/D_LobbyActivityOverview"
                        },
                        {
                          "$ref": "#/components/schemas/D_LobbyActivityDetail"
                        }
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "changed": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "changed"
                      ]
                    },
                    {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "launchToken": {
                              "type": "string"
                            },
                            "sessionToken": {
                              "not": {}
                            },
                            "balance": {
                              "not": {}
                            },
                            "currency": {
                              "not": {}
                            },
                            "gameId": {
                              "not": {}
                            },
                            "walletMode": {
                              "not": {}
                            },
                            "activeCommandId": {
                              "not": {}
                            },
                            "clientScope": {
                              "not": {}
                            }
                          },
                          "required": [
                            "launchToken"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "sessionToken": {
                              "type": "string"
                            },
                            "balance": {
                              "type": "number"
                            },
                            "currency": {
                              "type": "string"
                            },
                            "gameId": {
                              "type": "string"
                            },
                            "walletMode": {
                              "type": "string"
                            },
                            "activeCommandId": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "string"
                                }
                              ]
                            },
                            "clientScope": {
                              "type": "string"
                            },
                            "launchToken": {
                              "not": {}
                            }
                          },
                          "required": [
                            "sessionToken",
                            "balance",
                            "currency",
                            "gameId",
                            "walletMode",
                            "activeCommandId",
                            "clientScope"
                          ]
                        }
                      ]
                    },
                    {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "$ref": "#/components/schemas/D_Readonly_balance_number_currency_string_refilled_boolean"
                        }
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "context": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "$ref": "#/components/schemas/D_Readonly_account_id_string_game_code_string"
                            }
                          ]
                        }
                      },
                      "required": [
                        "context"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "code": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "string"
                            }
                          ]
                        }
                      },
                      "required": [
                        "code"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "422": {
            "description": "Not processable. Error codes: INSUFFICIENT_FUNDS.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INSUFFICIENT_FUNDS"
                      ]
                    }
                  }
                }
              }
            }
          },
          "423": {
            "description": "Locked by responsible gaming. Error codes: RESPONSIBLE_GAMING_LIMIT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RESPONSIBLE_GAMING_LIMIT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          },
          "default": {
            "description": "Status set by the handler at run time.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "const": "LOBBY_REQUEST_REJECTED"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error",
                    "message"
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "demo-lobby",
        "x-registration-condition": "dependencies.demoLobby",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "sessionToken": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1100
                  }
                },
                "required": [
                  "sessionToken"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/demo-lobby.ts:36"
      }
    },
    "/operator/v1/demo-lobby/configuration": {
      "post": {
        "operationId": "post_operator_v1_demo_lobby_configuration",
        "tags": [
          "Demo lobby"
        ],
        "summary": "Demo lobby: lobby configuration",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {}
                    },
                    {
                      "type": "object",
                      "properties": {
                        "user": {
                          "$ref": "#/components/schemas/D_PublicLobbyUser"
                        },
                        "sessionToken": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "user",
                        "sessionToken"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "user": {
                          "$ref": "#/components/schemas/D_PublicLobbyUser"
                        }
                      },
                      "required": [
                        "user"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "games": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "required": [
                        "games"
                      ]
                    },
                    {
                      "$ref": "#/components/schemas/D_LobbySnapshot"
                    },
                    {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/D_LobbyActivityOverview"
                        },
                        {
                          "$ref": "#/components/schemas/D_LobbyActivityDetail"
                        }
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "changed": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "changed"
                      ]
                    },
                    {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "launchToken": {
                              "type": "string"
                            },
                            "sessionToken": {
                              "not": {}
                            },
                            "balance": {
                              "not": {}
                            },
                            "currency": {
                              "not": {}
                            },
                            "gameId": {
                              "not": {}
                            },
                            "walletMode": {
                              "not": {}
                            },
                            "activeCommandId": {
                              "not": {}
                            },
                            "clientScope": {
                              "not": {}
                            }
                          },
                          "required": [
                            "launchToken"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "sessionToken": {
                              "type": "string"
                            },
                            "balance": {
                              "type": "number"
                            },
                            "currency": {
                              "type": "string"
                            },
                            "gameId": {
                              "type": "string"
                            },
                            "walletMode": {
                              "type": "string"
                            },
                            "activeCommandId": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "string"
                                }
                              ]
                            },
                            "clientScope": {
                              "type": "string"
                            },
                            "launchToken": {
                              "not": {}
                            }
                          },
                          "required": [
                            "sessionToken",
                            "balance",
                            "currency",
                            "gameId",
                            "walletMode",
                            "activeCommandId",
                            "clientScope"
                          ]
                        }
                      ]
                    },
                    {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "$ref": "#/components/schemas/D_Readonly_balance_number_currency_string_refilled_boolean"
                        }
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "context": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "$ref": "#/components/schemas/D_Readonly_account_id_string_game_code_string"
                            }
                          ]
                        }
                      },
                      "required": [
                        "context"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "code": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "string"
                            }
                          ]
                        }
                      },
                      "required": [
                        "code"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "422": {
            "description": "Not processable. Error codes: INSUFFICIENT_FUNDS.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INSUFFICIENT_FUNDS"
                      ]
                    }
                  }
                }
              }
            }
          },
          "423": {
            "description": "Locked by responsible gaming. Error codes: RESPONSIBLE_GAMING_LIMIT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RESPONSIBLE_GAMING_LIMIT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          },
          "default": {
            "description": "Status set by the handler at run time.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "const": "LOBBY_REQUEST_REJECTED"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error",
                    "message"
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "demo-lobby",
        "x-registration-condition": "dependencies.demoLobby",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/demo-lobby.ts:36"
      }
    },
    "/operator/v1/demo-lobby/launch": {
      "post": {
        "operationId": "post_operator_v1_demo_lobby_launch",
        "tags": [
          "Demo lobby"
        ],
        "summary": "Demo lobby: launch a game for a lobby session (native or Stake front)",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {}
                    },
                    {
                      "type": "object",
                      "properties": {
                        "user": {
                          "$ref": "#/components/schemas/D_PublicLobbyUser"
                        },
                        "sessionToken": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "user",
                        "sessionToken"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "user": {
                          "$ref": "#/components/schemas/D_PublicLobbyUser"
                        }
                      },
                      "required": [
                        "user"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "games": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "required": [
                        "games"
                      ]
                    },
                    {
                      "$ref": "#/components/schemas/D_LobbySnapshot"
                    },
                    {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/D_LobbyActivityOverview"
                        },
                        {
                          "$ref": "#/components/schemas/D_LobbyActivityDetail"
                        }
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "changed": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "changed"
                      ]
                    },
                    {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "launchToken": {
                              "type": "string"
                            },
                            "sessionToken": {
                              "not": {}
                            },
                            "balance": {
                              "not": {}
                            },
                            "currency": {
                              "not": {}
                            },
                            "gameId": {
                              "not": {}
                            },
                            "walletMode": {
                              "not": {}
                            },
                            "activeCommandId": {
                              "not": {}
                            },
                            "clientScope": {
                              "not": {}
                            }
                          },
                          "required": [
                            "launchToken"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "sessionToken": {
                              "type": "string"
                            },
                            "balance": {
                              "type": "number"
                            },
                            "currency": {
                              "type": "string"
                            },
                            "gameId": {
                              "type": "string"
                            },
                            "walletMode": {
                              "type": "string"
                            },
                            "activeCommandId": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "string"
                                }
                              ]
                            },
                            "clientScope": {
                              "type": "string"
                            },
                            "launchToken": {
                              "not": {}
                            }
                          },
                          "required": [
                            "sessionToken",
                            "balance",
                            "currency",
                            "gameId",
                            "walletMode",
                            "activeCommandId",
                            "clientScope"
                          ]
                        }
                      ]
                    },
                    {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "$ref": "#/components/schemas/D_Readonly_balance_number_currency_string_refilled_boolean"
                        }
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "context": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "$ref": "#/components/schemas/D_Readonly_account_id_string_game_code_string"
                            }
                          ]
                        }
                      },
                      "required": [
                        "context"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "code": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "string"
                            }
                          ]
                        }
                      },
                      "required": [
                        "code"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "422": {
            "description": "Not processable. Error codes: INSUFFICIENT_FUNDS.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INSUFFICIENT_FUNDS"
                      ]
                    }
                  }
                }
              }
            }
          },
          "423": {
            "description": "Locked by responsible gaming. Error codes: RESPONSIBLE_GAMING_LIMIT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RESPONSIBLE_GAMING_LIMIT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          },
          "default": {
            "description": "Status set by the handler at run time.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "const": "LOBBY_REQUEST_REJECTED"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error",
                    "message"
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "demo-lobby",
        "x-registration-condition": "dependencies.demoLobby",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "sessionToken": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1100
                  },
                  "gameCode": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 100
                  },
                  "native": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "sessionToken",
                  "gameCode",
                  "native"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/demo-lobby.ts:36"
      }
    },
    "/operator/v1/demo-lobby/refill": {
      "post": {
        "operationId": "post_operator_v1_demo_lobby_refill",
        "tags": [
          "Demo lobby"
        ],
        "summary": "Demo lobby: refill a lobby session's synthetic credit",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {}
                    },
                    {
                      "type": "object",
                      "properties": {
                        "user": {
                          "$ref": "#/components/schemas/D_PublicLobbyUser"
                        },
                        "sessionToken": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "user",
                        "sessionToken"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "user": {
                          "$ref": "#/components/schemas/D_PublicLobbyUser"
                        }
                      },
                      "required": [
                        "user"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "games": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "required": [
                        "games"
                      ]
                    },
                    {
                      "$ref": "#/components/schemas/D_LobbySnapshot"
                    },
                    {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/D_LobbyActivityOverview"
                        },
                        {
                          "$ref": "#/components/schemas/D_LobbyActivityDetail"
                        }
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "changed": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "changed"
                      ]
                    },
                    {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "launchToken": {
                              "type": "string"
                            },
                            "sessionToken": {
                              "not": {}
                            },
                            "balance": {
                              "not": {}
                            },
                            "currency": {
                              "not": {}
                            },
                            "gameId": {
                              "not": {}
                            },
                            "walletMode": {
                              "not": {}
                            },
                            "activeCommandId": {
                              "not": {}
                            },
                            "clientScope": {
                              "not": {}
                            }
                          },
                          "required": [
                            "launchToken"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "sessionToken": {
                              "type": "string"
                            },
                            "balance": {
                              "type": "number"
                            },
                            "currency": {
                              "type": "string"
                            },
                            "gameId": {
                              "type": "string"
                            },
                            "walletMode": {
                              "type": "string"
                            },
                            "activeCommandId": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "string"
                                }
                              ]
                            },
                            "clientScope": {
                              "type": "string"
                            },
                            "launchToken": {
                              "not": {}
                            }
                          },
                          "required": [
                            "sessionToken",
                            "balance",
                            "currency",
                            "gameId",
                            "walletMode",
                            "activeCommandId",
                            "clientScope"
                          ]
                        }
                      ]
                    },
                    {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "$ref": "#/components/schemas/D_Readonly_balance_number_currency_string_refilled_boolean"
                        }
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "context": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "$ref": "#/components/schemas/D_Readonly_account_id_string_game_code_string"
                            }
                          ]
                        }
                      },
                      "required": [
                        "context"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "code": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "string"
                            }
                          ]
                        }
                      },
                      "required": [
                        "code"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "422": {
            "description": "Not processable. Error codes: INSUFFICIENT_FUNDS.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INSUFFICIENT_FUNDS"
                      ]
                    }
                  }
                }
              }
            }
          },
          "423": {
            "description": "Locked by responsible gaming. Error codes: RESPONSIBLE_GAMING_LIMIT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RESPONSIBLE_GAMING_LIMIT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          },
          "default": {
            "description": "Status set by the handler at run time.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "const": "LOBBY_REQUEST_REJECTED"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error",
                    "message"
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "demo-lobby",
        "x-registration-condition": "dependencies.demoLobby",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "sessionToken": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1100
                  }
                },
                "required": [
                  "sessionToken"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/demo-lobby.ts:36"
      }
    },
    "/operator/v1/demo-lobby/session": {
      "post": {
        "operationId": "post_operator_v1_demo_lobby_session",
        "tags": [
          "Demo lobby"
        ],
        "summary": "Demo lobby: resolve a lobby session",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {}
                    },
                    {
                      "type": "object",
                      "properties": {
                        "user": {
                          "$ref": "#/components/schemas/D_PublicLobbyUser"
                        },
                        "sessionToken": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "user",
                        "sessionToken"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "user": {
                          "$ref": "#/components/schemas/D_PublicLobbyUser"
                        }
                      },
                      "required": [
                        "user"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "games": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "required": [
                        "games"
                      ]
                    },
                    {
                      "$ref": "#/components/schemas/D_LobbySnapshot"
                    },
                    {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/D_LobbyActivityOverview"
                        },
                        {
                          "$ref": "#/components/schemas/D_LobbyActivityDetail"
                        }
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "changed": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "changed"
                      ]
                    },
                    {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "launchToken": {
                              "type": "string"
                            },
                            "sessionToken": {
                              "not": {}
                            },
                            "balance": {
                              "not": {}
                            },
                            "currency": {
                              "not": {}
                            },
                            "gameId": {
                              "not": {}
                            },
                            "walletMode": {
                              "not": {}
                            },
                            "activeCommandId": {
                              "not": {}
                            },
                            "clientScope": {
                              "not": {}
                            }
                          },
                          "required": [
                            "launchToken"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "sessionToken": {
                              "type": "string"
                            },
                            "balance": {
                              "type": "number"
                            },
                            "currency": {
                              "type": "string"
                            },
                            "gameId": {
                              "type": "string"
                            },
                            "walletMode": {
                              "type": "string"
                            },
                            "activeCommandId": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "string"
                                }
                              ]
                            },
                            "clientScope": {
                              "type": "string"
                            },
                            "launchToken": {
                              "not": {}
                            }
                          },
                          "required": [
                            "sessionToken",
                            "balance",
                            "currency",
                            "gameId",
                            "walletMode",
                            "activeCommandId",
                            "clientScope"
                          ]
                        }
                      ]
                    },
                    {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "$ref": "#/components/schemas/D_Readonly_balance_number_currency_string_refilled_boolean"
                        }
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "context": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "$ref": "#/components/schemas/D_Readonly_account_id_string_game_code_string"
                            }
                          ]
                        }
                      },
                      "required": [
                        "context"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "code": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "string"
                            }
                          ]
                        }
                      },
                      "required": [
                        "code"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "422": {
            "description": "Not processable. Error codes: INSUFFICIENT_FUNDS.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INSUFFICIENT_FUNDS"
                      ]
                    }
                  }
                }
              }
            }
          },
          "423": {
            "description": "Locked by responsible gaming. Error codes: RESPONSIBLE_GAMING_LIMIT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RESPONSIBLE_GAMING_LIMIT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          },
          "default": {
            "description": "Status set by the handler at run time.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "const": "LOBBY_REQUEST_REJECTED"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error",
                    "message"
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "demo-lobby",
        "x-registration-condition": "dependencies.demoLobby",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "sessionToken": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1100
                  }
                },
                "required": [
                  "sessionToken"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/demo-lobby.ts:36"
      }
    },
    "/operator/v1/demo-lobby/session-game": {
      "post": {
        "operationId": "post_operator_v1_demo_lobby_session_game",
        "tags": [
          "Demo lobby"
        ],
        "summary": "Demo lobby: resolve a game token within a lobby session",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {}
                    },
                    {
                      "type": "object",
                      "properties": {
                        "user": {
                          "$ref": "#/components/schemas/D_PublicLobbyUser"
                        },
                        "sessionToken": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "user",
                        "sessionToken"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "user": {
                          "$ref": "#/components/schemas/D_PublicLobbyUser"
                        }
                      },
                      "required": [
                        "user"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "games": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "required": [
                        "games"
                      ]
                    },
                    {
                      "$ref": "#/components/schemas/D_LobbySnapshot"
                    },
                    {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/D_LobbyActivityOverview"
                        },
                        {
                          "$ref": "#/components/schemas/D_LobbyActivityDetail"
                        }
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "changed": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "changed"
                      ]
                    },
                    {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "launchToken": {
                              "type": "string"
                            },
                            "sessionToken": {
                              "not": {}
                            },
                            "balance": {
                              "not": {}
                            },
                            "currency": {
                              "not": {}
                            },
                            "gameId": {
                              "not": {}
                            },
                            "walletMode": {
                              "not": {}
                            },
                            "activeCommandId": {
                              "not": {}
                            },
                            "clientScope": {
                              "not": {}
                            }
                          },
                          "required": [
                            "launchToken"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "sessionToken": {
                              "type": "string"
                            },
                            "balance": {
                              "type": "number"
                            },
                            "currency": {
                              "type": "string"
                            },
                            "gameId": {
                              "type": "string"
                            },
                            "walletMode": {
                              "type": "string"
                            },
                            "activeCommandId": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "string"
                                }
                              ]
                            },
                            "clientScope": {
                              "type": "string"
                            },
                            "launchToken": {
                              "not": {}
                            }
                          },
                          "required": [
                            "sessionToken",
                            "balance",
                            "currency",
                            "gameId",
                            "walletMode",
                            "activeCommandId",
                            "clientScope"
                          ]
                        }
                      ]
                    },
                    {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "$ref": "#/components/schemas/D_Readonly_balance_number_currency_string_refilled_boolean"
                        }
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "context": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "$ref": "#/components/schemas/D_Readonly_account_id_string_game_code_string"
                            }
                          ]
                        }
                      },
                      "required": [
                        "context"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "code": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "string"
                            }
                          ]
                        }
                      },
                      "required": [
                        "code"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "422": {
            "description": "Not processable. Error codes: INSUFFICIENT_FUNDS.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INSUFFICIENT_FUNDS"
                      ]
                    }
                  }
                }
              }
            }
          },
          "423": {
            "description": "Locked by responsible gaming. Error codes: RESPONSIBLE_GAMING_LIMIT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RESPONSIBLE_GAMING_LIMIT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          },
          "default": {
            "description": "Status set by the handler at run time.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "const": "LOBBY_REQUEST_REJECTED"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error",
                    "message"
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "demo-lobby",
        "x-registration-condition": "dependencies.demoLobby",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "sessionToken": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1100
                  },
                  "gameToken": {
                    "type": "string",
                    "minLength": 43,
                    "maxLength": 128
                  }
                },
                "required": [
                  "sessionToken",
                  "gameToken"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/demo-lobby.ts:36"
      }
    },
    "/operator/v1/demo-lobby/wallet-context": {
      "post": {
        "operationId": "post_operator_v1_demo_lobby_wallet_context",
        "tags": [
          "Demo lobby"
        ],
        "summary": "Demo lobby: wallet context for a Stake session id",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {}
                    },
                    {
                      "type": "object",
                      "properties": {
                        "user": {
                          "$ref": "#/components/schemas/D_PublicLobbyUser"
                        },
                        "sessionToken": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "user",
                        "sessionToken"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "user": {
                          "$ref": "#/components/schemas/D_PublicLobbyUser"
                        }
                      },
                      "required": [
                        "user"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "games": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "required": [
                        "games"
                      ]
                    },
                    {
                      "$ref": "#/components/schemas/D_LobbySnapshot"
                    },
                    {
                      "anyOf": [
                        {
                          "$ref": "#/components/schemas/D_LobbyActivityOverview"
                        },
                        {
                          "$ref": "#/components/schemas/D_LobbyActivityDetail"
                        }
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "changed": {
                          "type": "boolean"
                        }
                      },
                      "required": [
                        "changed"
                      ]
                    },
                    {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "object",
                          "properties": {
                            "launchToken": {
                              "type": "string"
                            },
                            "sessionToken": {
                              "not": {}
                            },
                            "balance": {
                              "not": {}
                            },
                            "currency": {
                              "not": {}
                            },
                            "gameId": {
                              "not": {}
                            },
                            "walletMode": {
                              "not": {}
                            },
                            "activeCommandId": {
                              "not": {}
                            },
                            "clientScope": {
                              "not": {}
                            }
                          },
                          "required": [
                            "launchToken"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "sessionToken": {
                              "type": "string"
                            },
                            "balance": {
                              "type": "number"
                            },
                            "currency": {
                              "type": "string"
                            },
                            "gameId": {
                              "type": "string"
                            },
                            "walletMode": {
                              "type": "string"
                            },
                            "activeCommandId": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "string"
                                }
                              ]
                            },
                            "clientScope": {
                              "type": "string"
                            },
                            "launchToken": {
                              "not": {}
                            }
                          },
                          "required": [
                            "sessionToken",
                            "balance",
                            "currency",
                            "gameId",
                            "walletMode",
                            "activeCommandId",
                            "clientScope"
                          ]
                        }
                      ]
                    },
                    {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "$ref": "#/components/schemas/D_Readonly_balance_number_currency_string_refilled_boolean"
                        }
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "context": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "$ref": "#/components/schemas/D_Readonly_account_id_string_game_code_string"
                            }
                          ]
                        }
                      },
                      "required": [
                        "context"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "code": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "string"
                            }
                          ]
                        }
                      },
                      "required": [
                        "code"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "422": {
            "description": "Not processable. Error codes: INSUFFICIENT_FUNDS.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INSUFFICIENT_FUNDS"
                      ]
                    }
                  }
                }
              }
            }
          },
          "423": {
            "description": "Locked by responsible gaming. Error codes: RESPONSIBLE_GAMING_LIMIT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RESPONSIBLE_GAMING_LIMIT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          },
          "default": {
            "description": "Status set by the handler at run time.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "const": "LOBBY_REQUEST_REJECTED"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error",
                    "message"
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "demo-lobby",
        "x-registration-condition": "dependencies.demoLobby",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "sessionToken": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 1100
                  },
                  "sessionID": {
                    "type": "string",
                    "minLength": 8,
                    "maxLength": 256
                  },
                  "allowLaunch": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "sessionToken",
                  "sessionID",
                  "allowLaunch"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/demo-lobby.ts:36"
      }
    },
    "/operator/v1/engagement/tournaments": {
      "post": {
        "operationId": "post_operator_v1_engagement_tournaments",
        "tags": [
          "Tournaments"
        ],
        "summary": "Create a tournament (201 created, 200 for the same terms again)",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id"
                  ]
                }
              }
            }
          },
          "201": {
            "description": "Created.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: ENGAGEMENT_UNAVAILABLE, TWO_PERSON_REQUIRED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "ENGAGEMENT_UNAVAILABLE",
                        "TWO_PERSON_REQUIRED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "campaigns",
        "x-registration-condition": "operatorAuth",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64
                  },
                  "currency": {
                    "type": "string",
                    "pattern": "^[A-Z]{3}$"
                  },
                  "gameVersionIds": {
                    "minItems": 1,
                    "maxItems": 64,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid"
                    }
                  },
                  "minimumWagerMinor": {
                    "type": "string",
                    "pattern": "^[1-9][0-9]{0,15}$"
                  },
                  "scoring": {
                    "type": "string",
                    "enum": [
                      "total-win",
                      "wager-volume"
                    ]
                  },
                  "startsAt": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "endsAt": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "prizesMinor": {
                    "minItems": 1,
                    "maxItems": 100,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "pattern": "^[1-9][0-9]{0,15}$"
                    }
                  },
                  "budgetMinor": {
                    "type": "string",
                    "pattern": "^[1-9][0-9]{0,15}$"
                  },
                  "fundingSources": {
                    "minItems": 1,
                    "maxItems": 2,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "cash",
                        "promo"
                      ]
                    }
                  },
                  "tieBreak": {
                    "type": "string",
                    "const": "first-achieved"
                  }
                },
                "required": [
                  "code",
                  "currency",
                  "gameVersionIds",
                  "minimumWagerMinor",
                  "scoring",
                  "startsAt",
                  "endsAt",
                  "prizesMinor",
                  "budgetMinor",
                  "fundingSources",
                  "tieBreak"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:934"
      }
    },
    "/operator/v1/engagement/tournaments/{id}/close": {
      "post": {
        "operationId": "post_operator_v1_engagement_tournaments_id_close",
        "tags": [
          "Tournaments"
        ],
        "summary": "Close a tournament (200 when settled, 202 while settling)",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "sourceBoundary": {
                      "type": "string"
                    },
                    "ready": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "id",
                    "sourceBoundary",
                    "ready"
                  ]
                }
              }
            }
          },
          "202": {
            "description": "Accepted; not final yet.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "sourceBoundary": {
                      "type": "string"
                    },
                    "ready": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "id",
                    "sourceBoundary",
                    "ready"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: ENGAGEMENT_UNAVAILABLE, TWO_PERSON_REQUIRED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "ENGAGEMENT_UNAVAILABLE",
                        "TWO_PERSON_REQUIRED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "campaigns",
        "x-registration-condition": "operatorAuth",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:946"
      }
    },
    "/operator/v1/free-rounds": {
      "post": {
        "operationId": "post_operator_v1_free_rounds",
        "tags": [
          "Free rounds"
        ],
        "summary": "Create a free-round campaign (201 created, 200 for the same terms again)",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id"
                  ]
                }
              }
            }
          },
          "201": {
            "description": "Created.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: FREE_ROUNDS_UNAVAILABLE, TWO_PERSON_REQUIRED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "FREE_ROUNDS_UNAVAILABLE",
                        "TWO_PERSON_REQUIRED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "campaigns",
        "x-registration-condition": "operatorAuth",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "code": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64
                  },
                  "gameVersionId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "currency": {
                    "type": "string",
                    "pattern": "^[A-Z]{3}$"
                  },
                  "amount": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 9007199254740991
                  },
                  "payoutCategory": {
                    "type": "string",
                    "enum": [
                      "promo",
                      "normal"
                    ]
                  },
                  "budgetMinor": {
                    "type": "string",
                    "pattern": "^[1-9][0-9]{0,15}$"
                  },
                  "startsAt": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "endsAt": {
                    "type": "string",
                    "format": "date-time"
                  }
                },
                "required": [
                  "code",
                  "gameVersionId",
                  "currency",
                  "amount",
                  "payoutCategory",
                  "budgetMinor",
                  "startsAt",
                  "endsAt"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:985"
      }
    },
    "/operator/v1/free-rounds/{campaignId}/grants": {
      "post": {
        "operationId": "post_operator_v1_free_rounds_campaignId_grants",
        "tags": [
          "Free rounds"
        ],
        "summary": "Grant free rounds to a player (201 created, 200 for a repeated grant)",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "grantId": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "grantId"
                  ]
                }
              }
            }
          },
          "201": {
            "description": "Created.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "grantId": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "grantId"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: FREE_ROUNDS_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "FREE_ROUNDS_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "campaigns",
        "x-registration-condition": "operatorAuth",
        "parameters": [
          {
            "name": "campaignId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "playerId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256
                  },
                  "count": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 2147483647
                  },
                  "idempotencyKey": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  }
                },
                "required": [
                  "playerId",
                  "count",
                  "idempotencyKey"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:1002"
      }
    },
    "/operator/v1/free-rounds/{campaignId}/liability": {
      "get": {
        "operationId": "get_operator_v1_free_rounds_campaignId_liability",
        "tags": [
          "Free rounds"
        ],
        "summary": "Free-round campaign liability",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "availableMinor": {
                      "type": "string"
                    },
                    "unpaidMinor": {
                      "type": "string"
                    },
                    "paidMinor": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "availableMinor",
                    "unpaidMinor",
                    "paidMinor"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: FREE_ROUNDS_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "FREE_ROUNDS_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "campaigns",
        "x-registration-condition": "operatorAuth",
        "parameters": [
          {
            "name": "campaignId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1021"
      }
    },
    "/operator/v1/free-rounds/{campaignId}/remove": {
      "post": {
        "operationId": "post_operator_v1_free_rounds_campaignId_remove",
        "tags": [
          "Free rounds"
        ],
        "summary": "Remove a free-round campaign",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "removed": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "removed"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: FREE_ROUNDS_UNAVAILABLE, TWO_PERSON_REQUIRED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "FREE_ROUNDS_UNAVAILABLE",
                        "TWO_PERSON_REQUIRED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "campaigns",
        "x-registration-condition": "operatorAuth",
        "parameters": [
          {
            "name": "campaignId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "idempotencyKey": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  }
                },
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:1010"
      }
    },
    "/operator/v1/free-rounds/available-bets": {
      "post": {
        "operationId": "post_operator_v1_free_rounds_available_bets",
        "tags": [
          "Free rounds"
        ],
        "summary": "Bet amounts free rounds can use for a game version and currency",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "gameVersionId": {
                      "type": "string"
                    },
                    "currency": {
                      "type": "string"
                    },
                    "action": {
                      "type": "string"
                    },
                    "amounts": {
                      "type": "array",
                      "items": {}
                    },
                    "payoutCategory": {},
                    "maximumPayoutMinor": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "gameVersionId",
                    "currency",
                    "action",
                    "amounts",
                    "payoutCategory",
                    "maximumPayoutMinor"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: FREE_ROUNDS_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "FREE_ROUNDS_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "campaigns",
        "x-registration-condition": "operatorAuth",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "gameVersionId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "currency": {
                    "type": "string",
                    "pattern": "^[A-Z]{3}$"
                  }
                },
                "required": [
                  "gameVersionId",
                  "currency"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:997"
      }
    },
    "/operator/v1/interactive-market/policies/{policyId}/approve": {
      "post": {
        "operationId": "post_operator_v1_interactive_market_policies_policyId_approve",
        "tags": [
          "Policies"
        ],
        "summary": "Approve an interactive market policy request (checker)",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_InteractiveMarketPolicyResult"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: INTERACTIVE_MARKET_POLICY_CONFLICT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INTERACTIVE_MARKET_POLICY_CONFLICT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "markets",
        "x-registration-condition": "operatorAuth",
        "parameters": [
          {
            "name": "policyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "confirm": {
                    "type": "object",
                    "properties": {
                      "target": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "operatorId": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "previousPolicyId": {
                        "anyOf": [
                          {
                            "type": "string",
                            "format": "uuid"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "gameVersionId": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "brandId": {
                        "type": "string",
                        "pattern": "^[a-z0-9][a-z0-9._-]{0,63}$"
                      },
                      "marketId": {
                        "type": "string",
                        "pattern": "^[a-z0-9][a-z0-9._-]{0,63}$"
                      },
                      "currency": {
                        "type": "string",
                        "pattern": "^[A-Z]{3}$"
                      },
                      "unit": {
                        "type": "string",
                        "const": "milliseconds"
                      },
                      "timeoutMilliseconds": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 2147483647
                      },
                      "profile": {
                        "type": "string",
                        "enum": [
                          "dev",
                          "demo",
                          "staging",
                          "real-money"
                        ]
                      },
                      "environmentId": {
                        "type": "string",
                        "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
                      },
                      "reason": {
                        "type": "string",
                        "minLength": 10,
                        "maxLength": 1024
                      }
                    },
                    "required": [
                      "target",
                      "operatorId",
                      "previousPolicyId",
                      "gameVersionId",
                      "brandId",
                      "marketId",
                      "currency",
                      "unit",
                      "timeoutMilliseconds",
                      "profile",
                      "environmentId",
                      "reason"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "confirm"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:901"
      }
    },
    "/operator/v1/interactive-market/policies/{policyId}/requests": {
      "post": {
        "operationId": "post_operator_v1_interactive_market_policies_policyId_requests",
        "tags": [
          "Policies"
        ],
        "summary": "Request an interactive market policy (maker)",
        "responses": {
          "201": {
            "description": "Created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_InteractiveMarketPolicyResult"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: INTERACTIVE_MARKET_POLICY_CONFLICT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INTERACTIVE_MARKET_POLICY_CONFLICT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "markets",
        "x-registration-condition": "operatorAuth",
        "parameters": [
          {
            "name": "policyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "confirm": {
                    "type": "object",
                    "properties": {
                      "target": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "operatorId": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "previousPolicyId": {
                        "anyOf": [
                          {
                            "type": "string",
                            "format": "uuid"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "gameVersionId": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "brandId": {
                        "type": "string",
                        "pattern": "^[a-z0-9][a-z0-9._-]{0,63}$"
                      },
                      "marketId": {
                        "type": "string",
                        "pattern": "^[a-z0-9][a-z0-9._-]{0,63}$"
                      },
                      "currency": {
                        "type": "string",
                        "pattern": "^[A-Z]{3}$"
                      },
                      "unit": {
                        "type": "string",
                        "const": "milliseconds"
                      },
                      "timeoutMilliseconds": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 2147483647
                      },
                      "profile": {
                        "type": "string",
                        "enum": [
                          "dev",
                          "demo",
                          "staging",
                          "real-money"
                        ]
                      },
                      "environmentId": {
                        "type": "string",
                        "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
                      },
                      "reason": {
                        "type": "string",
                        "minLength": 10,
                        "maxLength": 1024
                      }
                    },
                    "required": [
                      "target",
                      "operatorId",
                      "previousPolicyId",
                      "gameVersionId",
                      "brandId",
                      "marketId",
                      "currency",
                      "unit",
                      "timeoutMilliseconds",
                      "profile",
                      "environmentId",
                      "reason"
                    ],
                    "additionalProperties": false
                  },
                  "expiresInSeconds": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 900
                  }
                },
                "required": [
                  "confirm",
                  "expiresInSeconds"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:893"
      }
    },
    "/operator/v1/interactive-market/policies/{policyId}/revoke": {
      "post": {
        "operationId": "post_operator_v1_interactive_market_policies_policyId_revoke",
        "tags": [
          "Policies"
        ],
        "summary": "Revoke an interactive market policy",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_InteractiveMarketPolicyRevocation"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: INTERACTIVE_MARKET_POLICY_CONFLICT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INTERACTIVE_MARKET_POLICY_CONFLICT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "markets",
        "x-registration-condition": "operatorAuth",
        "parameters": [
          {
            "name": "policyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "confirm": {
                    "type": "object",
                    "properties": {
                      "target": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "operatorId": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "previousPolicyId": {
                        "anyOf": [
                          {
                            "type": "string",
                            "format": "uuid"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "gameVersionId": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "brandId": {
                        "type": "string",
                        "pattern": "^[a-z0-9][a-z0-9._-]{0,63}$"
                      },
                      "marketId": {
                        "type": "string",
                        "pattern": "^[a-z0-9][a-z0-9._-]{0,63}$"
                      },
                      "currency": {
                        "type": "string",
                        "pattern": "^[A-Z]{3}$"
                      },
                      "unit": {
                        "type": "string",
                        "const": "milliseconds"
                      },
                      "timeoutMilliseconds": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 2147483647
                      },
                      "profile": {
                        "type": "string",
                        "enum": [
                          "dev",
                          "demo",
                          "staging",
                          "real-money"
                        ]
                      },
                      "environmentId": {
                        "type": "string",
                        "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
                      },
                      "reason": {
                        "type": "string",
                        "minLength": 10,
                        "maxLength": 1024
                      }
                    },
                    "required": [
                      "target",
                      "operatorId",
                      "previousPolicyId",
                      "gameVersionId",
                      "brandId",
                      "marketId",
                      "currency",
                      "unit",
                      "timeoutMilliseconds",
                      "profile",
                      "environmentId",
                      "reason"
                    ],
                    "additionalProperties": false
                  },
                  "reason": {
                    "type": "string",
                    "minLength": 10,
                    "maxLength": 1024
                  }
                },
                "required": [
                  "confirm",
                  "reason"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:907"
      }
    },
    "/operator/v1/jackpots": {
      "post": {
        "operationId": "post_operator_v1_jackpots",
        "tags": [
          "Jackpots"
        ],
        "summary": "Create a jackpot pool (201 created, 200 for the same terms again)",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id"
                  ]
                }
              }
            }
          },
          "201": {
            "description": "Created.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: JACKPOT_UNAVAILABLE, TWO_PERSON_REQUIRED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "JACKPOT_UNAVAILABLE",
                        "TWO_PERSON_REQUIRED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "campaigns",
        "x-registration-condition": "operatorAuth",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "gameVersionId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "poolKey": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 64
                  },
                  "reserveByTier": {
                    "type": "object",
                    "propertyNames": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 64
                    },
                    "additionalProperties": {
                      "type": "string",
                      "pattern": "^(0|[1-9][0-9]{0,15})$"
                    }
                  }
                },
                "required": [
                  "gameVersionId",
                  "poolKey",
                  "reserveByTier"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:954"
      }
    },
    "/operator/v1/jackpots/{poolId}": {
      "get": {
        "operationId": "get_operator_v1_jackpots_poolId",
        "tags": [
          "Jackpots"
        ],
        "summary": "Jackpot pool as its operator sees it",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "currency": {
                      "type": "string"
                    },
                    "tiers": {
                      "type": "array",
                      "items": {}
                    }
                  },
                  "required": [
                    "id",
                    "currency",
                    "tiers"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: JACKPOT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "JACKPOT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "campaigns",
        "x-registration-condition": "operatorAuth",
        "parameters": [
          {
            "name": "poolId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:963"
      }
    },
    "/operator/v1/jackpots/{poolId}/memberships": {
      "post": {
        "operationId": "post_operator_v1_jackpots_poolId_memberships",
        "tags": [
          "Jackpots"
        ],
        "summary": "Offer another operator a jackpot pool membership",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id"
                  ]
                }
              }
            }
          },
          "201": {
            "description": "Created.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: JACKPOT_UNAVAILABLE, TWO_PERSON_REQUIRED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "JACKPOT_UNAVAILABLE",
                        "TWO_PERSON_REQUIRED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "campaigns",
        "x-registration-condition": "operatorAuth",
        "parameters": [
          {
            "name": "poolId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "operatorId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "gameVersionId": {
                    "type": "string",
                    "format": "uuid"
                  }
                },
                "required": [
                  "operatorId",
                  "gameVersionId"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:968"
      }
    },
    "/operator/v1/jackpots/{poolId}/memberships/{offerId}/accept": {
      "post": {
        "operationId": "post_operator_v1_jackpots_poolId_memberships_offerId_accept",
        "tags": [
          "Jackpots"
        ],
        "summary": "Accept a jackpot pool membership offer",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id"
                  ]
                }
              }
            }
          },
          "201": {
            "description": "Created.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: JACKPOT_UNAVAILABLE, TWO_PERSON_REQUIRED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "JACKPOT_UNAVAILABLE",
                        "TWO_PERSON_REQUIRED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "campaigns",
        "x-registration-condition": "operatorAuth",
        "parameters": [
          {
            "name": "poolId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "offerId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:976"
      }
    },
    "/operator/v1/jackpots/rtp": {
      "get": {
        "operationId": "get_operator_v1_jackpots_rtp",
        "tags": [
          "Jackpots"
        ],
        "summary": "Jackpot RTP for a game version and currency",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "rounds": {
                      "type": "string"
                    },
                    "wagerMinor": {
                      "type": "string"
                    },
                    "basePayoutMinor": {
                      "type": "string"
                    },
                    "jackpotPayoutMinor": {
                      "type": "string"
                    },
                    "contributionMinor": {
                      "type": "string"
                    },
                    "format": {
                      "type": "string"
                    },
                    "gameVersionId": {
                      "type": "string"
                    },
                    "currency": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "rounds",
                    "wagerMinor",
                    "basePayoutMinor",
                    "jackpotPayoutMinor",
                    "contributionMinor",
                    "format",
                    "gameVersionId",
                    "currency"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reports",
        "x-registration-condition": "operatorAuth",
        "parameters": [
          {
            "name": "gameVersionId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:929"
      }
    },
    "/operator/v1/math-families/policies/{policyId}/approve": {
      "post": {
        "operationId": "post_operator_v1_math_families_policies_policyId_approve",
        "tags": [
          "Policies"
        ],
        "summary": "Approve a math family policy request (checker)",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_MathFamilyPolicyResult"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: MATH_FAMILY_POLICY_CONFLICT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "MATH_FAMILY_POLICY_CONFLICT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "markets",
        "x-registration-condition": "operatorAuth and dependencies.mathFamilies",
        "parameters": [
          {
            "name": "policyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "confirm": {
                    "type": "object",
                    "properties": {
                      "target": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "operatorId": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "previousPolicyId": {
                        "anyOf": [
                          {
                            "type": "string",
                            "format": "uuid"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "gameVersionId": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "brandId": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]{0,127}$"
                      },
                      "marketId": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]{0,127}$"
                      },
                      "currency": {
                        "type": "string",
                        "pattern": "^[A-Z]{3}$"
                      },
                      "selectionSha256": {
                        "type": "string",
                        "pattern": "^[a-f0-9]{64}$"
                      },
                      "available": {
                        "type": "boolean"
                      },
                      "profile": {
                        "type": "string",
                        "enum": [
                          "dev",
                          "demo",
                          "staging",
                          "real-money"
                        ]
                      },
                      "environmentId": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]{0,127}$"
                      },
                      "reason": {
                        "type": "string",
                        "minLength": 10,
                        "maxLength": 1024
                      }
                    },
                    "required": [
                      "target",
                      "operatorId",
                      "previousPolicyId",
                      "gameVersionId",
                      "brandId",
                      "marketId",
                      "currency",
                      "selectionSha256",
                      "available",
                      "profile",
                      "environmentId",
                      "reason"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "confirm"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:886"
      }
    },
    "/operator/v1/math-families/policies/{policyId}/requests": {
      "post": {
        "operationId": "post_operator_v1_math_families_policies_policyId_requests",
        "tags": [
          "Policies"
        ],
        "summary": "Request a math family policy (maker)",
        "responses": {
          "201": {
            "description": "Created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_MathFamilyPolicyResult"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: MATH_FAMILY_POLICY_CONFLICT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "MATH_FAMILY_POLICY_CONFLICT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "markets",
        "x-registration-condition": "operatorAuth and dependencies.mathFamilies",
        "parameters": [
          {
            "name": "policyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "confirm": {
                    "type": "object",
                    "properties": {
                      "target": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "operatorId": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "previousPolicyId": {
                        "anyOf": [
                          {
                            "type": "string",
                            "format": "uuid"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "gameVersionId": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "brandId": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]{0,127}$"
                      },
                      "marketId": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]{0,127}$"
                      },
                      "currency": {
                        "type": "string",
                        "pattern": "^[A-Z]{3}$"
                      },
                      "selectionSha256": {
                        "type": "string",
                        "pattern": "^[a-f0-9]{64}$"
                      },
                      "available": {
                        "type": "boolean"
                      },
                      "profile": {
                        "type": "string",
                        "enum": [
                          "dev",
                          "demo",
                          "staging",
                          "real-money"
                        ]
                      },
                      "environmentId": {
                        "type": "string",
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9_.:-]{0,127}$"
                      },
                      "reason": {
                        "type": "string",
                        "minLength": 10,
                        "maxLength": 1024
                      }
                    },
                    "required": [
                      "target",
                      "operatorId",
                      "previousPolicyId",
                      "gameVersionId",
                      "brandId",
                      "marketId",
                      "currency",
                      "selectionSha256",
                      "available",
                      "profile",
                      "environmentId",
                      "reason"
                    ],
                    "additionalProperties": false
                  },
                  "expiresInSeconds": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 900
                  }
                },
                "required": [
                  "confirm",
                  "expiresInSeconds"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:878"
      }
    },
    "/operator/v1/obligation-age/policies/{policyId}/approve": {
      "post": {
        "operationId": "post_operator_v1_obligation_age_policies_policyId_approve",
        "tags": [
          "Policies"
        ],
        "summary": "Approve an obligation-age policy request (checker)",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_ObligationAgePolicyResult"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: OBLIGATION_AGE_POLICY_CONFLICT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "OBLIGATION_AGE_POLICY_CONFLICT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reconciliation",
        "x-registration-condition": "operatorAuth",
        "parameters": [
          {
            "name": "policyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "confirm": {
                    "type": "object",
                    "properties": {
                      "target": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "operatorId": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "previousPolicyId": {
                        "anyOf": [
                          {
                            "type": "string",
                            "format": "uuid"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "unit": {
                        "type": "string",
                        "const": "milliseconds"
                      },
                      "pendingDebitMs": {
                        "type": "integer",
                        "minimum": 90000,
                        "maximum": 2147483647
                      },
                      "owedCreditMs": {
                        "type": "integer",
                        "minimum": 90000,
                        "maximum": 2147483647
                      },
                      "profile": {
                        "type": "string",
                        "enum": [
                          "dev",
                          "demo",
                          "staging",
                          "real-money"
                        ]
                      },
                      "environmentId": {
                        "type": "string",
                        "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
                      },
                      "reason": {
                        "type": "string",
                        "minLength": 10,
                        "maxLength": 1024
                      }
                    },
                    "required": [
                      "target",
                      "operatorId",
                      "previousPolicyId",
                      "unit",
                      "pendingDebitMs",
                      "owedCreditMs",
                      "profile",
                      "environmentId",
                      "reason"
                    ],
                    "additionalProperties": false
                  }
                },
                "required": [
                  "confirm"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:923"
      }
    },
    "/operator/v1/obligation-age/policies/{policyId}/requests": {
      "post": {
        "operationId": "post_operator_v1_obligation_age_policies_policyId_requests",
        "tags": [
          "Policies"
        ],
        "summary": "Request an obligation-age policy (maker)",
        "responses": {
          "201": {
            "description": "Created.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_ObligationAgePolicyResult"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: OBLIGATION_AGE_POLICY_CONFLICT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "OBLIGATION_AGE_POLICY_CONFLICT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reconciliation",
        "x-registration-condition": "operatorAuth",
        "parameters": [
          {
            "name": "policyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "confirm": {
                    "type": "object",
                    "properties": {
                      "target": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "operatorId": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "previousPolicyId": {
                        "anyOf": [
                          {
                            "type": "string",
                            "format": "uuid"
                          },
                          {
                            "type": "null"
                          }
                        ]
                      },
                      "unit": {
                        "type": "string",
                        "const": "milliseconds"
                      },
                      "pendingDebitMs": {
                        "type": "integer",
                        "minimum": 90000,
                        "maximum": 2147483647
                      },
                      "owedCreditMs": {
                        "type": "integer",
                        "minimum": 90000,
                        "maximum": 2147483647
                      },
                      "profile": {
                        "type": "string",
                        "enum": [
                          "dev",
                          "demo",
                          "staging",
                          "real-money"
                        ]
                      },
                      "environmentId": {
                        "type": "string",
                        "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
                      },
                      "reason": {
                        "type": "string",
                        "minLength": 10,
                        "maxLength": 1024
                      }
                    },
                    "required": [
                      "target",
                      "operatorId",
                      "previousPolicyId",
                      "unit",
                      "pendingDebitMs",
                      "owedCreditMs",
                      "profile",
                      "environmentId",
                      "reason"
                    ],
                    "additionalProperties": false
                  },
                  "expiresInSeconds": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 900
                  }
                },
                "required": [
                  "confirm",
                  "expiresInSeconds"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:915"
      }
    },
    "/operator/v1/reconciliation/cases/{caseId}/reopen": {
      "post": {
        "operationId": "post_operator_v1_reconciliation_cases_caseId_reopen",
        "tags": [
          "Reconciliation"
        ],
        "summary": "Reopen a reconciliation case's resolution intent",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "accountId": {
                      "type": "string"
                    },
                    "playerId": {
                      "type": "string"
                    },
                    "currency": {
                      "type": "string"
                    },
                    "storedBalance": {
                      "type": "number"
                    },
                    "ledgerBalance": {
                      "type": "number"
                    },
                    "delta": {
                      "type": "number"
                    },
                    "status": {
                      "type": "string"
                    },
                    "reasonCode": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "string"
                        }
                      ]
                    },
                    "resolutionNote": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "string"
                        }
                      ]
                    },
                    "ledgerEntryId": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "string"
                        }
                      ]
                    }
                  },
                  "required": [
                    "id",
                    "accountId",
                    "playerId",
                    "currency",
                    "storedBalance",
                    "ledgerBalance",
                    "delta",
                    "status",
                    "reasonCode",
                    "resolutionNote",
                    "ledgerEntryId"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: WALLET_RESOURCE_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "WALLET_RESOURCE_NOT_FOUND"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: RECONCILIATION_CONFLICT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RECONCILIATION_CONFLICT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reconciliation",
        "x-registration-condition": "operatorAuth and dependencies.wallet",
        "parameters": [
          {
            "name": "caseId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "confirm": {
                    "type": "object",
                    "properties": {
                      "target": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "amount": {
                        "type": "integer",
                        "minimum": 1,
                        "maximum": 9007199254740991
                      },
                      "direction": {
                        "type": "string",
                        "enum": [
                          "credit",
                          "debit"
                        ]
                      },
                      "currency": {
                        "type": "string",
                        "pattern": "^[A-Z]{3}$"
                      },
                      "profile": {
                        "type": "string",
                        "enum": [
                          "dev",
                          "demo",
                          "staging",
                          "real-money"
                        ]
                      },
                      "environmentId": {
                        "type": "string",
                        "pattern": "^[a-zA-Z0-9][a-zA-Z0-9._-]{0,127}$"
                      }
                    },
                    "required": [
                      "target",
                      "amount",
                      "direction",
                      "currency",
                      "profile",
                      "environmentId"
                    ],
                    "additionalProperties": false
                  },
                  "note": {
                    "type": "string",
                    "minLength": 10,
                    "maxLength": 2048
                  }
                },
                "required": [
                  "confirm",
                  "note"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:1622"
      }
    },
    "/operator/v1/reconciliation/operation-statements": {
      "post": {
        "operationId": "post_operator_v1_reconciliation_operation_statements",
        "tags": [
          "Reconciliation"
        ],
        "summary": "Submit an operation statement (201 ingested, 200 duplicate)",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "duplicate": {
                      "type": "boolean"
                    },
                    "report": {
                      "$ref": "#/components/schemas/D_OperationStatementReport"
                    }
                  },
                  "required": [
                    "id",
                    "duplicate",
                    "report"
                  ]
                }
              }
            }
          },
          "201": {
            "description": "Created.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "duplicate": {
                      "type": "boolean"
                    },
                    "report": {
                      "$ref": "#/components/schemas/D_OperationStatementReport"
                    }
                  },
                  "required": [
                    "id",
                    "duplicate",
                    "report"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: OPERATION_STATEMENT_CONFLICT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "OPERATION_STATEMENT_CONFLICT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reconciliation",
        "x-registration-condition": "operatorAuth and dependencies.wallet",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "keyId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  },
                  "expectedOperationIds": {
                    "minItems": 1,
                    "maxItems": 256,
                    "type": "array",
                    "items": {
                      "type": "string",
                      "format": "uuid"
                    }
                  },
                  "signature": {
                    "type": "string",
                    "pattern": "^[A-Za-z0-9_-]{86}$"
                  },
                  "bodyBase64": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 349528
                  }
                },
                "required": [
                  "keyId",
                  "expectedOperationIds",
                  "signature",
                  "bodyBase64"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:1586"
      }
    },
    "/operator/v1/reconciliation/operation-statements/{id}": {
      "get": {
        "operationId": "get_operator_v1_reconciliation_operation_statements_id",
        "tags": [
          "Reconciliation"
        ],
        "summary": "Operation statement ingestion result",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "report": {
                      "$ref": "#/components/schemas/D_OperationStatementReport"
                    }
                  },
                  "required": [
                    "id",
                    "report"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "const": "NOT_FOUND"
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reconciliation",
        "x-registration-condition": "operatorAuth and dependencies.wallet",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1594"
      }
    },
    "/operator/v1/responsible-gaming/time-out": {
      "post": {
        "operationId": "post_operator_v1_responsible_gaming_time_out",
        "tags": [
          "Responsible gaming"
        ],
        "summary": "Time-out on the player's request, on every account of the player",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_ResponsibleGamingLimits"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: RESPONSIBLE_GAMING_ACCOUNT_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RESPONSIBLE_GAMING_ACCOUNT_NOT_FOUND"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "responsible-gaming",
        "x-registration-condition": "operatorAuth and dependencies.responsibleGaming",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "playerId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 256
                  },
                  "period": {
                    "type": "string",
                    "enum": [
                      "24h",
                      "7d",
                      "30d",
                      "42d"
                    ]
                  }
                },
                "required": [
                  "playerId",
                  "period"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:1401"
      }
    },
    "/operator/v1/rounds/{roundId}/drawn-review": {
      "get": {
        "operationId": "get_operator_v1_rounds_roundId_drawn_review",
        "tags": [
          "Reconciliation"
        ],
        "summary": "Preview a drawn round's review",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "confirm": {
                      "anyOf": [
                        {
                          "type": "object",
                          "properties": {
                            "roundId": {
                              "type": "string"
                            },
                            "payout": {
                              "type": "number"
                            },
                            "currency": {
                              "type": "string"
                            },
                            "evidenceSha256": {
                              "type": "string"
                            },
                            "profile": {
                              "type": "string",
                              "enum": [
                                "dev",
                                "demo",
                                "staging",
                                "real-money"
                              ]
                            },
                            "environmentId": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "roundId",
                            "payout",
                            "currency",
                            "evidenceSha256",
                            "profile",
                            "environmentId"
                          ]
                        },
                        {
                          "type": "object",
                          "properties": {
                            "roundId": {
                              "type": "string"
                            },
                            "currency": {
                              "type": "string"
                            },
                            "evidenceSha256": {
                              "type": "string"
                            },
                            "profile": {
                              "type": "string",
                              "enum": [
                                "dev",
                                "demo",
                                "staging",
                                "real-money"
                              ]
                            },
                            "environmentId": {
                              "type": "string"
                            },
                            "kind": {
                              "type": "string",
                              "const": "void-uncaptured"
                            },
                            "payout": {
                              "type": "null"
                            },
                            "refund": {
                              "type": "number"
                            }
                          },
                          "required": [
                            "roundId",
                            "currency",
                            "evidenceSha256",
                            "profile",
                            "environmentId",
                            "kind",
                            "payout",
                            "refund"
                          ]
                        }
                      ]
                    }
                  },
                  "required": [
                    "confirm"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: WAGER_NOT_ALLOWED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "WAGER_NOT_ALLOWED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: ROUND_CONFLICT.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "error": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "error",
                        "message"
                      ]
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "ROUND_CONFLICT"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reconciliation",
        "x-registration-condition": "operatorAuth and dependencies.rounds",
        "parameters": [
          {
            "name": "roundId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1654"
      }
    },
    "/operator/v1/rounds/{roundId}/drawn-review/resolution-approvals/{intentId}": {
      "post": {
        "operationId": "post_operator_v1_rounds_roundId_drawn_review_resolution_approvals_intentId",
        "tags": [
          "Reconciliation"
        ],
        "summary": "Approve a drawn round's resolution (checker)",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "$ref": "#/components/schemas/D_RoundResult"
                    },
                    {
                      "$ref": "#/components/schemas/D_VoidedRound"
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: WAGER_NOT_ALLOWED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "WAGER_NOT_ALLOWED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: JACKPOT_UNAVAILABLE, ROUND_CONFLICT.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "error": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "error",
                        "message"
                      ]
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "JACKPOT_UNAVAILABLE",
                            "ROUND_CONFLICT"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "422": {
            "description": "Not processable. Error codes: INSUFFICIENT_FUNDS.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INSUFFICIENT_FUNDS"
                      ]
                    }
                  }
                }
              }
            }
          },
          "423": {
            "description": "Locked by responsible gaming. Error codes: RESPONSIBLE_GAMING_LIMIT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RESPONSIBLE_GAMING_LIMIT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reconciliation",
        "x-registration-condition": "operatorAuth and dependencies.rounds",
        "parameters": [
          {
            "name": "roundId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "intentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "confirm": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "roundId": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "payout": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "currency": {
                            "type": "string",
                            "pattern": "^[A-Z]{3}$"
                          },
                          "evidenceSha256": {
                            "type": "string",
                            "pattern": "^[a-f0-9]{64}$"
                          },
                          "profile": {
                            "type": "string",
                            "enum": [
                              "dev",
                              "demo",
                              "staging",
                              "real-money"
                            ]
                          },
                          "environmentId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 128
                          }
                        },
                        "required": [
                          "roundId",
                          "payout",
                          "currency",
                          "evidenceSha256",
                          "profile",
                          "environmentId"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "roundId": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "payout": {
                            "type": "null"
                          },
                          "currency": {
                            "type": "string",
                            "pattern": "^[A-Z]{3}$"
                          },
                          "evidenceSha256": {
                            "type": "string",
                            "pattern": "^[a-f0-9]{64}$"
                          },
                          "profile": {
                            "type": "string",
                            "enum": [
                              "dev",
                              "demo",
                              "staging",
                              "real-money"
                            ]
                          },
                          "environmentId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 128
                          },
                          "kind": {
                            "type": "string",
                            "const": "void-uncaptured"
                          },
                          "refund": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          }
                        },
                        "required": [
                          "roundId",
                          "payout",
                          "currency",
                          "evidenceSha256",
                          "profile",
                          "environmentId",
                          "kind",
                          "refund"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  }
                },
                "required": [
                  "confirm"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:1668"
      }
    },
    "/operator/v1/rounds/{roundId}/drawn-review/resolution-requests": {
      "post": {
        "operationId": "post_operator_v1_rounds_roundId_drawn_review_resolution_requests",
        "tags": [
          "Reconciliation"
        ],
        "summary": "Request a drawn round's resolution (maker)",
        "responses": {
          "201": {
            "description": "Created.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "intentId": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "intentId"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or non-exact Bearer prefix: AUTHENTICATION_FAILED. Rejected operator token, operator state or scope: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": false,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED",
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: WAGER_NOT_ALLOWED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "WAGER_NOT_ALLOWED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: ROUND_CONFLICT.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "error": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "error",
                        "message"
                      ]
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "ROUND_CONFLICT"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "OperatorBearer": []
          }
        ],
        "x-operator-scope": "reconciliation",
        "x-registration-condition": "operatorAuth and dependencies.rounds",
        "parameters": [
          {
            "name": "roundId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "confirm": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "roundId": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "payout": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          },
                          "currency": {
                            "type": "string",
                            "pattern": "^[A-Z]{3}$"
                          },
                          "evidenceSha256": {
                            "type": "string",
                            "pattern": "^[a-f0-9]{64}$"
                          },
                          "profile": {
                            "type": "string",
                            "enum": [
                              "dev",
                              "demo",
                              "staging",
                              "real-money"
                            ]
                          },
                          "environmentId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 128
                          }
                        },
                        "required": [
                          "roundId",
                          "payout",
                          "currency",
                          "evidenceSha256",
                          "profile",
                          "environmentId"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "roundId": {
                            "type": "string",
                            "format": "uuid"
                          },
                          "payout": {
                            "type": "null"
                          },
                          "currency": {
                            "type": "string",
                            "pattern": "^[A-Z]{3}$"
                          },
                          "evidenceSha256": {
                            "type": "string",
                            "pattern": "^[a-f0-9]{64}$"
                          },
                          "profile": {
                            "type": "string",
                            "enum": [
                              "dev",
                              "demo",
                              "staging",
                              "real-money"
                            ]
                          },
                          "environmentId": {
                            "type": "string",
                            "minLength": 1,
                            "maxLength": 128
                          },
                          "kind": {
                            "type": "string",
                            "const": "void-uncaptured"
                          },
                          "refund": {
                            "type": "integer",
                            "minimum": 0,
                            "maximum": 9007199254740991
                          }
                        },
                        "required": [
                          "roundId",
                          "payout",
                          "currency",
                          "evidenceSha256",
                          "profile",
                          "environmentId",
                          "kind",
                          "refund"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  },
                  "note": {
                    "type": "string",
                    "minLength": 10,
                    "maxLength": 2048
                  },
                  "expiresInSeconds": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 900
                  }
                },
                "required": [
                  "confirm",
                  "note",
                  "expiresInSeconds"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:1660"
      }
    },
    "/ops/v1/alerts": {
      "post": {
        "operationId": "post_ops_v1_alerts",
        "tags": [
          "Operations"
        ],
        "summary": "Alertmanager webhook intake (version 4) for the console's platform alerts",
        "description": "The bearer secret is checked before the body is read; the proxy does not forward /ops/.",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "received": {
                      "type": "number"
                    },
                    "stored": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "received",
                    "stored"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "const": "INVALID_ALERT_PAYLOAD"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "error",
                    "message"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "const": "ALERT_INTAKE_UNAUTHORIZED"
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "version",
                  "alerts"
                ],
                "additionalProperties": true,
                "description": "Alertmanager webhook version 4 within PLATFORM_ALERT_LIMITS (packages/core/src/platform-alerts.ts); read by parseAlertmanagerWebhook (apps/rgs/src/alertmanager-webhook.ts).",
                "properties": {
                  "version": {
                    "type": "string",
                    "const": "4"
                  },
                  "alerts": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "fingerprint",
                        "status",
                        "labels",
                        "startsAt"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "fingerprint": {
                          "type": "string",
                          "pattern": "^[0-9a-f]{16}$"
                        },
                        "status": {
                          "type": "string",
                          "enum": [
                            "firing",
                            "resolved"
                          ]
                        },
                        "labels": {
                          "type": "object",
                          "required": [
                            "alertname"
                          ],
                          "additionalProperties": {
                            "type": "string"
                          }
                        },
                        "annotations": {
                          "type": "object",
                          "additionalProperties": {
                            "type": "string"
                          }
                        },
                        "startsAt": {
                          "type": "string",
                          "description": "RFC 3339 time"
                        },
                        "endsAt": {
                          "type": "string",
                          "description": "RFC 3339 time"
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "AlertIntakeBearer": []
          }
        ],
        "x-registration-condition": "operatorAuth and dependencies.platformAlerts && dependencies.alertIntakeTokenSha256",
        "x-source": "apps/rgs/src/app.ts:1288"
      }
    },
    "/tequity/launch/real": {
      "get": {
        "operationId": "get_tequity_launch_real",
        "tags": [
          "Tequity adapter"
        ],
        "summary": "Tequity launcher: 303 redirect to the game",
        "description": "No authorisation here: the wallet authenticates its one-time key. Tequity's own errors are answered by the adapter (TEQUITY_* codes).",
        "responses": {
          "303": {
            "description": "Redirect (See Other).",
            "headers": {
              "Location": {
                "description": "Where the client goes next",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [],
        "x-auth": "None here; the wallet authenticates the one-time key",
        "x-registration-condition": "a Tequity adapter",
        "parameters": [
          {
            "name": "wallet",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9][a-z0-9_-]{0,63}$"
            }
          },
          {
            "name": "operator",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            }
          },
          {
            "name": "game",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9][a-z0-9_-]{0,63}$"
            }
          },
          {
            "name": "key",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[a-z]{3}$"
            }
          },
          {
            "name": "language",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[a-z]{2}(?:-[A-Z]{2})?$"
            }
          },
          {
            "name": "depositUrl",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 2048
            }
          },
          {
            "name": "refreshUrl",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 2048
            }
          },
          {
            "name": "lobbyUrl",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 2048
            }
          },
          {
            "name": "exitTarget",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "self",
                "parent"
              ]
            }
          },
          {
            "name": "theme",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            }
          }
        ],
        "x-source": "packages/adapters/tequity/src/tequity-routes.ts:126"
      },
      "post": {
        "operationId": "post_tequity_launch_real",
        "tags": [
          "Tequity adapter"
        ],
        "summary": "Tequity launcher (fields in the body or the query): 303 redirect to the game",
        "description": "No authorisation here: the wallet authenticates its one-time key. Tequity's own errors are answered by the adapter (TEQUITY_* codes).",
        "responses": {
          "303": {
            "description": "Redirect (See Other).",
            "headers": {
              "Location": {
                "description": "Where the client goes next",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [],
        "x-auth": "None here; the wallet authenticates the one-time key",
        "x-registration-condition": "a Tequity adapter",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "wallet": {
                    "type": "string",
                    "pattern": "^[a-z0-9][a-z0-9_-]{0,63}$"
                  },
                  "operator": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  },
                  "game": {
                    "type": "string",
                    "pattern": "^[a-z0-9][a-z0-9_-]{0,63}$"
                  },
                  "key": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 512
                  },
                  "currency": {
                    "type": "string",
                    "pattern": "^[a-z]{3}$"
                  },
                  "language": {
                    "type": "string",
                    "pattern": "^[a-z]{2}(?:-[A-Z]{2})?$"
                  },
                  "depositUrl": {
                    "type": "string",
                    "maxLength": 2048
                  },
                  "refreshUrl": {
                    "type": "string",
                    "maxLength": 2048
                  },
                  "lobbyUrl": {
                    "type": "string",
                    "maxLength": 2048
                  },
                  "exitTarget": {
                    "type": "string",
                    "enum": [
                      "self",
                      "parent"
                    ]
                  },
                  "theme": {
                    "type": "string",
                    "maxLength": 64
                  }
                },
                "required": [
                  "wallet",
                  "operator",
                  "game",
                  "key"
                ],
                "additionalProperties": false
              }
            }
          },
          "description": "The same fields may come in the query string; body fields win."
        },
        "x-source": "packages/adapters/tequity/src/tequity-routes.ts:126"
      }
    },
    "/tequity/wallet/{wallet}/freeBets/add": {
      "post": {
        "operationId": "post_tequity_wallet_wallet_freeBets_add",
        "tags": [
          "Tequity adapter"
        ],
        "summary": "Tequity free bets: add a campaign for players",
        "description": "x-server-authorization signs the raw body with the wallet's secret; the wallet's operator key needs the campaigns scope.",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "success"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: FREE_ROUNDS_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "FREE_ROUNDS_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "walletCampaignId",
                  "games",
                  "nativeIds",
                  "bets",
                  "amount",
                  "currency",
                  "operator",
                  "brand"
                ],
                "properties": {
                  "walletCampaignId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  },
                  "games": {
                    "type": "array",
                    "minItems": 1,
                    "maxItems": 64,
                    "items": {
                      "type": "string",
                      "pattern": "^[a-z0-9][a-z0-9_-]{0,63}$"
                    }
                  },
                  "nativeIds": {
                    "type": "array",
                    "minItems": 1,
                    "maxItems": 1000,
                    "items": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 256
                    }
                  },
                  "start": {
                    "type": "integer",
                    "exclusiveMinimum": 0
                  },
                  "end": {
                    "type": "integer",
                    "exclusiveMinimum": 0
                  },
                  "bets": {
                    "type": "integer",
                    "exclusiveMinimum": 0,
                    "maximum": 10000
                  },
                  "amount": {
                    "type": "number",
                    "exclusiveMinimum": 0
                  },
                  "currency": {
                    "type": "string",
                    "pattern": "^[a-z]{3}$"
                  },
                  "operator": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  },
                  "brand": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "TequitySignature": []
          }
        ],
        "x-registration-condition": "a Tequity adapter",
        "parameters": [
          {
            "name": "wallet",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9][a-z0-9_-]{0,63}$"
            }
          }
        ],
        "x-source": "packages/adapters/tequity/src/tequity-routes.ts:77"
      }
    },
    "/tequity/wallet/{wallet}/freeBets/availableBets": {
      "post": {
        "operationId": "post_tequity_wallet_wallet_freeBets_availableBets",
        "tags": [
          "Tequity adapter"
        ],
        "summary": "Tequity free bets: available bet amounts per game and currency",
        "description": "x-server-authorization signs the raw body with the wallet's secret; the wallet's operator key needs the campaigns scope.",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_Record_string_Record_string_number"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: FREE_ROUNDS_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "FREE_ROUNDS_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "games",
                  "currencies",
                  "operator",
                  "brand"
                ],
                "properties": {
                  "games": {
                    "type": "array",
                    "minItems": 1,
                    "maxItems": 64,
                    "items": {
                      "type": "string",
                      "pattern": "^[a-z0-9][a-z0-9_-]{0,63}$"
                    }
                  },
                  "currencies": {
                    "type": "array",
                    "minItems": 1,
                    "maxItems": 16,
                    "items": {
                      "type": "string",
                      "pattern": "^[a-z]{3}$"
                    }
                  },
                  "operator": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  },
                  "brand": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "TequitySignature": []
          }
        ],
        "x-registration-condition": "a Tequity adapter",
        "parameters": [
          {
            "name": "wallet",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9][a-z0-9_-]{0,63}$"
            }
          }
        ],
        "x-source": "packages/adapters/tequity/src/tequity-routes.ts:96"
      }
    },
    "/tequity/wallet/{wallet}/freeBets/remove": {
      "post": {
        "operationId": "post_tequity_wallet_wallet_freeBets_remove",
        "tags": [
          "Tequity adapter"
        ],
        "summary": "Tequity free bets: remove a campaign",
        "description": "x-server-authorization signs the raw body with the wallet's secret; the wallet's operator key needs the campaigns scope.",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "success": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "success"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: OPERATOR_AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "OPERATOR_AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: FREE_ROUNDS_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "FREE_ROUNDS_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "walletCampaignId",
                  "games",
                  "operator",
                  "brand"
                ],
                "properties": {
                  "walletCampaignId": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  },
                  "games": {
                    "type": "array",
                    "minItems": 1,
                    "maxItems": 64,
                    "items": {
                      "type": "string",
                      "pattern": "^[a-z0-9][a-z0-9_-]{0,63}$"
                    }
                  },
                  "operator": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  },
                  "brand": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "TequitySignature": []
          }
        ],
        "x-registration-condition": "a Tequity adapter",
        "parameters": [
          {
            "name": "wallet",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9][a-z0-9_-]{0,63}$"
            }
          }
        ],
        "x-source": "packages/adapters/tequity/src/tequity-routes.ts:89"
      }
    },
    "/tequity/wallet/{wallet}/launch/real": {
      "get": {
        "operationId": "get_tequity_wallet_wallet_launch_real",
        "tags": [
          "Tequity adapter"
        ],
        "summary": "Tequity launcher for one wallet: answers the game URL",
        "description": "No authorisation here: the wallet authenticates its one-time key. Tequity's own errors are answered by the adapter (TEQUITY_* codes).",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "url": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "url"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [],
        "x-auth": "None here; the wallet authenticates the one-time key",
        "x-registration-condition": "a Tequity adapter",
        "parameters": [
          {
            "name": "operator",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            }
          },
          {
            "name": "game",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[a-z0-9][a-z0-9_-]{0,63}$"
            }
          },
          {
            "name": "key",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512
            }
          },
          {
            "name": "currency",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[a-z]{3}$"
            }
          },
          {
            "name": "language",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^[a-z]{2}(?:-[A-Z]{2})?$"
            }
          },
          {
            "name": "depositUrl",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 2048
            }
          },
          {
            "name": "refreshUrl",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 2048
            }
          },
          {
            "name": "lobbyUrl",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 2048
            }
          },
          {
            "name": "exitTarget",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "self",
                "parent"
              ]
            }
          },
          {
            "name": "theme",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 64
            }
          },
          {
            "name": "wallet",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "x-source": "packages/adapters/tequity/src/tequity-routes.ts:127"
      },
      "post": {
        "operationId": "post_tequity_wallet_wallet_launch_real",
        "tags": [
          "Tequity adapter"
        ],
        "summary": "Tequity launcher for one wallet (fields in the body or the query): answers the game URL",
        "description": "No authorisation here: the wallet authenticates its one-time key. Tequity's own errors are answered by the adapter (TEQUITY_* codes).",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "url": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "url"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [],
        "x-auth": "None here; the wallet authenticates the one-time key",
        "x-registration-condition": "a Tequity adapter",
        "parameters": [
          {
            "name": "wallet",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "operator": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 128
                  },
                  "game": {
                    "type": "string",
                    "pattern": "^[a-z0-9][a-z0-9_-]{0,63}$"
                  },
                  "key": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 512
                  },
                  "currency": {
                    "type": "string",
                    "pattern": "^[a-z]{3}$"
                  },
                  "language": {
                    "type": "string",
                    "pattern": "^[a-z]{2}(?:-[A-Z]{2})?$"
                  },
                  "depositUrl": {
                    "type": "string",
                    "maxLength": 2048
                  },
                  "refreshUrl": {
                    "type": "string",
                    "maxLength": 2048
                  },
                  "lobbyUrl": {
                    "type": "string",
                    "maxLength": 2048
                  },
                  "exitTarget": {
                    "type": "string",
                    "enum": [
                      "self",
                      "parent"
                    ]
                  },
                  "theme": {
                    "type": "string",
                    "maxLength": 64
                  }
                },
                "required": [
                  "operator",
                  "game",
                  "key"
                ],
                "additionalProperties": false
              }
            }
          },
          "description": "The same fields may come in the query string; body fields win."
        },
        "x-source": "packages/adapters/tequity/src/tequity-routes.ts:127"
      }
    },
    "/v1/engagement/tournaments/{id}/leaderboard": {
      "get": {
        "operationId": "get_v1_engagement_tournaments_id_leaderboard",
        "tags": [
          "Tournaments"
        ],
        "summary": "Tournament leaderboard for the session's player",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "entries": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/D_QueryResultRow"
                      }
                    }
                  },
                  "required": [
                    "entries"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: ENGAGEMENT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "ENGAGEMENT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [],
        "x-auth": "None",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "default": 20,
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:808"
      }
    },
    "/v1/engagement/tournaments/{id}/participation": {
      "post": {
        "operationId": "post_v1_engagement_tournaments_id_participation",
        "tags": [
          "Tournaments"
        ],
        "summary": "Opt in to, or acknowledge, a tournament",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "action": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "id",
                    "action"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: ENGAGEMENT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "ENGAGEMENT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [],
        "x-auth": "None",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "action": {
                    "type": "string",
                    "enum": [
                      "opt-in",
                      "acknowledge"
                    ]
                  }
                },
                "required": [
                  "action"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:802"
      }
    },
    "/v1/fair/commitment": {
      "post": {
        "operationId": "post_v1_fair_commitment",
        "tags": [
          "Client"
        ],
        "summary": "Provably fair: the player's open commitment for the next one-shot round",
        "description": "The SHA-256 of a sealed server seed with its drawId and nonce (protocol 23rgs-fair-v1), only where the operator enabled the default-off provably-fair module. Keep this answer and the client seed you send with the play (fairCommitment): tools/fair-verify.ts checks the round's proof against them. The same commitment is answered until a round claims it, and every fair play answer carries the next one (nextFairCommitment). 409 PROVABLY_FAIR_UNSUPPORTED while signed issuance is required or rng-v2 is enabled; the commitment stays open.",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_FairCommitment"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request; endpoint validation and exact representation rules apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, PROVABLY_FAIR_STOPPED, RNG_NOT_READY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "PROVABLY_FAIR_STOPPED",
                        "RNG_NOT_READY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "SessionBearer": []
          }
        ],
        "x-registration-condition": "rounds",
        "x-source": "apps/rgs/src/app.ts:1904"
      }
    },
    "/v1/free-rounds": {
      "get": {
        "operationId": "get_v1_free_rounds",
        "tags": [
          "Free rounds"
        ],
        "summary": "The session player's free-round inventory, paged",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "grants": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "properties": {
                          "id": {
                            "type": "string"
                          },
                          "remaining": {
                            "type": "number"
                          },
                          "campaignId": {
                            "type": "string"
                          },
                          "gameVersionId": {
                            "type": "string"
                          },
                          "currency": {
                            "type": "string"
                          },
                          "amount": {
                            "type": "string"
                          },
                          "payoutCategory": {
                            "type": "string"
                          },
                          "action": {
                            "type": "string"
                          },
                          "endsAt": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "id",
                          "remaining",
                          "campaignId",
                          "gameVersionId",
                          "currency",
                          "amount",
                          "payoutCategory",
                          "action",
                          "endsAt"
                        ]
                      }
                    },
                    "nextCursor": {
                      "anyOf": [
                        {
                          "type": "null"
                        },
                        {
                          "type": "string"
                        }
                      ]
                    }
                  },
                  "required": [
                    "grants",
                    "nextCursor"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited. Error codes: RATE_LIMITED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RATE_LIMITED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY, RATE_LIMIT_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY",
                        "RATE_LIMIT_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [],
        "x-auth": "None",
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "default": 20,
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:815"
      }
    },
    "/v1/interactive/rounds/{id}/replay": {
      "get": {
        "operationId": "get_v1_interactive_rounds_id_replay",
        "tags": [
          "Client"
        ],
        "summary": "Replay and verify an interactive round",
        "description": "409 carries the replay when verification finds a mismatch; 503 carries it when verification is unavailable for a reason other than no-actions.",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "roundId": {
                      "type": "string"
                    },
                    "verification": {
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "string",
                          "enum": [
                            "unavailable",
                            "mismatch",
                            "matched"
                          ]
                        },
                        "reason": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "string",
                              "enum": [
                                "invalid-snapshot",
                                "runtime-identity",
                                "runtime-missing",
                                "no-actions",
                                "transcript",
                                "outcome",
                                "invalid-result",
                                "runtime-failed",
                                "final-snapshot",
                                "invalid-identity",
                                "custody-invalid",
                                "catalog-binding",
                                "authority-unavailable",
                                "evidence-unsupported",
                                "rng-key-unavailable",
                                "persistent-state"
                              ]
                            }
                          ]
                        },
                        "game": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "string"
                                }
                              ]
                            },
                            "version": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "required": [
                            "code",
                            "version"
                          ]
                        },
                        "verifiedReceipts": {
                          "type": "number"
                        },
                        "sequence": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "number"
                            }
                          ]
                        },
                        "complete": {
                          "type": "boolean"
                        },
                        "firstFailingSequence": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "number"
                            }
                          ]
                        }
                      },
                      "required": [
                        "status",
                        "reason",
                        "game",
                        "verifiedReceipts",
                        "sequence",
                        "complete",
                        "firstFailingSequence"
                      ]
                    }
                  },
                  "required": [
                    "roundId",
                    "verification"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: WAGER_NOT_ALLOWED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "WAGER_NOT_ALLOWED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: INTERACTIVE_EXECUTION_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INTERACTIVE_EXECUTION_NOT_FOUND"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "roundId": {
                      "type": "string"
                    },
                    "verification": {
                      "type": "object",
                      "properties": {
                        "status": {
                          "type": "string",
                          "enum": [
                            "unavailable",
                            "mismatch",
                            "matched"
                          ]
                        },
                        "reason": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "string",
                              "enum": [
                                "invalid-snapshot",
                                "runtime-identity",
                                "runtime-missing",
                                "no-actions",
                                "transcript",
                                "outcome",
                                "invalid-result",
                                "runtime-failed",
                                "final-snapshot",
                                "invalid-identity",
                                "custody-invalid",
                                "catalog-binding",
                                "authority-unavailable",
                                "evidence-unsupported",
                                "rng-key-unavailable",
                                "persistent-state"
                              ]
                            }
                          ]
                        },
                        "game": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "string"
                                }
                              ]
                            },
                            "version": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "string"
                                }
                              ]
                            }
                          },
                          "required": [
                            "code",
                            "version"
                          ]
                        },
                        "verifiedReceipts": {
                          "type": "number"
                        },
                        "sequence": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "number"
                            }
                          ]
                        },
                        "complete": {
                          "type": "boolean"
                        },
                        "firstFailingSequence": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "number"
                            }
                          ]
                        }
                      },
                      "required": [
                        "status",
                        "reason",
                        "game",
                        "verifiedReceipts",
                        "sequence",
                        "complete",
                        "firstFailingSequence"
                      ]
                    }
                  },
                  "required": [
                    "roundId",
                    "verification"
                  ]
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: INTERACTIVE_RUNTIME_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "roundId": {
                          "type": "string"
                        },
                        "verification": {
                          "type": "object",
                          "properties": {
                            "status": {
                              "type": "string",
                              "enum": [
                                "unavailable",
                                "mismatch",
                                "matched"
                              ]
                            },
                            "reason": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "string",
                                  "enum": [
                                    "invalid-snapshot",
                                    "runtime-identity",
                                    "runtime-missing",
                                    "no-actions",
                                    "transcript",
                                    "outcome",
                                    "invalid-result",
                                    "runtime-failed",
                                    "final-snapshot",
                                    "invalid-identity",
                                    "custody-invalid",
                                    "catalog-binding",
                                    "authority-unavailable",
                                    "evidence-unsupported",
                                    "rng-key-unavailable",
                                    "persistent-state"
                                  ]
                                }
                              ]
                            },
                            "game": {
                              "type": "object",
                              "properties": {
                                "code": {
                                  "anyOf": [
                                    {
                                      "type": "null"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                },
                                "version": {
                                  "anyOf": [
                                    {
                                      "type": "null"
                                    },
                                    {
                                      "type": "string"
                                    }
                                  ]
                                }
                              },
                              "required": [
                                "code",
                                "version"
                              ]
                            },
                            "verifiedReceipts": {
                              "type": "number"
                            },
                            "sequence": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "number"
                                }
                              ]
                            },
                            "complete": {
                              "type": "boolean"
                            },
                            "firstFailingSequence": {
                              "anyOf": [
                                {
                                  "type": "null"
                                },
                                {
                                  "type": "number"
                                }
                              ]
                            }
                          },
                          "required": [
                            "status",
                            "reason",
                            "game",
                            "verifiedReceipts",
                            "sequence",
                            "complete",
                            "firstFailingSequence"
                          ]
                        }
                      },
                      "required": [
                        "roundId",
                        "verification"
                      ]
                    },
                    {
                      "type": "object",
                      "required": [
                        "error"
                      ],
                      "additionalProperties": true,
                      "properties": {
                        "error": {
                          "type": "string",
                          "enum": [
                            "INTERACTIVE_RUNTIME_UNAVAILABLE"
                          ]
                        }
                      }
                    }
                  ]
                }
              }
            }
          }
        },
        "security": [
          {
            "SessionBearer": []
          }
        ],
        "x-registration-condition": "dependencies.interactive",
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1789"
      }
    },
    "/v1/jackpots/{poolId}": {
      "get": {
        "operationId": "get_v1_jackpots_poolId",
        "tags": [
          "Jackpots"
        ],
        "summary": "Public jackpot display (no credential)",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_Record_string_unknown"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "string",
                      "const": "JACKPOT_NOT_FOUND"
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [],
        "x-auth": "None",
        "parameters": [
          {
            "name": "poolId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:822"
      }
    },
    "/v1/responsible-gaming/time-out": {
      "post": {
        "operationId": "post_v1_responsible_gaming_time_out",
        "tags": [
          "Responsible gaming"
        ],
        "summary": "Player time-out for a fixed period on every account of the player; it ends this session",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_ResponsibleGamingLimits"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: RESPONSIBLE_GAMING_ACCOUNT_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RESPONSIBLE_GAMING_ACCOUNT_NOT_FOUND"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "SessionBearer": []
          }
        ],
        "x-registration-condition": "dependencies.responsibleGaming",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "period": {
                    "type": "string",
                    "enum": [
                      "24h",
                      "7d",
                      "30d",
                      "42d"
                    ]
                  }
                },
                "required": [
                  "period"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:772"
      }
    },
    "/v1/rounds/{roundId}/proof": {
      "get": {
        "operationId": "get_v1_rounds_roundId_proof",
        "tags": [
          "Client"
        ],
        "summary": "Provably fair proof of the caller's own settled round",
        "description": "The revealed server seed, the client seed, the nonce and the draws of a v1 round, and whether it was pre-committed (preCommitted). Check it with tools/fair-verify.ts against the commitment and client seed kept from before the bet: it says VERIFIED only for a pre-committed round whose values match.",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_Record_string_unknown"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: FAIR_PROOF_UNAVAILABLE.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "FAIR_PROOF_UNAVAILABLE"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "SessionBearer": []
          }
        ],
        "x-registration-condition": "rounds",
        "parameters": [
          {
            "name": "roundId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "x-source": "apps/rgs/src/app.ts:1909"
      }
    },
    "/v2/interactive/skip": {
      "post": {
        "operationId": "post_v2_interactive_skip",
        "tags": [
          "Client"
        ],
        "summary": "Interactive game: skip command (InteractiveCommandService.skip)",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "anyOf": [
                    {
                      "type": "object",
                      "properties": {
                        "playerState": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string"
                            },
                            "revision": {
                              "type": "string"
                            },
                            "state": {}
                          },
                          "required": [
                            "schemaVersion",
                            "revision",
                            "state"
                          ]
                        },
                        "sequence": {
                          "type": "number"
                        },
                        "complete": {
                          "type": "boolean"
                        },
                        "nextActions": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "cumulativePayout": {
                          "type": "number"
                        },
                        "settlementStatus": {
                          "type": "string"
                        },
                        "payout": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "number"
                            }
                          ]
                        },
                        "totalWager": {
                          "type": "number"
                        },
                        "format": {
                          "type": "string"
                        },
                        "commandId": {
                          "type": "string"
                        },
                        "roundId": {
                          "type": "string"
                        },
                        "game": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string"
                            },
                            "version": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "code",
                            "version"
                          ]
                        },
                        "wager": {
                          "type": "object",
                          "properties": {
                            "amount": {
                              "type": "number"
                            },
                            "currency": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "amount",
                            "currency"
                          ]
                        }
                      },
                      "required": [
                        "sequence",
                        "complete",
                        "nextActions",
                        "cumulativePayout",
                        "settlementStatus",
                        "payout",
                        "format",
                        "commandId",
                        "roundId",
                        "game",
                        "wager"
                      ]
                    },
                    {
                      "type": "object",
                      "properties": {
                        "presentation": {},
                        "playerState": {
                          "type": "object",
                          "properties": {
                            "schemaVersion": {
                              "type": "string"
                            },
                            "revision": {
                              "type": "string"
                            },
                            "state": {}
                          },
                          "required": [
                            "schemaVersion",
                            "revision",
                            "state"
                          ]
                        },
                        "sequence": {
                          "type": "number"
                        },
                        "complete": {
                          "type": "boolean"
                        },
                        "nextActions": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "cumulativePayout": {
                          "type": "number"
                        },
                        "settlementStatus": {
                          "type": "string"
                        },
                        "payout": {
                          "anyOf": [
                            {
                              "type": "null"
                            },
                            {
                              "type": "number"
                            }
                          ]
                        },
                        "totalWager": {
                          "type": "number"
                        },
                        "format": {
                          "type": "string"
                        },
                        "commandId": {
                          "type": "string"
                        },
                        "roundId": {
                          "type": "string"
                        },
                        "game": {
                          "type": "object",
                          "properties": {
                            "code": {
                              "type": "string"
                            },
                            "version": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "code",
                            "version"
                          ]
                        },
                        "wager": {
                          "type": "object",
                          "properties": {
                            "amount": {
                              "type": "number"
                            },
                            "currency": {
                              "type": "string"
                            }
                          },
                          "required": [
                            "amount",
                            "currency"
                          ]
                        }
                      },
                      "required": [
                        "presentation",
                        "sequence",
                        "complete",
                        "nextActions",
                        "cumulativePayout",
                        "settlementStatus",
                        "payout",
                        "format",
                        "commandId",
                        "roundId",
                        "game",
                        "wager"
                      ]
                    }
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid request. Error codes: INVALID_REQUEST.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INVALID_REQUEST"
                      ]
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: WAGER_NOT_ALLOWED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "WAGER_NOT_ALLOWED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not found. Error codes: INTERACTIVE_EXECUTION_NOT_FOUND.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INTERACTIVE_EXECUTION_NOT_FOUND"
                      ]
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict. Error codes: INTERACTIVE_COMMAND_CONFLICT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INTERACTIVE_COMMAND_CONFLICT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds 65536 bytes.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported request content type.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "422": {
            "description": "Not processable. Error codes: INSUFFICIENT_FUNDS.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INSUFFICIENT_FUNDS"
                      ]
                    }
                  }
                }
              }
            }
          },
          "423": {
            "description": "Locked by responsible gaming. Error codes: RESPONSIBLE_GAMING_LIMIT.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "RESPONSIBLE_GAMING_LIMIT"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: INTERACTIVE_RUNTIME_UNAVAILABLE, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "INTERACTIVE_RUNTIME_UNAVAILABLE",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "SessionBearer": []
          }
        ],
        "x-registration-condition": "dependencies.interactive",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "commandId": {
                    "type": "string",
                    "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
                  }
                },
                "required": [
                  "commandId"
                ],
                "additionalProperties": false
              }
            }
          }
        },
        "x-source": "apps/rgs/src/app.ts:1797"
      }
    },
    "/v2/state": {
      "get": {
        "operationId": "get_v2_state",
        "tags": [
          "Client"
        ],
        "summary": "The session player's current game state",
        "responses": {
          "200": {
            "description": "OK.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/D_Record_string_unknown"
                }
              }
            }
          },
          "400": {
            "description": "Invalid request; endpoint validation and exact representation rules apply.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "401": {
            "description": "Missing or rejected credential. Error codes: AUTHENTICATION_FAILED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "AUTHENTICATION_FAILED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Refused. Error codes: WAGER_NOT_ALLOWED.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "WAGER_NOT_ALLOWED"
                      ]
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Rate limited: per client address until a credential verifies, then per player or operator key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "500": {
            "description": "Unhandled internal error.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceError"
                }
              }
            }
          },
          "503": {
            "description": "Unavailable; retry later. Error codes: CONTROL_PLANE_BUSY, MONEY_PATH_BUSY.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "error"
                  ],
                  "additionalProperties": true,
                  "properties": {
                    "error": {
                      "type": "string",
                      "enum": [
                        "CONTROL_PLANE_BUSY",
                        "MONEY_PATH_BUSY"
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "security": [
          {
            "SessionBearer": []
          }
        ],
        "x-registration-condition": "rounds",
        "x-source": "apps/rgs/src/app.ts:1829"
      }
    }
  },
  "components": {
    "schemas": {
      "ServiceError": {
        "type": "object",
        "required": [
          "error"
        ],
        "properties": {
          "error": {
            "type": "string"
          },
          "details": {
            "type": "array",
            "items": {
              "type": "object"
            }
          }
        },
        "additionalProperties": true
      },
      "C_Error": {
        "type": "object",
        "required": [
          "error"
        ],
        "properties": {
          "error": {
            "type": "string"
          },
          "details": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true
            }
          }
        },
        "additionalProperties": false
      },
      "C_AuthenticateRequest": {
        "type": "object",
        "required": [
          "launchToken"
        ],
        "properties": {
          "launchToken": {
            "type": "string",
            "minLength": 43,
            "maxLength": 128
          }
        },
        "additionalProperties": true
      },
      "C_AuthenticateResponse": {
        "type": "object",
        "required": [
          "sessionToken",
          "balance",
          "currency",
          "gameId",
          "walletMode"
        ],
        "properties": {
          "sessionToken": {
            "type": "string",
            "minLength": 43,
            "maxLength": 128
          },
          "balance": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 0
          },
          "currency": {
            "type": "string",
            "pattern": "^[A-Z]{3}$"
          },
          "gameId": {
            "type": "string",
            "format": "uuid"
          },
          "walletMode": {
            "enum": [
              "custodial",
              "external"
            ]
          }
        },
        "additionalProperties": false
      },
      "C_Balance": {
        "type": "object",
        "required": [
          "balance",
          "currency"
        ],
        "properties": {
          "balance": {
            "type": "integer",
            "minimum": 0
          },
          "currency": {
            "type": "string",
            "pattern": "^[A-Z]{3}$"
          }
        },
        "additionalProperties": false
      },
      "C_ExternalBalancePending": {
        "type": "object",
        "required": [
          "status",
          "operationId"
        ],
        "properties": {
          "status": {
            "enum": [
              "unknown",
              "pending"
            ]
          },
          "operationId": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "C_ExternalBalanceUnavailable": {
        "type": "object",
        "required": [
          "error",
          "operationId"
        ],
        "properties": {
          "error": {
            "const": "EXTERNAL_BALANCE_UNAVAILABLE"
          },
          "operationId": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "C_RealityStatus": {
        "type": "object",
        "required": [
          "due",
          "nextAt",
          "elapsedSeconds"
        ],
        "properties": {
          "due": {
            "type": "boolean"
          },
          "nextAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "elapsedSeconds": {
            "type": "integer",
            "minimum": 0
          }
        },
        "additionalProperties": false
      },
      "C_RealityAcknowledged": {
        "type": "object",
        "required": [
          "nextAt"
        ],
        "properties": {
          "nextAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "C_ResponsibleGaming": {
        "type": "object",
        "required": [
          "realityCheckIntervalSeconds",
          "maxSingleWager",
          "dailyNetLossLimit",
          "dailyDepositLimit",
          "maxSessionSeconds",
          "selfExcludedUntil"
        ],
        "properties": {
          "realityCheckIntervalSeconds": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 60,
            "maximum": 86400
          },
          "maxSingleWager": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 1
          },
          "dailyNetLossLimit": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 1
          },
          "dailyDepositLimit": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 1
          },
          "maxSessionSeconds": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 60,
            "maximum": 86400
          },
          "selfExcludedUntil": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "C_SelfExcludeRequest": {
        "type": "object",
        "required": [
          "until"
        ],
        "properties": {
          "until": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "C_SelfExcludeResponse": {
        "type": "object",
        "required": [
          "selfExcludedUntil"
        ],
        "properties": {
          "selfExcludedUntil": {
            "type": "string",
            "format": "date-time"
          }
        },
        "additionalProperties": false
      },
      "C_CampaignList": {
        "type": "object",
        "required": [
          "grants"
        ],
        "properties": {
          "grants": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "grantId",
                "campaignId",
                "code",
                "amount",
                "currency",
                "grantedAt"
              ],
              "properties": {
                "grantId": {
                  "type": "string",
                  "format": "uuid"
                },
                "campaignId": {
                  "type": "string",
                  "format": "uuid"
                },
                "code": {
                  "type": "string"
                },
                "amount": {
                  "type": "integer",
                  "minimum": 1
                },
                "currency": {
                  "type": "string",
                  "pattern": "^[A-Z]{3}$"
                },
                "grantedAt": {
                  "type": "string",
                  "format": "date-time"
                }
              },
              "additionalProperties": false
            }
          }
        },
        "additionalProperties": false
      },
      "C_RoomAssignment": {
        "type": "object",
        "required": [
          "roomId",
          "status"
        ],
        "properties": {
          "roomId": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "C_PlayV1Request": {
        "type": "object",
        "required": [
          "externalRoundId",
          "action",
          "wager",
          "clientSeed"
        ],
        "properties": {
          "externalRoundId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "action": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "wager": {
            "$ref": "#/components/schemas/C_Wager"
          },
          "clientSeed": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        },
        "additionalProperties": true
      },
      "C_PlayV2Request": {
        "type": "object",
        "required": [
          "commandId",
          "action",
          "wager",
          "clientSeed"
        ],
        "properties": {
          "commandId": {
            "$ref": "#/components/schemas/C_UUIDv4"
          },
          "action": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          },
          "wager": {
            "type": "object",
            "required": [
              "amount",
              "currency"
            ],
            "properties": {
              "amount": {
                "$ref": "#/components/schemas/C_PositiveMoney"
              },
              "currency": {
                "type": "string",
                "pattern": "^[A-Z]{3}$"
              }
            },
            "additionalProperties": false
          },
          "clientSeed": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        },
        "additionalProperties": false
      },
      "C_Wager": {
        "type": "object",
        "required": [
          "id",
          "amount",
          "currency"
        ],
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "amount": {
            "$ref": "#/components/schemas/C_PositiveMoney"
          },
          "currency": {
            "type": "string",
            "pattern": "^[A-Z]{3}$"
          }
        },
        "additionalProperties": true
      },
      "C_PositiveMoney": {
        "type": "integer",
        "minimum": 1,
        "maximum": 9007199254740991
      },
      "C_UUIDv4": {
        "type": "string",
        "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$"
      },
      "C_RoundResult": {
        "type": "object",
        "required": [
          "roundId",
          "payout",
          "balance",
          "state",
          "fairness"
        ],
        "properties": {
          "roundId": {
            "type": "string",
            "format": "uuid"
          },
          "payout": {
            "type": "integer",
            "minimum": 0
          },
          "balance": {
            "type": "integer",
            "minimum": 0
          },
          "state": {},
          "fairness": {
            "type": "object",
            "required": [
              "commitment",
              "serverSeed",
              "algorithm"
            ],
            "properties": {
              "commitment": {
                "type": "string",
                "pattern": "^[0-9a-f]{64}$"
              },
              "serverSeed": {
                "type": "string",
                "pattern": "^[0-9a-f]+$"
              },
              "algorithm": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "additionalProperties": false
      },
      "C_RoundPending": {
        "type": "object",
        "required": [
          "error",
          "roundId",
          "status"
        ],
        "properties": {
          "error": {
            "const": "ROUND_SETTLEMENT_PENDING"
          },
          "roundId": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "C_RoundDeclined": {
        "type": "object",
        "required": [
          "error",
          "roundId"
        ],
        "properties": {
          "error": {
            "const": "EXTERNAL_WALLET_DECLINED"
          },
          "roundId": {
            "type": "string",
            "format": "uuid"
          }
        },
        "additionalProperties": false
      },
      "C_History": {
        "type": "object",
        "required": [
          "rounds"
        ],
        "properties": {
          "rounds": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "roundId",
                "externalRoundId",
                "status",
                "wager",
                "payout",
                "currency",
                "createdAt",
                "settledAt"
              ],
              "properties": {
                "roundId": {
                  "type": "string",
                  "format": "uuid"
                },
                "externalRoundId": {
                  "type": "string"
                },
                "status": {
                  "type": "string"
                },
                "wager": {
                  "type": "integer",
                  "minimum": 0
                },
                "payout": {
                  "type": "integer",
                  "minimum": 0
                },
                "currency": {
                  "type": "string",
                  "pattern": "^[A-Z]{3}$"
                },
                "createdAt": {
                  "type": "string",
                  "format": "date-time"
                },
                "settledAt": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "date-time"
                }
              },
              "additionalProperties": false
            }
          }
        },
        "additionalProperties": false
      },
      "C_FairnessProof": {
        "type": "object",
        "required": [
          "algorithm",
          "drawId",
          "commitment",
          "clientSeed",
          "nonce",
          "serverSeed"
        ],
        "properties": {
          "algorithm": {
            "type": "string"
          },
          "drawId": {
            "type": "string",
            "format": "uuid"
          },
          "commitment": {
            "type": "string",
            "pattern": "^[0-9a-f]{64}$"
          },
          "clientSeed": {
            "type": "string"
          },
          "nonce": {
            "type": "string"
          },
          "serverSeed": {
            "type": "string",
            "pattern": "^[0-9a-f]+$"
          }
        },
        "additionalProperties": false
      },
      "C_Replay": {
        "type": "object",
        "required": [
          "roundId",
          "history",
          "verification"
        ],
        "properties": {
          "roundId": {
            "type": "string",
            "format": "uuid"
          },
          "history": {
            "type": "object",
            "required": [
              "roundId",
              "state",
              "result",
              "events"
            ],
            "properties": {
              "roundId": {
                "type": "string",
                "format": "uuid"
              },
              "state": {},
              "result": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/C_RoundResult"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "events": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "sequence",
                    "type",
                    "payload",
                    "createdAt"
                  ],
                  "properties": {
                    "sequence": {
                      "type": "integer",
                      "minimum": 0
                    },
                    "type": {
                      "type": "string"
                    },
                    "payload": {},
                    "createdAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  },
                  "additionalProperties": false
                }
              }
            },
            "additionalProperties": false
          },
          "verification": {
            "type": "object",
            "required": [
              "status"
            ],
            "properties": {
              "status": {
                "enum": [
                  "matched",
                  "mismatch",
                  "unavailable"
                ]
              },
              "reason": {
                "enum": [
                  "REPLAY_MISMATCH",
                  "REPLAY_INPUTS_UNAVAILABLE",
                  "REPLAY_RUNTIME_UNAVAILABLE"
                ]
              },
              "gameVersion": {
                "type": "string",
                "description": "Pinned runtime lookup key returned when the runtime is unavailable."
              },
              "game": {
                "type": "object",
                "required": [
                  "code",
                  "version",
                  "gameVersionId"
                ],
                "properties": {
                  "code": {
                    "type": "string"
                  },
                  "version": {
                    "type": "string"
                  },
                  "gameVersionId": {
                    "type": "string",
                    "format": "uuid"
                  }
                },
                "additionalProperties": false
              },
              "request": {},
              "fairness": {
                "$ref": "#/components/schemas/C_FairnessProof"
              },
              "recomputed": {
                "oneOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "object",
                    "required": [
                      "payout",
                      "state"
                    ],
                    "properties": {
                      "payout": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "state": {}
                    },
                    "additionalProperties": false
                  }
                ]
              },
              "compared": {
                "type": "object",
                "required": [
                  "requestHash",
                  "transcript",
                  "result",
                  "payout",
                  "state",
                  "commitment"
                ],
                "properties": {
                  "requestHash": {
                    "type": "boolean"
                  },
                  "transcript": {
                    "type": "boolean"
                  },
                  "result": {
                    "type": "boolean"
                  },
                  "payout": {
                    "type": "boolean"
                  },
                  "state": {
                    "type": "boolean"
                  },
                  "commitment": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              }
            },
            "additionalProperties": false
          }
        },
        "additionalProperties": false
      },
      "C_InteractiveStartRequest": {
        "type": "object",
        "required": [
          "commandId",
          "wager",
          "clientSeed"
        ],
        "properties": {
          "commandId": {
            "$ref": "#/components/schemas/C_UUIDv4"
          },
          "wager": {
            "type": "object",
            "required": [
              "amount",
              "currency"
            ],
            "properties": {
              "amount": {
                "$ref": "#/components/schemas/C_PositiveMoney"
              },
              "currency": {
                "type": "string",
                "pattern": "^[A-Z]{3}$"
              }
            },
            "additionalProperties": false
          },
          "clientSeed": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          }
        },
        "additionalProperties": false
      },
      "C_InteractiveActionRequest": {
        "type": "object",
        "required": [
          "roundId",
          "commandId",
          "expectedSequence",
          "action"
        ],
        "properties": {
          "roundId": {
            "type": "string",
            "format": "uuid",
            "pattern": "^[0-9a-f-]+$"
          },
          "commandId": {
            "$ref": "#/components/schemas/C_UUIDv4"
          },
          "expectedSequence": {
            "type": "integer",
            "minimum": 0,
            "maximum": 63
          },
          "action": {
            "type": "string",
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$"
          }
        },
        "additionalProperties": false
      },
      "C_InteractiveRecoverRequest": {
        "type": "object",
        "required": [
          "commandId"
        ],
        "properties": {
          "commandId": {
            "$ref": "#/components/schemas/C_UUIDv4"
          }
        },
        "additionalProperties": false
      },
      "C_InteractiveProjection": {
        "type": "object",
        "required": [
          "format",
          "commandId",
          "roundId",
          "game",
          "wager",
          "sequence",
          "complete",
          "nextActions",
          "cumulativePayout",
          "settlementStatus",
          "payout"
        ],
        "properties": {
          "format": {
            "const": "interactive-player-v1"
          },
          "commandId": {
            "$ref": "#/components/schemas/C_UUIDv4"
          },
          "roundId": {
            "type": "string",
            "format": "uuid"
          },
          "game": {
            "type": "object",
            "required": [
              "code",
              "version"
            ],
            "properties": {
              "code": {
                "type": "string"
              },
              "version": {
                "type": "string"
              }
            },
            "additionalProperties": false
          },
          "wager": {
            "type": "object",
            "required": [
              "amount",
              "currency"
            ],
            "properties": {
              "amount": {
                "$ref": "#/components/schemas/C_PositiveMoney"
              },
              "currency": {
                "type": "string",
                "pattern": "^[A-Z]{3}$"
              }
            },
            "additionalProperties": false
          },
          "sequence": {
            "type": "integer",
            "minimum": 0
          },
          "complete": {
            "type": "boolean"
          },
          "nextActions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "cumulativePayout": {
            "type": "integer",
            "minimum": 0
          },
          "settlementStatus": {
            "enum": [
              "active",
              "credit-owed",
              "settled"
            ]
          },
          "payout": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 0
          },
          "acknowledged": {
            "type": "object",
            "required": [
              "commandId",
              "sequence",
              "duplicate"
            ],
            "properties": {
              "commandId": {
                "$ref": "#/components/schemas/C_UUIDv4"
              },
              "sequence": {
                "type": "integer",
                "minimum": 0,
                "maximum": 63
              },
              "duplicate": {
                "type": "boolean"
              }
            },
            "additionalProperties": false
          }
        },
        "additionalProperties": false
      },
      "C_InteractiveActionResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/C_InteractiveProjection"
          },
          {
            "type": "object",
            "required": [
              "acknowledged"
            ],
            "properties": {
              "acknowledged": {
                "type": "object",
                "required": [
                  "commandId",
                  "sequence",
                  "duplicate"
                ],
                "properties": {
                  "commandId": {
                    "$ref": "#/components/schemas/C_UUIDv4"
                  },
                  "sequence": {
                    "type": "integer",
                    "minimum": 0,
                    "maximum": 63
                  },
                  "duplicate": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              }
            }
          }
        ]
      },
      "C_StakeSessionRequest": {
        "type": "object",
        "required": [
          "sessionID"
        ],
        "properties": {
          "sessionID": {
            "type": "string",
            "minLength": 8,
            "maxLength": 256
          }
        },
        "additionalProperties": true
      },
      "C_StakeAuthenticateRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/C_StakeSessionRequest"
          },
          {
            "type": "object",
            "properties": {
              "language": {
                "type": "string",
                "minLength": 2,
                "maxLength": 16
              },
              "gameId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 128
              }
            }
          }
        ]
      },
      "C_StakePlayRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/C_StakeSessionRequest"
          },
          {
            "type": "object",
            "required": [
              "amount",
              "currency",
              "mode"
            ],
            "properties": {
              "amount": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "currency": {
                "type": "string",
                "pattern": "^[A-Z]{3}$"
              },
              "mode": {
                "type": "string",
                "minLength": 1,
                "maxLength": 64
              },
              "gameId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 128
              }
            }
          }
        ]
      },
      "C_StakeEventRequest": {
        "allOf": [
          {
            "$ref": "#/components/schemas/C_StakeSessionRequest"
          },
          {
            "type": "object",
            "properties": {
              "event": {
                "type": "string",
                "minLength": 1,
                "maxLength": 128
              }
            }
          }
        ]
      },
      "C_StakeStatus": {
        "type": "object",
        "required": [
          "statusCode",
          "statusMessage"
        ],
        "properties": {
          "statusCode": {
            "type": "string"
          },
          "statusMessage": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "C_StakeError": {
        "type": "object",
        "required": [
          "status",
          "error"
        ],
        "properties": {
          "status": {
            "$ref": "#/components/schemas/C_StakeStatus"
          },
          "error": {
            "type": "object",
            "required": [
              "code",
              "message"
            ],
            "properties": {
              "code": {
                "enum": [
                  "ERR_IS",
                  "ERR_IPB",
                  "ERR_GLE",
                  "ERR_BE",
                  "ERR_BNF",
                  "ERR_GE",
                  "ERR_UE",
                  "SUCCESS"
                ]
              },
              "message": {
                "type": "string"
              }
            },
            "additionalProperties": false
          }
        },
        "additionalProperties": false
      },
      "C_StakeBalance": {
        "type": "object",
        "required": [
          "amount",
          "currency"
        ],
        "properties": {
          "amount": {
            "type": "integer",
            "minimum": 0
          },
          "currency": {
            "type": "string",
            "pattern": "^[A-Z]{3}$"
          }
        },
        "additionalProperties": false
      },
      "C_StakeRound": {
        "type": "object",
        "required": [
          "roundID",
          "amount",
          "payout",
          "payoutMultiplier",
          "active",
          "mode",
          "event",
          "state"
        ],
        "properties": {
          "roundID": {
            "type": "string"
          },
          "amount": {
            "type": "integer",
            "minimum": 0
          },
          "payout": {
            "type": "integer",
            "minimum": 0
          },
          "payoutMultiplier": {
            "type": "number",
            "minimum": 0
          },
          "active": {
            "type": "boolean"
          },
          "mode": {
            "type": "string"
          },
          "event": {
            "type": "string"
          },
          "state": {
            "type": "array",
            "items": {}
          }
        },
        "additionalProperties": false
      },
      "C_StakeConfig": {
        "type": "object",
        "required": [
          "gameID",
          "minBet",
          "maxBet",
          "stepBet",
          "defaultBetLevel",
          "betLevels",
          "betModes",
          "jurisdiction"
        ],
        "properties": {
          "gameID": {
            "type": "string"
          },
          "minBet": {
            "type": "integer",
            "minimum": 0
          },
          "maxBet": {
            "type": "integer",
            "minimum": 0
          },
          "stepBet": {
            "type": "integer",
            "minimum": 0
          },
          "defaultBetLevel": {
            "type": "integer",
            "minimum": 0
          },
          "betLevels": {
            "type": "array",
            "items": {
              "type": "integer",
              "minimum": 0
            }
          },
          "betModes": {
            "type": "object",
            "additionalProperties": {
              "type": "object",
              "additionalProperties": true
            }
          },
          "jurisdiction": {
            "type": "object",
            "additionalProperties": {
              "type": [
                "boolean",
                "integer"
              ]
            }
          }
        },
        "additionalProperties": false
      },
      "C_StakeAuthenticationResponse": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "status",
              "balance",
              "config"
            ],
            "properties": {
              "status": {
                "$ref": "#/components/schemas/C_StakeStatus"
              },
              "balance": {
                "$ref": "#/components/schemas/C_StakeBalance"
              },
              "config": {
                "$ref": "#/components/schemas/C_StakeConfig"
              },
              "round": {
                "$ref": "#/components/schemas/C_StakeRound"
              }
            },
            "additionalProperties": false
          },
          {
            "$ref": "#/components/schemas/C_StakeError"
          }
        ]
      },
      "C_StakeBalanceResponse": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "status",
              "balance"
            ],
            "properties": {
              "status": {
                "$ref": "#/components/schemas/C_StakeStatus"
              },
              "balance": {
                "$ref": "#/components/schemas/C_StakeBalance"
              }
            },
            "additionalProperties": false
          },
          {
            "$ref": "#/components/schemas/C_StakeError"
          }
        ]
      },
      "C_StakePlayResponse": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "status",
              "balance",
              "round"
            ],
            "properties": {
              "status": {
                "$ref": "#/components/schemas/C_StakeStatus"
              },
              "balance": {
                "$ref": "#/components/schemas/C_StakeBalance"
              },
              "round": {
                "$ref": "#/components/schemas/C_StakeRound"
              }
            },
            "additionalProperties": false
          },
          {
            "$ref": "#/components/schemas/C_StakeError"
          }
        ]
      },
      "C_StakeEventResponse": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "status",
              "event"
            ],
            "properties": {
              "status": {
                "$ref": "#/components/schemas/C_StakeStatus"
              },
              "event": {
                "type": "string"
              }
            },
            "additionalProperties": false
          },
          {
            "$ref": "#/components/schemas/C_StakeError"
          }
        ]
      },
      "O_Error": {
        "type": "object",
        "properties": {
          "error": {
            "type": "string",
            "enum": [
              "OPERATOR_AUTHENTICATION_FAILED",
              "INVALID_REQUEST",
              "RATE_LIMITED",
              "INTERNAL_ERROR",
              "GAME_NOT_FOUND",
              "ACCOUNT_OR_GAME_NOT_FOUND",
              "GAME_VERSION_UNAVAILABLE",
              "RESPONSIBLE_GAMING_ACCOUNT_NOT_FOUND",
              "WALLET_RESOURCE_NOT_FOUND",
              "WALLET_TRANSACTION_CONFLICT",
              "INSUFFICIENT_FUNDS",
              "RECONCILIATION_CONFLICT",
              "CAMPAIGN_UNAVAILABLE",
              "NOT_FOUND",
              "INVALID_DISPUTE_CURSOR",
              "DISPUTE_EVIDENCE_INTEGRITY_MISMATCH",
              "DISPUTE_EVIDENCE_TOO_LARGE",
              "DISPUTE_EVIDENCE_ITEM_TOO_LARGE"
            ]
          }
        },
        "required": [
          "error"
        ],
        "additionalProperties": false
      },
      "O_InvalidRequestError": {
        "type": "object",
        "properties": {
          "error": {
            "const": "INVALID_REQUEST"
          },
          "details": {
            "type": "array",
            "items": {},
            "description": "Zod issue objects; runtime-defined diagnostic values."
          }
        },
        "required": [
          "error"
        ],
        "additionalProperties": false
      },
      "O_ApiKeyCreateRequest": {
        "type": "object",
        "properties": {
          "label": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "keys",
                "launch",
                "wallet",
                "campaigns",
                "responsible-gaming",
                "reconciliation",
                "games",
                "disputes"
              ]
            },
            "minItems": 1,
            "maxItems": 16
          },
          "ttlSeconds": {
            "type": "integer",
            "minimum": 300,
            "maximum": 7776000,
            "default": 7776000
          }
        },
        "required": [
          "label",
          "scopes"
        ],
        "additionalProperties": false
      },
      "O_ApiKeyCreateResponse": {
        "type": "object",
        "properties": {
          "keyId": {
            "type": "string",
            "format": "uuid"
          },
          "token": {
            "type": "string",
            "description": "One-time secret-bearing operator API key token. Do not persist in logs."
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "keyId",
          "token",
          "expiresAt"
        ],
        "additionalProperties": false
      },
      "O_GameEntitlementRequest": {
        "type": "object",
        "properties": {
          "enabled": {
            "type": "boolean"
          },
          "currencies": {
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            },
            "minItems": 1,
            "maxItems": 32
          }
        },
        "required": [
          "enabled",
          "currencies"
        ],
        "additionalProperties": false
      },
      "O_GameEntitlementResponse": {
        "type": "object",
        "properties": {
          "gameCode": {
            "type": "string",
            "pattern": "^[a-z0-9][a-z0-9_-]{1,63}$"
          },
          "enabled": {
            "type": "boolean"
          },
          "currencies": {
            "type": "array",
            "items": {
              "type": "string",
              "pattern": "^[A-Z]{3}$"
            }
          }
        },
        "required": [
          "gameCode",
          "enabled",
          "currencies"
        ],
        "additionalProperties": false
      },
      "O_LaunchRequest": {
        "type": "object",
        "properties": {
          "playerId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "currency": {
            "type": "string",
            "pattern": "^[A-Z]{3}$"
          },
          "gameCode": {
            "type": "string",
            "pattern": "^[a-z0-9][a-z0-9_-]{1,63}$"
          },
          "locale": {
            "type": "string",
            "minLength": 2,
            "maxLength": 16,
            "pattern": "^[a-z]{2}(?:-[A-Z]{2})?$",
            "description": "HTTP accepts length 2–16; SessionService additionally enforces this locale pattern."
          }
        },
        "required": [
          "playerId",
          "currency",
          "gameCode",
          "locale"
        ],
        "additionalProperties": true
      },
      "O_LaunchResponse": {
        "type": "object",
        "properties": {
          "launchToken": {
            "type": "string",
            "description": "One-time launch credential."
          },
          "expiresInSeconds": {
            "const": 300
          }
        },
        "required": [
          "launchToken",
          "expiresInSeconds"
        ],
        "additionalProperties": false
      },
      "O_RgLimitsRequest": {
        "type": "object",
        "properties": {
          "playerId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "currency": {
            "type": "string",
            "pattern": "^[A-Z]{3}$"
          },
          "realityCheckIntervalSeconds": {
            "oneOf": [
              {
                "type": "integer",
                "minimum": 60,
                "maximum": 86400
              },
              {
                "type": "null"
              }
            ]
          },
          "maxSingleWager": {
            "oneOf": [
              {
                "type": "integer",
                "minimum": 1,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "dailyNetLossLimit": {
            "oneOf": [
              {
                "type": "integer",
                "minimum": 1,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "dailyDepositLimit": {
            "oneOf": [
              {
                "type": "integer",
                "minimum": 1,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "maxSessionSeconds": {
            "oneOf": [
              {
                "type": "integer",
                "minimum": 60,
                "maximum": 86400
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "playerId",
          "currency",
          "realityCheckIntervalSeconds",
          "maxSingleWager",
          "dailyNetLossLimit",
          "dailyDepositLimit",
          "maxSessionSeconds"
        ],
        "additionalProperties": false
      },
      "O_RgLimitsResponse": {
        "type": "object",
        "properties": {
          "realityCheckIntervalSeconds": {
            "oneOf": [
              {
                "type": "integer",
                "minimum": 60,
                "maximum": 86400
              },
              {
                "type": "null"
              }
            ]
          },
          "maxSingleWager": {
            "oneOf": [
              {
                "type": "integer",
                "minimum": 1,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "dailyNetLossLimit": {
            "oneOf": [
              {
                "type": "integer",
                "minimum": 1,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "dailyDepositLimit": {
            "oneOf": [
              {
                "type": "integer",
                "minimum": 1,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "maxSessionSeconds": {
            "oneOf": [
              {
                "type": "integer",
                "minimum": 60,
                "maximum": 86400
              },
              {
                "type": "null"
              }
            ]
          },
          "selfExcludedUntil": {
            "oneOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "realityCheckIntervalSeconds",
          "maxSingleWager",
          "dailyNetLossLimit",
          "dailyDepositLimit",
          "maxSessionSeconds",
          "selfExcludedUntil"
        ],
        "additionalProperties": false
      },
      "O_AccountRequest": {
        "type": "object",
        "properties": {
          "playerId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "currency": {
            "type": "string",
            "pattern": "^[A-Z]{3}$"
          }
        },
        "required": [
          "playerId",
          "currency"
        ],
        "additionalProperties": false
      },
      "O_AccountResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "created": {
            "type": "boolean"
          },
          "balance": {
            "type": "integer"
          },
          "currency": {
            "type": "string",
            "pattern": "^[A-Z]{3}$"
          }
        },
        "required": [
          "id",
          "created",
          "balance",
          "currency"
        ],
        "additionalProperties": false
      },
      "O_WalletTransactionRequest": {
        "type": "object",
        "properties": {
          "playerId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "externalTransactionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "kind": {
            "type": "string",
            "enum": [
              "deposit",
              "withdrawal"
            ]
          },
          "amount": {
            "type": "integer",
            "minimum": 1,
            "maximum": 9007199254740991,
            "description": "Currency minor units; safe integer."
          },
          "currency": {
            "type": "string",
            "pattern": "^[A-Z]{3}$"
          }
        },
        "required": [
          "playerId",
          "externalTransactionId",
          "kind",
          "amount",
          "currency"
        ],
        "additionalProperties": false
      },
      "O_WalletTransactionResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "externalTransactionId": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "deposit",
              "withdrawal"
            ]
          },
          "amount": {
            "type": "integer"
          },
          "currency": {
            "type": "string",
            "pattern": "^[A-Z]{3}$"
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "completed",
              "failed",
              "manual_review"
            ]
          },
          "balance": {
            "oneOf": [
              {
                "type": "integer"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "externalTransactionId",
          "kind",
          "amount",
          "currency",
          "status",
          "balance"
        ],
        "additionalProperties": false
      },
      "O_ReconciliationScan": {
        "type": "object",
        "properties": {
          "clean": {
            "type": "boolean"
          },
          "accounts": {
            "type": "integer",
            "minimum": 0
          },
          "mismatches": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "accountId": {
                  "type": "string",
                  "format": "uuid"
                },
                "playerId": {
                  "type": "string"
                },
                "currency": {
                  "type": "string",
                  "pattern": "^[A-Z]{3}$"
                },
                "storedBalance": {
                  "type": "string",
                  "description": "Current runtime returns SQL numeric text."
                },
                "ledgerBalance": {
                  "type": "string",
                  "description": "Current runtime returns SQL numeric text."
                }
              },
              "required": [
                "accountId",
                "playerId",
                "currency",
                "storedBalance",
                "ledgerBalance"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "clean",
          "accounts",
          "mismatches"
        ],
        "additionalProperties": false
      },
      "O_ReconciliationCase": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "accountId": {
            "type": "string",
            "format": "uuid"
          },
          "playerId": {
            "type": "string"
          },
          "currency": {
            "type": "string",
            "pattern": "^[A-Z]{3}$"
          },
          "storedBalance": {
            "type": "integer"
          },
          "ledgerBalance": {
            "type": "integer"
          },
          "delta": {
            "type": "integer"
          },
          "status": {
            "type": "string",
            "enum": [
              "open",
              "pending_resolution",
              "resolved"
            ]
          },
          "reasonCode": {
            "oneOf": [
              {
                "type": "string",
                "enum": [
                  "legacy_opening_balance",
                  "operator_wallet_confirmed",
                  "data_repair"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "resolutionNote": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "ledgerEntryId": {
            "oneOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "id",
          "accountId",
          "playerId",
          "currency",
          "storedBalance",
          "ledgerBalance",
          "delta",
          "status",
          "reasonCode",
          "resolutionNote",
          "ledgerEntryId"
        ],
        "additionalProperties": false
      },
      "O_ReconciliationRun": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "type": "string",
            "enum": [
              "running",
              "completed",
              "failed"
            ]
          },
          "accountsChecked": {
            "type": "integer",
            "minimum": 0
          },
          "mismatchCount": {
            "type": "integer",
            "minimum": 0
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "completedAt": {
            "oneOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ]
          },
          "cases": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/O_ReconciliationCase"
            }
          }
        },
        "required": [
          "id",
          "status",
          "accountsChecked",
          "mismatchCount",
          "createdAt",
          "completedAt",
          "cases"
        ],
        "additionalProperties": false
      },
      "O_ResolutionRequest": {
        "type": "object",
        "properties": {
          "reasonCode": {
            "type": "string",
            "enum": [
              "legacy_opening_balance",
              "operator_wallet_confirmed",
              "data_repair"
            ]
          },
          "note": {
            "type": "string",
            "minLength": 10,
            "maxLength": 2048
          }
        },
        "required": [
          "reasonCode",
          "note"
        ],
        "additionalProperties": false
      },
      "O_EmptyRequest": {
        "type": "object",
        "properties": {},
        "additionalProperties": false
      },
      "O_CampaignCreateRequest": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "pattern": "^[a-z0-9][a-z0-9_-]{1,63}$"
          },
          "gameCode": {
            "type": "string",
            "pattern": "^[a-z0-9][a-z0-9_-]{1,63}$"
          },
          "currency": {
            "type": "string",
            "pattern": "^[A-Z]{3}$"
          },
          "budget": {
            "type": "integer",
            "minimum": 1,
            "maximum": 9007199254740991,
            "description": "Currency minor units; safe integer."
          },
          "startsAt": {
            "type": "string",
            "format": "date-time"
          },
          "endsAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "code",
          "gameCode",
          "currency",
          "budget",
          "startsAt",
          "endsAt"
        ],
        "additionalProperties": true
      },
      "O_CampaignId": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      },
      "O_CampaignGrantRequest": {
        "type": "object",
        "properties": {
          "playerId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "amount": {
            "type": "integer",
            "minimum": 1,
            "maximum": 9007199254740991,
            "description": "Currency minor units; safe integer."
          },
          "idempotencyKey": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          }
        },
        "required": [
          "playerId",
          "amount",
          "idempotencyKey"
        ],
        "additionalProperties": true
      },
      "O_CampaignGrantResponse": {
        "type": "object",
        "properties": {
          "created": {
            "type": "boolean"
          },
          "balance": {
            "type": "integer"
          },
          "grantId": {
            "type": "string",
            "format": "uuid"
          }
        },
        "required": [
          "created",
          "balance",
          "grantId"
        ],
        "additionalProperties": false
      },
      "O_CampaignStatusRequest": {
        "type": "object",
        "properties": {
          "status": {
            "type": "string",
            "enum": [
              "active",
              "paused",
              "ended"
            ]
          }
        },
        "required": [
          "status"
        ],
        "additionalProperties": false
      },
      "O_CampaignStatusResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "paused",
              "ended"
            ]
          }
        },
        "required": [
          "id",
          "status"
        ],
        "additionalProperties": false
      },
      "O_DisputeCollection": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/O_DisputeCallbacksCollection"
          },
          {
            "$ref": "#/components/schemas/O_DisputeConflictsCollection"
          },
          {
            "$ref": "#/components/schemas/O_DisputeReconciliationCollection"
          },
          {
            "$ref": "#/components/schemas/O_DisputeAuditCollection"
          },
          {
            "$ref": "#/components/schemas/O_DisputeActionAuditCollection"
          }
        ]
      },
      "O_DisputeResponse": {
        "type": "object",
        "properties": {
          "operation": {
            "type": "object",
            "properties": {
              "operationId": {
                "type": "string",
                "format": "uuid"
              },
              "originalOperationId": {
                "oneOf": [
                  {
                    "type": "string",
                    "format": "uuid"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "kind": {
                "type": "string",
                "enum": [
                  "debit",
                  "credit",
                  "cancel",
                  "balance"
                ]
              },
              "requestHash": {
                "type": "string"
              },
              "request": {
                "type": "object",
                "additionalProperties": true,
                "description": "Persisted external-wallet request JSON."
              },
              "status": {
                "type": "string",
                "enum": [
                  "pending",
                  "approved",
                  "declined",
                  "unknown",
                  "manual_review",
                  "cancelled"
                ]
              },
              "remoteTransactionId": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "attemptCount": {
                "type": "integer",
                "minimum": 0
              },
              "lastAttemptAt": {
                "oneOf": [
                  {
                    "type": "string",
                    "format": "date-time"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "lastError": {
                "oneOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "recoveryAttemptCount": {
                "type": "integer",
                "minimum": 0
              },
              "lastRecoveryAt": {
                "oneOf": [
                  {
                    "type": "string",
                    "format": "date-time"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "nextRecoveryAt": {
                "oneOf": [
                  {
                    "type": "string",
                    "format": "date-time"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "completedAt": {
                "oneOf": [
                  {
                    "type": "string",
                    "format": "date-time"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "createdAt": {
                "type": "string",
                "format": "date-time"
              },
              "updatedAt": {
                "type": "string",
                "format": "date-time"
              }
            },
            "required": [
              "operationId",
              "originalOperationId",
              "kind",
              "requestHash",
              "request",
              "status",
              "remoteTransactionId",
              "attemptCount",
              "lastAttemptAt",
              "lastError",
              "recoveryAttemptCount",
              "lastRecoveryAt",
              "nextRecoveryAt",
              "completedAt",
              "createdAt",
              "updatedAt"
            ],
            "additionalProperties": false
          },
          "terminalEvidence": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "responseHash": {
                    "type": "string"
                  },
                  "response": {
                    "type": "object",
                    "additionalProperties": true
                  },
                  "authoritativeBalanceObservedAt": {
                    "oneOf": [
                      {
                        "type": "string",
                        "format": "date-time"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "provenance": {
                    "oneOf": [
                      {
                        "type": "object",
                        "properties": {
                          "source": {
                            "type": "string",
                            "enum": [
                              "direct_response",
                              "recovery_response",
                              "callback"
                            ]
                          },
                          "signingKeyId": {
                            "type": "string"
                          },
                          "signedTimestamp": {
                            "type": "string"
                          },
                          "signature": {
                            "type": "string"
                          },
                          "rawBodyBase64": {
                            "type": "string"
                          }
                        },
                        "required": [
                          "source",
                          "signingKeyId",
                          "signedTimestamp",
                          "signature",
                          "rawBodyBase64"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "null"
                      }
                    ]
                  }
                },
                "required": [
                  "responseHash",
                  "response",
                  "authoritativeBalanceObservedAt",
                  "provenance"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "roundLink": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "roundId": {
                    "type": "string",
                    "format": "uuid"
                  },
                  "role": {
                    "type": "string",
                    "enum": [
                      "debit",
                      "credit",
                      "cancel"
                    ]
                  },
                  "externalRoundId": {
                    "type": "string"
                  },
                  "gameCode": {
                    "type": "string"
                  },
                  "gameVersion": {
                    "type": "string"
                  },
                  "status": {
                    "type": "string"
                  },
                  "wager": {
                    "type": "integer"
                  },
                  "payout": {
                    "oneOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "currency": {
                    "type": "string",
                    "pattern": "^[A-Z]{3}$"
                  }
                },
                "required": [
                  "roundId",
                  "role",
                  "externalRoundId",
                  "gameCode",
                  "gameVersion",
                  "status",
                  "wager",
                  "payout",
                  "currency"
                ],
                "additionalProperties": false
              },
              {
                "type": "null"
              }
            ]
          },
          "counts": {
            "type": "object",
            "properties": {
              "callbacks": {
                "type": "integer",
                "minimum": 0
              },
              "conflicts": {
                "type": "integer",
                "minimum": 0
              },
              "reconciliation": {
                "type": "integer",
                "minimum": 0
              },
              "audit": {
                "type": "integer",
                "minimum": 0
              },
              "actionAudit": {
                "type": "integer",
                "minimum": 0
              }
            },
            "required": [
              "callbacks",
              "conflicts",
              "reconciliation",
              "audit",
              "actionAudit"
            ],
            "additionalProperties": false
          },
          "integrity": {
            "type": "object",
            "properties": {
              "status": {
                "const": "coherent"
              }
            },
            "required": [
              "status"
            ],
            "additionalProperties": false
          },
          "collection": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/O_DisputeCollection"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "operation",
          "terminalEvidence",
          "roundLink",
          "counts",
          "integrity",
          "collection"
        ],
        "additionalProperties": false
      },
      "O_DisputeCallbackItem": {
        "type": "object",
        "properties": {
          "messageId": {
            "type": "string",
            "format": "uuid"
          },
          "signingKeyId": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "transaction.finalized",
              "balance.statement"
            ]
          },
          "payloadHash": {
            "type": "string"
          },
          "payload": {
            "type": "object",
            "additionalProperties": true
          },
          "status": {
            "type": "string",
            "enum": [
              "received",
              "processed",
              "rejected",
              "manual_review"
            ]
          },
          "receivedAt": {
            "type": "string",
            "format": "date-time"
          },
          "processedAt": {
            "oneOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ]
          },
          "failureCode": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "messageId",
          "signingKeyId",
          "kind",
          "payloadHash",
          "payload",
          "status",
          "receivedAt",
          "processedAt",
          "failureCode"
        ],
        "additionalProperties": false
      },
      "O_DisputeConflictItem": {
        "type": "object",
        "properties": {
          "conflictId": {
            "type": "string",
            "format": "uuid"
          },
          "conflictingOperationId": {
            "oneOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ]
          },
          "callbackMessageId": {
            "oneOf": [
              {
                "type": "string",
                "format": "uuid"
              },
              {
                "type": "null"
              }
            ]
          },
          "source": {
            "type": "string",
            "enum": [
              "direct_response",
              "recovery_response",
              "callback"
            ]
          },
          "responseHash": {
            "type": "string"
          },
          "response": {
            "type": "object",
            "additionalProperties": true
          },
          "signingKeyId": {
            "type": "string"
          },
          "signedTimestamp": {
            "type": "string"
          },
          "signature": {
            "type": "string"
          },
          "rawBodyBase64": {
            "type": "string"
          },
          "reasonCode": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "conflictId",
          "conflictingOperationId",
          "callbackMessageId",
          "source",
          "responseHash",
          "response",
          "signingKeyId",
          "signedTimestamp",
          "signature",
          "rawBodyBase64",
          "reasonCode",
          "createdAt"
        ],
        "additionalProperties": false
      },
      "O_DisputeReconciliationItem": {
        "type": "object",
        "properties": {
          "caseId": {
            "type": "string",
            "format": "uuid"
          },
          "runId": {
            "type": "string",
            "format": "uuid"
          },
          "statementId": {
            "type": "string"
          },
          "statementAsOf": {
            "type": "string",
            "format": "date-time"
          },
          "comparisonBasis": {
            "type": "string"
          },
          "playerId": {
            "type": "string"
          },
          "currency": {
            "type": "string",
            "pattern": "^[A-Z]{3}$"
          },
          "externalBalance": {
            "oneOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "internalBalance": {
            "oneOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "comparisonBalance": {
            "oneOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "delta": {
            "oneOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "reasonCode": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "resolutionNote": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "resolvedAt": {
            "oneOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "caseId",
          "runId",
          "statementId",
          "statementAsOf",
          "comparisonBasis",
          "playerId",
          "currency",
          "externalBalance",
          "internalBalance",
          "comparisonBalance",
          "delta",
          "reasonCode",
          "status",
          "resolutionNote",
          "resolvedAt",
          "createdAt"
        ],
        "additionalProperties": false
      },
      "O_DisputeAuditItem": {
        "type": "object",
        "properties": {
          "auditId": {
            "type": "string",
            "pattern": "^(?:0|[1-9]\\d*)$"
          },
          "occurredAt": {
            "type": "string",
            "format": "date-time"
          },
          "tableName": {
            "type": "string"
          },
          "action": {
            "type": "string"
          },
          "recordId": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "actor": {
            "type": "object",
            "additionalProperties": true
          },
          "oldValue": {
            "oneOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ]
          },
          "newValue": {
            "oneOf": [
              {
                "type": "object",
                "additionalProperties": true
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "auditId",
          "occurredAt",
          "tableName",
          "action",
          "recordId",
          "actor",
          "oldValue",
          "newValue"
        ],
        "additionalProperties": false
      },
      "O_DisputeActionAuditItem": {
        "type": "object",
        "properties": {
          "auditId": {
            "type": "string",
            "pattern": "^(?:0|[1-9]\\d*)$"
          },
          "occurredAt": {
            "type": "string",
            "format": "date-time"
          },
          "apiKeyId": {
            "type": "string",
            "format": "uuid"
          },
          "requestId": {
            "type": "string"
          },
          "action": {
            "const": "external_wallet_operation.create"
          },
          "targetType": {
            "const": "external_wallet_operation"
          },
          "targetId": {
            "type": "string",
            "format": "uuid"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": true
          }
        },
        "required": [
          "auditId",
          "occurredAt",
          "apiKeyId",
          "requestId",
          "action",
          "targetType",
          "targetId",
          "metadata"
        ],
        "additionalProperties": false
      },
      "O_DisputeCallbacksCollection": {
        "type": "object",
        "properties": {
          "name": {
            "const": "callbacks"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/O_DisputeCallbackItem"
            }
          },
          "nextCursor": {
            "oneOf": [
              {
                "type": "string",
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              {
                "type": "null"
              }
            ]
          },
          "truncatedByBytes": {
            "type": "boolean"
          }
        },
        "required": [
          "name",
          "items",
          "nextCursor",
          "truncatedByBytes"
        ],
        "additionalProperties": false
      },
      "O_DisputeConflictsCollection": {
        "type": "object",
        "properties": {
          "name": {
            "const": "conflicts"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/O_DisputeConflictItem"
            }
          },
          "nextCursor": {
            "oneOf": [
              {
                "type": "string",
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              {
                "type": "null"
              }
            ]
          },
          "truncatedByBytes": {
            "type": "boolean"
          }
        },
        "required": [
          "name",
          "items",
          "nextCursor",
          "truncatedByBytes"
        ],
        "additionalProperties": false
      },
      "O_DisputeReconciliationCollection": {
        "type": "object",
        "properties": {
          "name": {
            "const": "reconciliation"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/O_DisputeReconciliationItem"
            }
          },
          "nextCursor": {
            "oneOf": [
              {
                "type": "string",
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              {
                "type": "null"
              }
            ]
          },
          "truncatedByBytes": {
            "type": "boolean"
          }
        },
        "required": [
          "name",
          "items",
          "nextCursor",
          "truncatedByBytes"
        ],
        "additionalProperties": false
      },
      "O_DisputeAuditCollection": {
        "type": "object",
        "properties": {
          "name": {
            "const": "audit"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/O_DisputeAuditItem"
            }
          },
          "nextCursor": {
            "oneOf": [
              {
                "type": "string",
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              {
                "type": "null"
              }
            ]
          },
          "truncatedByBytes": {
            "type": "boolean"
          }
        },
        "required": [
          "name",
          "items",
          "nextCursor",
          "truncatedByBytes"
        ],
        "additionalProperties": false
      },
      "O_DisputeActionAuditCollection": {
        "type": "object",
        "properties": {
          "name": {
            "const": "actionAudit"
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/O_DisputeActionAuditItem"
            }
          },
          "nextCursor": {
            "oneOf": [
              {
                "type": "string",
                "pattern": "^[A-Za-z0-9_-]+$"
              },
              {
                "type": "null"
              }
            ]
          },
          "truncatedByBytes": {
            "type": "boolean"
          }
        },
        "required": [
          "name",
          "items",
          "nextCursor",
          "truncatedByBytes"
        ],
        "additionalProperties": false
      },
      "W_Uuid": {
        "type": "string",
        "format": "uuid",
        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$"
      },
      "W_MoneyPositive": {
        "type": "integer",
        "minimum": 1,
        "maximum": 9007199254740991
      },
      "W_MoneyNonnegative": {
        "type": "integer",
        "minimum": 0,
        "maximum": 9007199254740991
      },
      "W_Currency": {
        "type": "string",
        "pattern": "^[A-Z]{3}$"
      },
      "W_KeyId": {
        "type": "string",
        "pattern": "^[A-Za-z0-9._-]{1,128}$"
      },
      "W_Error": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "error"
        ],
        "properties": {
          "error": {
            "type": "string",
            "enum": [
              "INVALID_REQUEST",
              "WALLET_CALLBACK_AUTHENTICATION_FAILED",
              "WALLET_CALLBACK_CONFLICT",
              "OPERATOR_AUTHENTICATION_FAILED",
              "WALLET_SIGNING_KEY_NOT_FOUND",
              "WALLET_SIGNING_KEY_IN_USE",
              "WALLET_CALLBACK_RESOURCE_NOT_FOUND",
              "EXTERNAL_WALLET_CONFLICT",
              "EXTERNAL_WALLET_UNAVAILABLE",
              "EXTERNAL_WALLET_OPERATION_NOT_FOUND",
              "WALLET_RESPONSE_SIGNING_KEY_NOT_FOUND",
              "INTERNAL_ERROR",
              "WALLET_TRANSACTION_CONFLICT"
            ]
          },
          "details": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "required": [
                "code",
                "path",
                "message"
              ],
              "properties": {
                "code": {
                  "type": "string"
                },
                "path": {
                  "type": "array",
                  "items": {
                    "oneOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "integer"
                      }
                    ]
                  }
                },
                "message": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "W_FinalizedCallback": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "type",
          "operationId",
          "externalTransactionId",
          "status",
          "amount",
          "currency",
          "balance"
        ],
        "properties": {
          "type": {
            "const": "transaction.finalized"
          },
          "operationId": {
            "$ref": "#/components/schemas/W_Uuid"
          },
          "externalTransactionId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "status": {
            "type": "string",
            "enum": [
              "approved",
              "declined",
              "reversed",
              "manual_review"
            ]
          },
          "amount": {
            "$ref": "#/components/schemas/W_MoneyPositive"
          },
          "currency": {
            "$ref": "#/components/schemas/W_Currency"
          },
          "balance": {
            "$ref": "#/components/schemas/W_MoneyNonnegative"
          }
        }
      },
      "W_StatementBalance": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "playerId",
          "currency",
          "balance"
        ],
        "properties": {
          "playerId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "currency": {
            "$ref": "#/components/schemas/W_Currency"
          },
          "balance": {
            "$ref": "#/components/schemas/W_MoneyNonnegative"
          }
        }
      },
      "W_BalanceStatementCallback": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "type",
          "statementId",
          "asOf",
          "balances"
        ],
        "properties": {
          "type": {
            "const": "balance.statement"
          },
          "statementId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 256
          },
          "asOf": {
            "type": "string",
            "format": "date-time"
          },
          "balances": {
            "type": "array",
            "minItems": 1,
            "maxItems": 10000,
            "items": {
              "$ref": "#/components/schemas/W_StatementBalance"
            }
          }
        }
      },
      "W_CallbackPayload": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/W_FinalizedCallback"
          },
          {
            "$ref": "#/components/schemas/W_BalanceStatementCallback"
          }
        ]
      },
      "W_CallbackAcceptance": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "messageId",
          "status",
          "duplicate"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/W_Uuid"
          },
          "messageId": {
            "$ref": "#/components/schemas/W_Uuid"
          },
          "status": {
            "type": "string",
            "enum": [
              "processed",
              "manual_review"
            ]
          },
          "duplicate": {
            "type": "boolean"
          },
          "reconciliationRunId": {
            "$ref": "#/components/schemas/W_Uuid"
          }
        }
      },
      "W_SigningKeyCreate": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "keyId",
          "publicKeyPem"
        ],
        "properties": {
          "keyId": {
            "$ref": "#/components/schemas/W_KeyId"
          },
          "publicKeyPem": {
            "type": "string",
            "minLength": 64,
            "maxLength": 4096
          },
          "notBefore": {
            "type": "string",
            "format": "date-time"
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "W_SigningKeyResult": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "keyId",
          "algorithm",
          "status"
        ],
        "properties": {
          "keyId": {
            "$ref": "#/components/schemas/W_KeyId"
          },
          "algorithm": {
            "const": "Ed25519"
          },
          "status": {
            "const": "active"
          },
          "notBefore": {
            "type": "string",
            "format": "date-time"
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "W_WalletModeRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "mode",
          "echo"
        ],
        "properties": {
          "mode": {
            "type": "string",
            "enum": [
              "custodial",
              "external"
            ]
          },
          "echo": {
            "type": "object",
            "required": [
              "target"
            ],
            "additionalProperties": false,
            "properties": {
              "target": {
                "type": "string",
                "minLength": 1,
                "maxLength": 2048
              }
            }
          }
        }
      },
      "W_WalletModeResult": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "type": "string",
            "enum": [
              "custodial",
              "external"
            ]
          }
        }
      },
      "W_ConnectorRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "endpoint",
          "responseKeyId",
          "echo"
        ],
        "properties": {
          "endpoint": {
            "type": "string",
            "format": "uri",
            "maxLength": 2048
          },
          "responseKeyId": {
            "$ref": "#/components/schemas/W_KeyId"
          },
          "echo": {
            "type": "object",
            "required": [
              "target"
            ],
            "additionalProperties": false,
            "properties": {
              "target": {
                "type": "string",
                "minLength": 1,
                "maxLength": 2048
              }
            }
          }
        }
      },
      "W_ConnectorResult": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "endpoint",
          "responseKeyId",
          "status"
        ],
        "properties": {
          "endpoint": {
            "type": "string",
            "format": "uri"
          },
          "responseKeyId": {
            "$ref": "#/components/schemas/W_KeyId"
          },
          "status": {
            "const": "active"
          }
        }
      },
      "W_ExternalOperationCommand": {
        "oneOf": [
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "operationId",
              "kind",
              "playerId",
              "currency",
              "amount"
            ],
            "properties": {
              "operationId": {
                "$ref": "#/components/schemas/W_Uuid"
              },
              "playerId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 256
              },
              "currency": {
                "$ref": "#/components/schemas/W_Currency"
              },
              "kind": {
                "const": "debit"
              },
              "amount": {
                "$ref": "#/components/schemas/W_MoneyPositive"
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "operationId",
              "kind",
              "playerId",
              "currency",
              "amount"
            ],
            "properties": {
              "operationId": {
                "$ref": "#/components/schemas/W_Uuid"
              },
              "playerId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 256
              },
              "currency": {
                "$ref": "#/components/schemas/W_Currency"
              },
              "kind": {
                "const": "credit"
              },
              "amount": {
                "$ref": "#/components/schemas/W_MoneyPositive"
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "operationId",
              "kind",
              "playerId",
              "currency",
              "originalOperationId"
            ],
            "properties": {
              "operationId": {
                "$ref": "#/components/schemas/W_Uuid"
              },
              "playerId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 256
              },
              "currency": {
                "$ref": "#/components/schemas/W_Currency"
              },
              "kind": {
                "const": "cancel"
              },
              "originalOperationId": {
                "$ref": "#/components/schemas/W_Uuid"
              }
            }
          },
          {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "operationId",
              "kind",
              "playerId",
              "currency"
            ],
            "properties": {
              "operationId": {
                "$ref": "#/components/schemas/W_Uuid"
              },
              "playerId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 256
              },
              "currency": {
                "$ref": "#/components/schemas/W_Currency"
              },
              "kind": {
                "const": "balance"
              }
            }
          }
        ]
      },
      "W_ExternalOperationResult": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "operationId",
          "status",
          "duplicate",
          "remoteTransactionId",
          "balance",
          "currency"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/W_Uuid"
          },
          "operationId": {
            "$ref": "#/components/schemas/W_Uuid"
          },
          "status": {
            "type": "string",
            "enum": [
              "pending",
              "approved",
              "declined",
              "unknown",
              "manual_review",
              "cancelled"
            ]
          },
          "duplicate": {
            "type": "boolean"
          },
          "remoteTransactionId": {
            "type": [
              "string",
              "null"
            ],
            "minLength": 1,
            "maxLength": 256
          },
          "balance": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/W_MoneyNonnegative"
              },
              {
                "type": "null"
              }
            ]
          },
          "currency": {
            "$ref": "#/components/schemas/W_Currency"
          }
        }
      },
      "W_ReconciliationCase": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "accountId",
          "playerId",
          "currency",
          "externalBalance",
          "comparisonBalance",
          "evidenceOperationRecordId",
          "evidenceOperationId",
          "delta",
          "reasonCode",
          "status",
          "resolutionNote",
          "createdAt"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/W_Uuid"
          },
          "accountId": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/W_Uuid"
              },
              {
                "type": "null"
              }
            ]
          },
          "playerId": {
            "type": "string"
          },
          "currency": {
            "$ref": "#/components/schemas/W_Currency"
          },
          "externalBalance": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/W_MoneyNonnegative"
              },
              {
                "type": "null"
              }
            ]
          },
          "comparisonBalance": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/W_MoneyNonnegative"
              },
              {
                "type": "null"
              }
            ]
          },
          "evidenceOperationRecordId": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/W_Uuid"
              },
              {
                "type": "null"
              }
            ]
          },
          "evidenceOperationId": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/W_Uuid"
              },
              {
                "type": "null"
              }
            ]
          },
          "delta": {
            "oneOf": [
              {
                "type": "integer",
                "minimum": -9007199254740991,
                "maximum": 9007199254740991
              },
              {
                "type": "null"
              }
            ]
          },
          "reasonCode": {
            "type": "string",
            "enum": [
              "balance_mismatch",
              "missing_internal_account",
              "missing_external_balance",
              "missing_authoritative_evidence"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "open",
              "resolved"
            ]
          },
          "resolutionNote": {
            "type": [
              "string",
              "null"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "W_ReconciliationRun": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "statementId",
          "statementAsOf",
          "evidenceCutoffAt",
          "status",
          "balancesChecked",
          "mismatchCount",
          "comparisonBasis",
          "createdAt",
          "completedAt",
          "cases"
        ],
        "properties": {
          "id": {
            "$ref": "#/components/schemas/W_Uuid"
          },
          "statementId": {
            "type": "string"
          },
          "statementAsOf": {
            "type": "string",
            "format": "date-time"
          },
          "evidenceCutoffAt": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string",
            "enum": [
              "running",
              "completed",
              "failed"
            ]
          },
          "balancesChecked": {
            "type": "integer",
            "minimum": 0
          },
          "mismatchCount": {
            "type": "integer",
            "minimum": 0
          },
          "comparisonBasis": {
            "type": "string",
            "enum": [
              "custodial_shadow_legacy",
              "authoritative_operation_evidence"
            ]
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "completedAt": {
            "oneOf": [
              {
                "type": "string",
                "format": "date-time"
              },
              {
                "type": "null"
              }
            ]
          },
          "cases": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/W_ReconciliationCase"
            }
          }
        }
      },
      "D_Record_string_unknown": {
        "type": "object",
        "properties": {},
        "additionalProperties": {}
      },
      "D_ActivityLog": {
        "type": "object",
        "properties": {
          "from": {
            "type": "string"
          },
          "to": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "changes",
              "all"
            ]
          },
          "events": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/D_ActivityEvent"
            }
          },
          "nextCursor": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "required": [
          "from",
          "to",
          "kind",
          "events",
          "nextCursor"
        ]
      },
      "D_ActivityEvent": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "occurredAt": {
            "type": "string"
          },
          "actor": {
            "type": "string"
          },
          "viaConsole": {
            "type": "boolean"
          },
          "action": {
            "type": "string"
          },
          "targetType": {
            "type": "string"
          },
          "targetId": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "requestId": {
            "type": "string"
          },
          "metadata": {
            "$ref": "#/components/schemas/D_Record_string_unknown"
          }
        },
        "required": [
          "id",
          "occurredAt",
          "actor",
          "viaConsole",
          "action",
          "targetType",
          "targetId",
          "requestId",
          "metadata"
        ]
      },
      "D_BackofficeAlerts": {
        "type": "object",
        "properties": {
          "checkedAt": {
            "type": "string"
          },
          "stuckAfterMinutes": {
            "type": "number"
          },
          "alerts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/D_BackofficeAlert"
            }
          }
        },
        "required": [
          "checkedAt",
          "stuckAfterMinutes",
          "alerts"
        ]
      },
      "D_BackofficeAlert": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "enum": [
              "rounds-stuck",
              "wallet-verifier",
              "statement-missing",
              "projection-stalled",
              "projection-behind",
              "changes-waiting",
              "large-wins"
            ]
          },
          "severity": {
            "type": "string",
            "enum": [
              "info",
              "warning",
              "critical"
            ]
          },
          "count": {
            "type": "number"
          },
          "detail": {
            "type": "string"
          },
          "page": {
            "type": "string"
          }
        },
        "required": [
          "code",
          "severity",
          "count",
          "detail",
          "page"
        ]
      },
      "D_OperatorChangeView": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "action": {
            "type": "string",
            "enum": [
              "free-rounds.create",
              "free-rounds.remove",
              "tournament.create",
              "tournament.close",
              "jackpot.create",
              "campaign.create",
              "campaign.status",
              "market.profile",
              "jackpot.membership.offer",
              "jackpot.membership.accept",
              "wallet.mode",
              "wallet.connector",
              "wallet.signing-key",
              "api-key.create",
              "game.entitlement",
              "console.user.create",
              "console.user.role",
              "console.user.reset",
              "wallet.operation",
              "wallet.adjust",
              "player.erase",
              "round.void"
            ]
          },
          "subject": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "terms": {
            "$ref": "#/components/schemas/D_Record_string_unknown"
          },
          "termsSha256": {
            "type": "string"
          },
          "maker": {
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          },
          "expiresAt": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "rejected",
              "pending",
              "expired",
              "approved"
            ]
          },
          "checker": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "decidedAt": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "result": {}
        },
        "required": [
          "id",
          "action",
          "subject",
          "terms",
          "termsSha256",
          "maker",
          "createdAt",
          "expiresAt",
          "status",
          "checker",
          "decidedAt",
          "result"
        ]
      },
      "D_Record_string_number": {
        "type": "object",
        "properties": {},
        "additionalProperties": {
          "type": "number"
        }
      },
      "D_LiveOpsReport": {
        "type": "object",
        "properties": {
          "asOf": {
            "type": "string"
          },
          "from": {
            "type": "string"
          },
          "to": {
            "type": "string"
          },
          "currency": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "items": {
            "type": "object",
            "properties": {
              "rows": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/D_LiveOpsItem"
                }
              },
              "truncated": {
                "type": "boolean"
              }
            },
            "required": [
              "rows",
              "truncated"
            ]
          },
          "jackpots": {
            "type": "object",
            "properties": {
              "rows": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/D_LiveOpsPool"
                }
              },
              "truncated": {
                "type": "boolean"
              }
            },
            "required": [
              "rows",
              "truncated"
            ]
          }
        },
        "required": [
          "asOf",
          "from",
          "to",
          "currency",
          "items",
          "jackpots"
        ]
      },
      "D_LiveOpsItem": {
        "type": "object",
        "properties": {
          "kind": {
            "type": "string",
            "enum": [
              "free-rounds",
              "campaign",
              "tournament"
            ]
          },
          "id": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "games": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "currency": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "startsAt": {
            "type": "string"
          },
          "endsAt": {
            "type": "string"
          },
          "budget": {
            "type": "string"
          },
          "spent": {
            "type": "string"
          },
          "reserved": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "owed": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "required": [
          "kind",
          "id",
          "code",
          "games",
          "currency",
          "status",
          "startsAt",
          "endsAt",
          "budget",
          "spent",
          "reserved",
          "owed"
        ]
      },
      "D_LiveOpsPool": {
        "type": "object",
        "properties": {
          "poolKey": {
            "type": "string"
          },
          "game": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "scope": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "tiers": {
            "type": "number"
          },
          "pot": {
            "type": "string"
          },
          "contributed": {
            "type": "string"
          },
          "owed": {
            "type": "string"
          },
          "tierDetails": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "tier": {
                  "type": "string"
                },
                "cycle": {
                  "type": "string"
                },
                "pot": {
                  "type": "string"
                },
                "reserve": {
                  "type": "string"
                },
                "owed": {
                  "type": "string"
                },
                "paid": {
                  "type": "string"
                },
                "contributed": {
                  "type": "string"
                }
              },
              "required": [
                "tier",
                "cycle",
                "pot",
                "reserve",
                "owed",
                "paid",
                "contributed"
              ]
            }
          }
        },
        "required": [
          "poolKey",
          "game",
          "currency",
          "scope",
          "tiers",
          "pot",
          "contributed",
          "owed",
          "tierDetails"
        ]
      },
      "D_LiveOpsGame": {
        "type": "object",
        "properties": {
          "gameVersionId": {
            "type": "string"
          },
          "game": {
            "type": "string"
          },
          "version": {
            "type": "string"
          },
          "currencies": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "freeRounds": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "object",
                "properties": {
                  "currency": {
                    "type": "string"
                  },
                  "payoutCategory": {
                    "type": "string"
                  },
                  "betAmounts": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    }
                  }
                },
                "required": [
                  "currency",
                  "payoutCategory",
                  "betAmounts"
                ]
              }
            ]
          },
          "jackpots": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "object",
                "properties": {
                  "currency": {
                    "type": "string"
                  },
                  "pools": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "properties": {
                        "key": {
                          "type": "string"
                        },
                        "tiers": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      },
                      "required": [
                        "key",
                        "tiers"
                      ]
                    }
                  }
                },
                "required": [
                  "currency",
                  "pools"
                ]
              }
            ]
          }
        },
        "required": [
          "gameVersionId",
          "game",
          "version",
          "currencies",
          "freeRounds",
          "jackpots"
        ]
      },
      "D_MarketProfile": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "market": {
            "type": "string"
          },
          "taxBasis": {
            "type": "string",
            "enum": [
              "ggr",
              "ngr",
              "turnover"
            ]
          },
          "rateBps": {
            "type": "number"
          },
          "freeRoundExempt": {
            "type": "boolean"
          },
          "validFrom": {
            "type": "string"
          },
          "validTo": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "state": {
            "type": "string",
            "enum": [
              "scheduled",
              "current",
              "past"
            ]
          },
          "changeRequestId": {
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "market",
          "taxBasis",
          "rateBps",
          "freeRoundExempt",
          "validFrom",
          "validTo",
          "state",
          "changeRequestId",
          "createdAt"
        ]
      },
      "D_PlatformAlertView": {
        "type": "object",
        "properties": {
          "fingerprint": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "firing",
              "resolved"
            ]
          },
          "alertname": {
            "type": "string"
          },
          "severity": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "operator": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "summary": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "runbook": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "labels": {
            "$ref": "#/components/schemas/D_Record_string_string"
          },
          "annotations": {
            "$ref": "#/components/schemas/D_Record_string_string"
          },
          "startsAt": {
            "type": "string"
          },
          "endsAt": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "lastReceivedAt": {
            "type": "string"
          }
        },
        "required": [
          "fingerprint",
          "status",
          "alertname",
          "severity",
          "operator",
          "summary",
          "runbook",
          "labels",
          "annotations",
          "startsAt",
          "endsAt",
          "lastReceivedAt"
        ]
      },
      "D_Record_string_string": {
        "type": "object",
        "properties": {},
        "additionalProperties": {
          "type": "string"
        }
      },
      "D_BackofficePlayer": {
        "type": "object",
        "properties": {
          "externalPlayerId": {
            "type": "string"
          },
          "walletMode": {
            "type": "string"
          },
          "accounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/D_BackofficeAccount"
            }
          },
          "freeRounds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/D_BackofficePlayerFreeRounds"
            }
          },
          "tournaments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/D_BackofficePlayerTournament"
            }
          },
          "adjustments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/D_BackofficeAdjustment"
            }
          }
        },
        "required": [
          "externalPlayerId",
          "walletMode",
          "accounts",
          "freeRounds",
          "tournaments",
          "adjustments"
        ]
      },
      "D_BackofficeAccount": {
        "type": "object",
        "properties": {
          "accountId": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "balance": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "number"
              }
            ]
          },
          "createdAt": {
            "type": "string"
          },
          "stopped": {
            "type": "boolean"
          },
          "lastRoundAt": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "responsibleGaming": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "object",
                "properties": {
                  "realityCheckIntervalSeconds": {
                    "type": "number"
                  },
                  "maxSingleWager": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  },
                  "dailyNetLossLimit": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "number"
                      }
                    ]
                  },
                  "setBy": {
                    "type": "string"
                  },
                  "updatedAt": {
                    "type": "string"
                  }
                },
                "required": [
                  "realityCheckIntervalSeconds",
                  "maxSingleWager",
                  "dailyNetLossLimit",
                  "setBy",
                  "updatedAt"
                ]
              }
            ]
          },
          "block": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "object",
                "properties": {
                  "until": {
                    "type": "string"
                  },
                  "timeOutUntil": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  },
                  "selfExcludedUntil": {
                    "anyOf": [
                      {
                        "type": "null"
                      },
                      {
                        "type": "string"
                      }
                    ]
                  }
                },
                "required": [
                  "until",
                  "timeOutUntil",
                  "selfExcludedUntil"
                ]
              }
            ]
          },
          "pendingLimits": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "object",
                "properties": {
                  "limits": {
                    "$ref": "#/components/schemas/D_Record_string_number_null"
                  },
                  "effectiveAt": {
                    "type": "string"
                  }
                },
                "required": [
                  "limits",
                  "effectiveAt"
                ]
              }
            ]
          }
        },
        "required": [
          "accountId",
          "currency",
          "balance",
          "createdAt",
          "stopped",
          "lastRoundAt",
          "responsibleGaming",
          "block",
          "pendingLimits"
        ]
      },
      "D_Record_string_number_null": {
        "type": "object",
        "properties": {},
        "additionalProperties": {
          "anyOf": [
            {
              "type": "null"
            },
            {
              "type": "number"
            }
          ]
        }
      },
      "D_BackofficePlayerFreeRounds": {
        "type": "object",
        "properties": {
          "grantId": {
            "type": "string"
          },
          "campaign": {
            "type": "string"
          },
          "game": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "granted": {
            "type": "number"
          },
          "remaining": {
            "type": "number"
          },
          "grantedAt": {
            "type": "string"
          },
          "endsAt": {
            "type": "string"
          },
          "campaignStatus": {
            "type": "string"
          }
        },
        "required": [
          "grantId",
          "campaign",
          "game",
          "currency",
          "granted",
          "remaining",
          "grantedAt",
          "endsAt",
          "campaignStatus"
        ]
      },
      "D_BackofficePlayerTournament": {
        "type": "object",
        "properties": {
          "tournamentId": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "joinedAt": {
            "type": "string"
          },
          "endsAt": {
            "type": "string"
          },
          "rank": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "number"
              }
            ]
          },
          "rounds": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "payoutMinor": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "wagerMinor": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "required": [
          "tournamentId",
          "code",
          "currency",
          "joinedAt",
          "endsAt",
          "rank",
          "rounds",
          "payoutMinor",
          "wagerMinor"
        ]
      },
      "D_BackofficeAdjustment": {
        "type": "object",
        "properties": {
          "changeId": {
            "type": "string"
          },
          "ledgerEntryId": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "amountMinor": {
            "type": "string"
          },
          "balanceAfter": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          },
          "reference": {
            "type": "string"
          },
          "createdAt": {
            "type": "string"
          }
        },
        "required": [
          "changeId",
          "ledgerEntryId",
          "currency",
          "amountMinor",
          "balanceAfter",
          "reason",
          "reference",
          "createdAt"
        ]
      },
      "D_PlayerActivity": {
        "type": "object",
        "properties": {
          "externalPlayerId": {
            "type": "string"
          },
          "from": {
            "type": "string"
          },
          "to": {
            "type": "string"
          },
          "days": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/D_PlayerActivityDay"
            }
          },
          "velocity": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/D_PlayerVelocity"
            }
          },
          "adjustments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/D_BackofficeAdjustment"
            }
          }
        },
        "required": [
          "externalPlayerId",
          "from",
          "to",
          "days",
          "velocity",
          "adjustments"
        ]
      },
      "D_PlayerActivityDay": {
        "type": "object",
        "properties": {
          "day": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "rounds": {
            "type": "number"
          },
          "wager": {
            "type": "string"
          },
          "payout": {
            "type": "string"
          },
          "net": {
            "type": "string"
          }
        },
        "required": [
          "day",
          "currency",
          "rounds",
          "wager",
          "payout",
          "net"
        ]
      },
      "D_PlayerVelocity": {
        "type": "object",
        "properties": {
          "currency": {
            "type": "string"
          },
          "day": {
            "type": "string"
          },
          "wager": {
            "type": "string"
          },
          "medianWager": {
            "type": "string"
          },
          "times": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "required": [
          "currency",
          "day",
          "wager",
          "medianWager",
          "times"
        ]
      },
      "D_PlayerDataExport": {
        "type": "object",
        "properties": {
          "format": {
            "type": "string",
            "const": "rgs-player-data-v1"
          },
          "exportedAt": {
            "type": "string"
          },
          "externalPlayerId": {
            "type": "string"
          },
          "player": {
            "$ref": "#/components/schemas/D_BackofficePlayer"
          },
          "play": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "currency": {
                  "type": "string"
                },
                "rounds": {
                  "type": "number"
                },
                "firstRoundAt": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "type": "string"
                    }
                  ]
                },
                "lastRoundAt": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "type": "string"
                    }
                  ]
                },
                "wager": {
                  "type": "string"
                },
                "payout": {
                  "type": "string"
                }
              },
              "required": [
                "currency",
                "rounds",
                "firstRoundAt",
                "lastRoundAt",
                "wager",
                "payout"
              ]
            }
          },
          "notes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "format",
          "exportedAt",
          "externalPlayerId",
          "player",
          "play",
          "notes"
        ]
      },
      "D_ResponsibleGamingLimits": {
        "type": "object",
        "properties": {
          "selfExcludedUntil": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "timeOutUntil": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "playBlockedUntil": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "pending": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "object",
                "properties": {
                  "limits": {
                    "$ref": "#/components/schemas/D_Partial_ResponsibleGamingLimitValues"
                  },
                  "effectiveAt": {
                    "type": "string"
                  }
                },
                "required": [
                  "limits",
                  "effectiveAt"
                ]
              }
            ]
          },
          "realityCheckIntervalSeconds": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "number"
              }
            ]
          },
          "maxSingleWager": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "number"
              }
            ]
          },
          "dailyNetLossLimit": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "number"
              }
            ]
          },
          "dailyDepositLimit": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "number"
              }
            ]
          },
          "maxSessionSeconds": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "number"
              }
            ]
          }
        },
        "required": [
          "selfExcludedUntil",
          "timeOutUntil",
          "playBlockedUntil",
          "pending",
          "realityCheckIntervalSeconds",
          "maxSingleWager",
          "dailyNetLossLimit",
          "dailyDepositLimit",
          "maxSessionSeconds"
        ]
      },
      "D_Partial_ResponsibleGamingLimitValues": {
        "type": "object",
        "properties": {
          "realityCheckIntervalSeconds": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "number"
              }
            ]
          },
          "maxSingleWager": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "number"
              }
            ]
          },
          "dailyNetLossLimit": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "number"
              }
            ]
          },
          "dailyDepositLimit": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "number"
              }
            ]
          },
          "maxSessionSeconds": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "number"
              }
            ]
          }
        }
      },
      "D_PlayerWins": {
        "type": "object",
        "properties": {
          "externalPlayerId": {
            "type": "string"
          },
          "from": {
            "type": "string"
          },
          "to": {
            "type": "string"
          },
          "wins": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/D_PlayerWin"
            }
          }
        },
        "required": [
          "externalPlayerId",
          "from",
          "to",
          "wins"
        ]
      },
      "D_PlayerWin": {
        "type": "object",
        "properties": {
          "multiplier": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "roundId": {
            "type": "string"
          },
          "accountId": {
            "type": "string"
          },
          "externalRoundId": {
            "type": "string"
          },
          "gameCode": {
            "type": "string"
          },
          "gameVersion": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "created",
              "debit_pending",
              "open",
              "credit_pending",
              "settled",
              "cancel_pending",
              "cancelled",
              "manual_review"
            ]
          },
          "currency": {
            "type": "string"
          },
          "wager": {
            "type": "number"
          },
          "payout": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "number"
              }
            ]
          },
          "settlementMode": {
            "type": "string"
          },
          "fundingSource": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "freeRoundGrantId": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "roomId": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "createdAt": {
            "type": "string"
          },
          "settledAt": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "required": [
          "multiplier",
          "roundId",
          "accountId",
          "externalRoundId",
          "gameCode",
          "gameVersion",
          "status",
          "currency",
          "wager",
          "payout",
          "settlementMode",
          "fundingSource",
          "freeRoundGrantId",
          "roomId",
          "createdAt",
          "settledAt"
        ]
      },
      "D_CohortReport": {
        "type": "object",
        "properties": {
          "from": {
            "type": "string"
          },
          "to": {
            "type": "string"
          },
          "currency": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "cohortsSince": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "measuredThrough": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/D_CohortRow"
            }
          }
        },
        "required": [
          "from",
          "to",
          "currency",
          "cohortsSince",
          "measuredThrough",
          "rows"
        ]
      },
      "D_CohortRow": {
        "type": "object",
        "properties": {
          "cohortDay": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "accounts": {
            "type": "string"
          },
          "baseline": {
            "type": "boolean"
          },
          "returnedD1": {
            "type": "string"
          },
          "returnedD7": {
            "type": "string"
          },
          "returnedD30": {
            "type": "string"
          },
          "d1Rate": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "d7Rate": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "d30Rate": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "required": [
          "cohortDay",
          "currency",
          "accounts",
          "baseline",
          "returnedD1",
          "returnedD7",
          "returnedD30",
          "d1Rate",
          "d7Rate",
          "d30Rate"
        ]
      },
      "D_DailyReport": {
        "type": "object",
        "properties": {
          "from": {
            "type": "string"
          },
          "to": {
            "type": "string"
          },
          "groupBy": {
            "type": "string",
            "enum": [
              "market",
              "day",
              "game"
            ]
          },
          "currency": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "gameCode": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "projection": {
            "type": "object",
            "properties": {
              "projectedThrough": {
                "type": "string"
              },
              "latestFact": {
                "type": "string"
              },
              "pendingFacts": {
                "type": "string"
              },
              "stalledReason": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              }
            },
            "required": [
              "projectedThrough",
              "latestFact",
              "pendingFacts",
              "stalledReason"
            ]
          },
          "rows": {
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/D_DailyReportDayRow"
                },
                {
                  "$ref": "#/components/schemas/D_DailyReportGameRow"
                },
                {
                  "$ref": "#/components/schemas/D_DailyReportMarketRow"
                }
              ]
            }
          }
        },
        "required": [
          "from",
          "to",
          "groupBy",
          "currency",
          "gameCode",
          "projection",
          "rows"
        ]
      },
      "D_DailyReportDayRow": {
        "type": "object",
        "properties": {
          "day": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "activeAccounts": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "averagePlaySeconds": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "cashRounds": {
            "type": "string"
          },
          "cashWager": {
            "type": "string"
          },
          "cashPayout": {
            "type": "string"
          },
          "ggr": {
            "type": "string"
          },
          "promoRounds": {
            "type": "string"
          },
          "promoPayout": {
            "type": "string"
          },
          "ngr": {
            "type": "string"
          },
          "observedRtp": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "margin": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "hitRate": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "required": [
          "day",
          "currency",
          "activeAccounts",
          "averagePlaySeconds",
          "cashRounds",
          "cashWager",
          "cashPayout",
          "ggr",
          "promoRounds",
          "promoPayout",
          "ngr",
          "observedRtp",
          "margin",
          "hitRate"
        ]
      },
      "D_DailyReportGameRow": {
        "type": "object",
        "properties": {
          "gameCode": {
            "type": "string"
          },
          "gameVersion": {
            "type": "string"
          },
          "mathVariant": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "currency": {
            "type": "string"
          },
          "theoreticalRtp": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "cashRounds": {
            "type": "string"
          },
          "cashWager": {
            "type": "string"
          },
          "cashPayout": {
            "type": "string"
          },
          "ggr": {
            "type": "string"
          },
          "promoRounds": {
            "type": "string"
          },
          "promoPayout": {
            "type": "string"
          },
          "ngr": {
            "type": "string"
          },
          "observedRtp": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "margin": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "hitRate": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "required": [
          "gameCode",
          "gameVersion",
          "mathVariant",
          "currency",
          "theoreticalRtp",
          "cashRounds",
          "cashWager",
          "cashPayout",
          "ggr",
          "promoRounds",
          "promoPayout",
          "ngr",
          "observedRtp",
          "margin",
          "hitRate"
        ]
      },
      "D_DailyReportMarketRow": {
        "type": "object",
        "properties": {
          "market": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "currency": {
            "type": "string"
          },
          "cashRounds": {
            "type": "string"
          },
          "cashWager": {
            "type": "string"
          },
          "cashPayout": {
            "type": "string"
          },
          "ggr": {
            "type": "string"
          },
          "promoRounds": {
            "type": "string"
          },
          "promoPayout": {
            "type": "string"
          },
          "ngr": {
            "type": "string"
          },
          "observedRtp": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "margin": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "hitRate": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "required": [
          "market",
          "currency",
          "cashRounds",
          "cashWager",
          "cashPayout",
          "ggr",
          "promoRounds",
          "promoPayout",
          "ngr",
          "observedRtp",
          "margin",
          "hitRate"
        ]
      },
      "D_LiabilityReport": {
        "type": "object",
        "properties": {
          "asOf": {
            "type": "string"
          },
          "currency": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "totals": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/D_LiabilityTotals"
            }
          },
          "campaigns": {
            "type": "object",
            "properties": {
              "rows": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/D_LiabilityCampaign"
                }
              },
              "truncated": {
                "type": "boolean"
              }
            },
            "required": [
              "rows",
              "truncated"
            ]
          },
          "jackpots": {
            "type": "object",
            "properties": {
              "rows": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/D_LiabilityJackpotTier"
                }
              },
              "truncated": {
                "type": "boolean"
              }
            },
            "required": [
              "rows",
              "truncated"
            ]
          }
        },
        "required": [
          "asOf",
          "currency",
          "totals",
          "campaigns",
          "jackpots"
        ]
      },
      "D_LiabilityTotals": {
        "type": "object",
        "properties": {
          "currency": {
            "type": "string"
          },
          "campaignReservedMaximum": {
            "type": "string"
          },
          "campaignOwed": {
            "type": "string"
          },
          "jackpotPot": {
            "type": "string"
          },
          "jackpotReserve": {
            "type": "string"
          },
          "jackpotOwed": {
            "type": "string"
          },
          "total": {
            "type": "string"
          }
        },
        "required": [
          "currency",
          "campaignReservedMaximum",
          "campaignOwed",
          "jackpotPot",
          "jackpotReserve",
          "jackpotOwed",
          "total"
        ]
      },
      "D_LiabilityCampaign": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "gameCode": {
            "type": "string"
          },
          "gameVersion": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "payoutCategory": {
            "type": "string"
          },
          "startsAt": {
            "type": "string"
          },
          "endsAt": {
            "type": "string"
          },
          "budget": {
            "type": "string"
          },
          "reservedMaximum": {
            "type": "string"
          },
          "owed": {
            "type": "string"
          },
          "paid": {
            "type": "string"
          }
        },
        "required": [
          "code",
          "gameCode",
          "gameVersion",
          "currency",
          "status",
          "payoutCategory",
          "startsAt",
          "endsAt",
          "budget",
          "reservedMaximum",
          "owed",
          "paid"
        ]
      },
      "D_LiabilityJackpotTier": {
        "type": "object",
        "properties": {
          "poolKey": {
            "type": "string"
          },
          "gameCode": {
            "type": "string"
          },
          "gameVersion": {
            "type": "string"
          },
          "scope": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "currency": {
            "type": "string"
          },
          "tierId": {
            "type": "string"
          },
          "cycle": {
            "type": "string"
          },
          "pot": {
            "type": "string"
          },
          "reserve": {
            "type": "string"
          },
          "owed": {
            "type": "string"
          },
          "paid": {
            "type": "string"
          },
          "contributed": {
            "type": "string"
          },
          "initial": {
            "type": "string"
          }
        },
        "required": [
          "poolKey",
          "gameCode",
          "gameVersion",
          "scope",
          "currency",
          "tierId",
          "cycle",
          "pot",
          "reserve",
          "owed",
          "paid",
          "contributed",
          "initial"
        ]
      },
      "D_TaxReport": {
        "type": "object",
        "properties": {
          "month": {
            "type": "string"
          },
          "market": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "currency": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "complete": {
            "type": "boolean"
          },
          "projection": {
            "type": "object",
            "properties": {
              "projectedThrough": {
                "type": "string"
              },
              "latestFact": {
                "type": "string"
              },
              "pendingFacts": {
                "type": "string"
              },
              "stalledReason": {
                "anyOf": [
                  {
                    "type": "null"
                  },
                  {
                    "type": "string"
                  }
                ]
              }
            },
            "required": [
              "projectedThrough",
              "latestFact",
              "pendingFacts",
              "stalledReason"
            ]
          },
          "lines": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/D_TaxReportLine"
            }
          }
        },
        "required": [
          "month",
          "market",
          "currency",
          "complete",
          "projection",
          "lines"
        ]
      },
      "D_TaxReportLine": {
        "type": "object",
        "properties": {
          "market": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "currency": {
            "type": "string"
          },
          "firstDay": {
            "type": "string"
          },
          "lastDay": {
            "type": "string"
          },
          "profile": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/D_TaxProfileTerms"
              }
            ]
          },
          "taxBase": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "taxDue": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "games": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "cashRounds": {
                  "type": "string"
                },
                "cashWager": {
                  "type": "string"
                },
                "cashPayout": {
                  "type": "string"
                },
                "ggr": {
                  "type": "string"
                },
                "promoRounds": {
                  "type": "string"
                },
                "promoWager": {
                  "type": "string"
                },
                "promoPayout": {
                  "type": "string"
                },
                "ngr": {
                  "type": "string"
                },
                "gameCode": {
                  "type": "string"
                },
                "gameVersion": {
                  "type": "string"
                }
              },
              "required": [
                "cashRounds",
                "cashWager",
                "cashPayout",
                "ggr",
                "promoRounds",
                "promoWager",
                "promoPayout",
                "ngr",
                "gameCode",
                "gameVersion"
              ]
            }
          },
          "cashRounds": {
            "type": "string"
          },
          "cashWager": {
            "type": "string"
          },
          "cashPayout": {
            "type": "string"
          },
          "ggr": {
            "type": "string"
          },
          "promoRounds": {
            "type": "string"
          },
          "promoWager": {
            "type": "string"
          },
          "promoPayout": {
            "type": "string"
          },
          "ngr": {
            "type": "string"
          }
        },
        "required": [
          "market",
          "currency",
          "firstDay",
          "lastDay",
          "profile",
          "taxBase",
          "taxDue",
          "games",
          "cashRounds",
          "cashWager",
          "cashPayout",
          "ggr",
          "promoRounds",
          "promoWager",
          "promoPayout",
          "ngr"
        ]
      },
      "D_TaxProfileTerms": {
        "type": "object",
        "properties": {
          "taxBasis": {
            "type": "string",
            "enum": [
              "ggr",
              "ngr",
              "turnover"
            ]
          },
          "rateBps": {
            "type": "number"
          },
          "freeRoundExempt": {
            "type": "boolean"
          },
          "validFrom": {
            "type": "string"
          },
          "id": {
            "type": "string"
          },
          "validTo": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "required": [
          "taxBasis",
          "rateBps",
          "freeRoundExempt",
          "validFrom",
          "id",
          "validTo"
        ]
      },
      "D_BackofficeRoundListItem": {
        "type": "object",
        "properties": {
          "wallet": {
            "$ref": "#/components/schemas/D_Record_string_string"
          },
          "roundId": {
            "type": "string"
          },
          "accountId": {
            "type": "string"
          },
          "externalRoundId": {
            "type": "string"
          },
          "gameCode": {
            "type": "string"
          },
          "gameVersion": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "created",
              "debit_pending",
              "open",
              "credit_pending",
              "settled",
              "cancel_pending",
              "cancelled",
              "manual_review"
            ]
          },
          "currency": {
            "type": "string"
          },
          "wager": {
            "type": "number"
          },
          "payout": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "number"
              }
            ]
          },
          "settlementMode": {
            "type": "string"
          },
          "fundingSource": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "freeRoundGrantId": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "roomId": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "createdAt": {
            "type": "string"
          },
          "settledAt": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "required": [
          "wallet",
          "roundId",
          "accountId",
          "externalRoundId",
          "gameCode",
          "gameVersion",
          "status",
          "currency",
          "wager",
          "payout",
          "settlementMode",
          "fundingSource",
          "freeRoundGrantId",
          "roomId",
          "createdAt",
          "settledAt"
        ]
      },
      "D_BackofficeRoundDetail": {
        "type": "object",
        "properties": {
          "externalPlayerId": {
            "type": "string"
          },
          "playAction": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "ledger": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "type": {
                  "type": "string"
                },
                "amount": {
                  "type": "number"
                },
                "currency": {
                  "type": "string"
                },
                "balanceAfter": {
                  "type": "number"
                },
                "createdAt": {
                  "type": "string"
                }
              },
              "required": [
                "type",
                "amount",
                "currency",
                "balanceAfter",
                "createdAt"
              ]
            }
          },
          "walletOperations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/D_BackofficeWalletOperation"
            }
          },
          "roundId": {
            "type": "string"
          },
          "accountId": {
            "type": "string"
          },
          "externalRoundId": {
            "type": "string"
          },
          "gameCode": {
            "type": "string"
          },
          "gameVersion": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "created",
              "debit_pending",
              "open",
              "credit_pending",
              "settled",
              "cancel_pending",
              "cancelled",
              "manual_review"
            ]
          },
          "currency": {
            "type": "string"
          },
          "wager": {
            "type": "number"
          },
          "payout": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "number"
              }
            ]
          },
          "settlementMode": {
            "type": "string"
          },
          "fundingSource": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "freeRoundGrantId": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "roomId": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "createdAt": {
            "type": "string"
          },
          "settledAt": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "required": [
          "externalPlayerId",
          "playAction",
          "ledger",
          "walletOperations",
          "roundId",
          "accountId",
          "externalRoundId",
          "gameCode",
          "gameVersion",
          "status",
          "currency",
          "wager",
          "payout",
          "settlementMode",
          "fundingSource",
          "freeRoundGrantId",
          "roomId",
          "createdAt",
          "settledAt"
        ]
      },
      "D_BackofficeWalletOperation": {
        "type": "object",
        "properties": {
          "provider": {
            "type": "string"
          },
          "providerName": {
            "type": "string"
          },
          "role": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "amount": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "number"
              }
            ]
          },
          "currency": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "operationId": {
            "type": "string"
          },
          "remoteTransactionId": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "attempts": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "number"
              }
            ]
          },
          "lastAttemptAt": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "lastError": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "responseSource": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "createdAt": {
            "type": "string"
          },
          "completedAt": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "required": [
          "provider",
          "providerName",
          "role",
          "kind",
          "status",
          "amount",
          "currency",
          "operationId",
          "remoteTransactionId",
          "attempts",
          "lastAttemptAt",
          "lastError",
          "responseSource",
          "createdAt",
          "completedAt"
        ]
      },
      "D_RoundAttention": {
        "type": "object",
        "properties": {
          "olderThanMinutes": {
            "type": "number"
          },
          "rounds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/D_AttentionRound"
            }
          },
          "more": {
            "type": "boolean"
          },
          "outlierThresholds": {
            "$ref": "#/components/schemas/D_OutlierThresholds"
          },
          "outliers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/D_AccountOutlier"
            }
          },
          "moreOutliers": {
            "type": "boolean"
          }
        },
        "required": [
          "olderThanMinutes",
          "rounds",
          "more",
          "outlierThresholds",
          "outliers",
          "moreOutliers"
        ]
      },
      "D_AttentionRound": {
        "type": "object",
        "properties": {
          "externalPlayerId": {
            "type": "string"
          },
          "updatedAt": {
            "type": "string"
          },
          "wallet": {
            "$ref": "#/components/schemas/D_Record_string_string"
          },
          "roundId": {
            "type": "string"
          },
          "accountId": {
            "type": "string"
          },
          "externalRoundId": {
            "type": "string"
          },
          "gameCode": {
            "type": "string"
          },
          "gameVersion": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "created",
              "debit_pending",
              "open",
              "credit_pending",
              "settled",
              "cancel_pending",
              "cancelled",
              "manual_review"
            ]
          },
          "currency": {
            "type": "string"
          },
          "wager": {
            "type": "number"
          },
          "payout": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "number"
              }
            ]
          },
          "settlementMode": {
            "type": "string"
          },
          "fundingSource": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "freeRoundGrantId": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "roomId": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "createdAt": {
            "type": "string"
          },
          "settledAt": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "required": [
          "externalPlayerId",
          "updatedAt",
          "wallet",
          "roundId",
          "accountId",
          "externalRoundId",
          "gameCode",
          "gameVersion",
          "status",
          "currency",
          "wager",
          "payout",
          "settlementMode",
          "fundingSource",
          "freeRoundGrantId",
          "roomId",
          "createdAt",
          "settledAt"
        ]
      },
      "D_OutlierThresholds": {
        "type": "object",
        "properties": {
          "outlierWindowMinutes": {
            "type": "number"
          },
          "velocityRounds": {
            "type": "number"
          },
          "winRateMinimumRounds": {
            "type": "number"
          },
          "winRatePercentOfRtp": {
            "type": "number"
          }
        },
        "required": [
          "outlierWindowMinutes",
          "velocityRounds",
          "winRateMinimumRounds",
          "winRatePercentOfRtp"
        ]
      },
      "D_AccountOutlier": {
        "type": "object",
        "properties": {
          "signal": {
            "type": "string",
            "enum": [
              "velocity",
              "win-rate"
            ]
          },
          "reason": {
            "type": "string"
          },
          "externalPlayerId": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "gameCode": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "gameVersion": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "rounds": {
            "type": "number"
          },
          "cashRounds": {
            "type": "number"
          },
          "wager": {
            "type": "string"
          },
          "payout": {
            "type": "string"
          },
          "rtp": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "object",
                "properties": {
                  "payout": {
                    "type": "string"
                  },
                  "wager": {
                    "type": "string"
                  }
                },
                "required": [
                  "payout",
                  "wager"
                ]
              }
            ]
          },
          "returnBps": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "rtpBps": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "boundBps": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "required": [
          "signal",
          "reason",
          "externalPlayerId",
          "currency",
          "gameCode",
          "gameVersion",
          "rounds",
          "cashRounds",
          "wager",
          "payout",
          "rtp",
          "returnBps",
          "rtpBps",
          "boundBps"
        ]
      },
      "D_RoundLookup": {
        "type": "object",
        "properties": {
          "reference": {
            "type": "string"
          },
          "matches": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/D_RoundLookupMatch"
            }
          }
        },
        "required": [
          "reference",
          "matches"
        ]
      },
      "D_RoundLookupMatch": {
        "type": "object",
        "properties": {
          "externalPlayerId": {
            "type": "string"
          },
          "matchedOn": {
            "type": "string",
            "enum": [
              "round-id",
              "wallet-operation-id",
              "provider-transaction-id",
              "external-round-id"
            ]
          },
          "matchedOnAll": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "round-id",
                "wallet-operation-id",
                "provider-transaction-id",
                "external-round-id"
              ]
            }
          },
          "wallet": {
            "$ref": "#/components/schemas/D_Record_string_string"
          },
          "roundId": {
            "type": "string"
          },
          "accountId": {
            "type": "string"
          },
          "externalRoundId": {
            "type": "string"
          },
          "gameCode": {
            "type": "string"
          },
          "gameVersion": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "created",
              "debit_pending",
              "open",
              "credit_pending",
              "settled",
              "cancel_pending",
              "cancelled",
              "manual_review"
            ]
          },
          "currency": {
            "type": "string"
          },
          "wager": {
            "type": "number"
          },
          "payout": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "number"
              }
            ]
          },
          "settlementMode": {
            "type": "string"
          },
          "fundingSource": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "freeRoundGrantId": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "roomId": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "createdAt": {
            "type": "string"
          },
          "settledAt": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "required": [
          "externalPlayerId",
          "matchedOn",
          "matchedOnAll",
          "wallet",
          "roundId",
          "accountId",
          "externalRoundId",
          "gameCode",
          "gameVersion",
          "status",
          "currency",
          "wager",
          "payout",
          "settlementMode",
          "fundingSource",
          "freeRoundGrantId",
          "roomId",
          "createdAt",
          "settledAt"
        ]
      },
      "D_TournamentStandings": {
        "type": "object",
        "properties": {
          "tournamentId": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "scoring": {
            "type": "string"
          },
          "startsAt": {
            "type": "string"
          },
          "endsAt": {
            "type": "string"
          },
          "entries": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "rank": {
                  "type": "number"
                },
                "externalPlayerId": {
                  "type": "string"
                },
                "rounds": {
                  "type": "string"
                },
                "wagerMinor": {
                  "type": "string"
                },
                "payoutMinor": {
                  "type": "string"
                },
                "bestPayoutMinor": {
                  "type": "string"
                },
                "prizeMinor": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "type": "string"
                    }
                  ]
                }
              },
              "required": [
                "rank",
                "externalPlayerId",
                "rounds",
                "wagerMinor",
                "payoutMinor",
                "bestPayoutMinor",
                "prizeMinor"
              ]
            }
          }
        },
        "required": [
          "tournamentId",
          "code",
          "currency",
          "scoring",
          "startsAt",
          "endsAt",
          "entries"
        ]
      },
      "D_ConsoleUserView": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "role": {
            "type": "string",
            "enum": [
              "finance",
              "viewer",
              "support",
              "admin"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "disabled",
              "active",
              "pending"
            ]
          },
          "createdAt": {
            "type": "string"
          },
          "lockedUntil": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "approver": {
            "type": "boolean"
          },
          "lastSignInAt": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "openSessions": {
            "type": "number"
          }
        },
        "required": [
          "userId",
          "username",
          "role",
          "status",
          "createdAt",
          "lockedUntil",
          "approver",
          "lastSignInAt",
          "openSessions"
        ]
      },
      "D_WalletVerificationRun": {
        "type": "object",
        "properties": {
          "runId": {
            "type": "string"
          },
          "playerId": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "startedAt": {
            "type": "string"
          },
          "finishedAt": {
            "type": "string"
          },
          "passed": {
            "type": "boolean"
          },
          "checks": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/D_WalletCheck"
            }
          }
        },
        "required": [
          "runId",
          "playerId",
          "currency",
          "amount",
          "startedAt",
          "finishedAt",
          "passed",
          "checks"
        ]
      },
      "D_WalletCheck": {
        "type": "object",
        "properties": {
          "check": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "failed",
              "passed",
              "skipped"
            ]
          },
          "operationId": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "expected": {
            "type": "string"
          },
          "observed": {
            "type": "string"
          }
        },
        "required": [
          "check",
          "status",
          "operationId",
          "expected",
          "observed"
        ]
      },
      "D_WalletVerificationAttempt": {
        "type": "object",
        "properties": {
          "runId": {
            "type": "string"
          },
          "requestId": {
            "type": "string"
          },
          "playerId": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "amount": {
            "type": "number"
          },
          "startedAt": {
            "type": "string"
          },
          "state": {
            "type": "string",
            "enum": [
              "running",
              "recovering",
              "needs-review"
            ]
          },
          "closedAt": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "required": [
          "runId",
          "requestId",
          "playerId",
          "currency",
          "amount",
          "startedAt",
          "state",
          "closedAt"
        ]
      },
      "D_LargeWins": {
        "type": "object",
        "properties": {
          "from": {
            "type": "string"
          },
          "to": {
            "type": "string"
          },
          "minMultiplier": {
            "type": "number"
          },
          "currency": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "wins": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/D_LargeWin"
            }
          },
          "more": {
            "type": "boolean"
          }
        },
        "required": [
          "from",
          "to",
          "minMultiplier",
          "currency",
          "wins",
          "more"
        ]
      },
      "D_LargeWin": {
        "type": "object",
        "properties": {
          "externalPlayerId": {
            "type": "string"
          },
          "multiplier": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "roundId": {
            "type": "string"
          },
          "accountId": {
            "type": "string"
          },
          "externalRoundId": {
            "type": "string"
          },
          "gameCode": {
            "type": "string"
          },
          "gameVersion": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "created",
              "debit_pending",
              "open",
              "credit_pending",
              "settled",
              "cancel_pending",
              "cancelled",
              "manual_review"
            ]
          },
          "currency": {
            "type": "string"
          },
          "wager": {
            "type": "number"
          },
          "payout": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "number"
              }
            ]
          },
          "settlementMode": {
            "type": "string"
          },
          "fundingSource": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "freeRoundGrantId": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "roomId": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "createdAt": {
            "type": "string"
          },
          "settledAt": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "required": [
          "externalPlayerId",
          "multiplier",
          "roundId",
          "accountId",
          "externalRoundId",
          "gameCode",
          "gameVersion",
          "status",
          "currency",
          "wager",
          "payout",
          "settlementMode",
          "fundingSource",
          "freeRoundGrantId",
          "roomId",
          "createdAt",
          "settledAt"
        ]
      },
      "D_PlayerErasure": {
        "type": "object",
        "properties": {
          "accountId": {
            "type": "string"
          },
          "accounts": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "pseudonym": {
            "type": "string"
          },
          "sessionsRevoked": {
            "type": "number"
          },
          "changeId": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "alreadyErased": {
            "type": "boolean"
          }
        },
        "required": [
          "accountId",
          "accounts",
          "pseudonym",
          "sessionsRevoked",
          "changeId",
          "alreadyErased"
        ]
      },
      "D_PublicLobbyUser": {
        "type": "object",
        "properties": {
          "username": {
            "type": "string"
          },
          "player_id": {
            "type": "string"
          },
          "role": {
            "type": "string",
            "enum": [
              "admin",
              "member",
              "guest"
            ]
          },
          "disabled": {
            "type": "boolean"
          },
          "session_version": {
            "type": "number"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "username",
          "player_id",
          "role",
          "disabled",
          "session_version",
          "created_at"
        ]
      },
      "D_LobbySnapshot": {
        "type": "object",
        "properties": {
          "users": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/D_Pick_LobbyUser_disabled_username_role_created_at"
            }
          },
          "games": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/D_LobbyGamePolicy"
            }
          },
          "grants": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "username": {
                  "type": "string"
                },
                "game_code": {
                  "type": "string"
                }
              },
              "required": [
                "username",
                "game_code"
              ]
            }
          },
          "events": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "actor": {
                  "type": "string"
                },
                "action": {
                  "type": "string"
                },
                "target": {
                  "type": "string"
                },
                "created_at": {
                  "type": "string",
                  "format": "date-time"
                }
              },
              "required": [
                "actor",
                "action",
                "target",
                "created_at"
              ]
            }
          }
        },
        "required": [
          "users",
          "games",
          "grants",
          "events"
        ]
      },
      "D_Pick_LobbyUser_disabled_username_role_created_at": {
        "type": "object",
        "properties": {
          "disabled": {
            "type": "boolean"
          },
          "username": {
            "type": "string"
          },
          "role": {
            "type": "string",
            "enum": [
              "admin",
              "member",
              "guest"
            ]
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "disabled",
          "username",
          "role",
          "created_at"
        ]
      },
      "D_LobbyGamePolicy": {
        "type": "object",
        "properties": {
          "game_code": {
            "type": "string"
          },
          "visibility": {
            "type": "string",
            "enum": [
              "disabled",
              "public",
              "restricted"
            ]
          }
        },
        "required": [
          "game_code",
          "visibility"
        ]
      },
      "D_LobbyActivityOverview": {
        "type": "object",
        "properties": {
          "q": {
            "type": "string"
          },
          "page": {
            "type": "number"
          },
          "pageSize": {
            "type": "number"
          },
          "total": {
            "type": "number"
          },
          "players": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/D_LobbyActivityPlayer"
            }
          },
          "currency": {
            "type": "string"
          }
        },
        "required": [
          "q",
          "page",
          "pageSize",
          "total",
          "players",
          "currency"
        ]
      },
      "D_LobbyActivityPlayer": {
        "type": "object",
        "properties": {
          "username": {
            "type": "string"
          },
          "disabled": {
            "type": "boolean"
          },
          "account_id": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "balance": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "currency": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "rounds": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "games_played": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "last_played": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string",
                "format": "date-time"
              }
            ]
          },
          "total_bet": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "total_won": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "required": [
          "username",
          "disabled",
          "account_id",
          "balance",
          "currency",
          "rounds",
          "games_played",
          "last_played",
          "total_bet",
          "total_won"
        ]
      },
      "D_LobbyActivityDetail": {
        "type": "object",
        "properties": {
          "player": {
            "$ref": "#/components/schemas/D_LobbyActivityPlayer"
          },
          "games": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/D_LobbyActivityGame"
            }
          },
          "history": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/D_LobbyActivityRound"
            }
          },
          "game": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "page": {
            "type": "number"
          },
          "pageSize": {
            "type": "number"
          },
          "total": {
            "type": "number"
          }
        },
        "required": [
          "player",
          "games",
          "history",
          "game",
          "currency",
          "page",
          "pageSize",
          "total"
        ]
      },
      "D_LobbyActivityGame": {
        "type": "object",
        "properties": {
          "game_code": {
            "type": "string"
          },
          "rounds": {
            "type": "string"
          },
          "last_played": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string",
                "format": "date-time"
              }
            ]
          },
          "total_bet": {
            "type": "string"
          },
          "total_won": {
            "type": "string"
          }
        },
        "required": [
          "game_code",
          "rounds",
          "last_played",
          "total_bet",
          "total_won"
        ]
      },
      "D_LobbyActivityRound": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "game_code": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "settled_at": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string",
                "format": "date-time"
              }
            ]
          },
          "status": {
            "type": "string"
          },
          "wager": {
            "type": "string"
          },
          "payout": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "game_code",
          "created_at",
          "settled_at",
          "status",
          "wager",
          "payout",
          "currency"
        ]
      },
      "D_Readonly_balance_number_currency_string_refilled_boolean": {
        "type": "object",
        "properties": {
          "balance": {
            "type": "number"
          },
          "currency": {
            "type": "string"
          },
          "refilled": {
            "type": "boolean"
          }
        },
        "required": [
          "balance",
          "currency",
          "refilled"
        ]
      },
      "D_Readonly_account_id_string_game_code_string": {
        "type": "object",
        "properties": {
          "account_id": {
            "type": "string"
          },
          "game_code": {
            "type": "string"
          }
        },
        "required": [
          "account_id",
          "game_code"
        ]
      },
      "D_ExternalWalletResult": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "operationId": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "unknown",
              "cancelled",
              "manual_review",
              "pending",
              "approved",
              "declined"
            ]
          },
          "duplicate": {
            "type": "boolean"
          },
          "remoteTransactionId": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "balance": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "number"
              }
            ]
          },
          "currency": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "operationId",
          "status",
          "duplicate",
          "remoteTransactionId",
          "balance",
          "currency"
        ]
      },
      "D_InteractiveMarketPolicyResult": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "approved",
              "prepared"
            ]
          },
          "confirm": {
            "$ref": "#/components/schemas/D_Readonly_target_string_operatorId_string_previousPolicyId_st"
          },
          "expiresAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "status",
          "confirm",
          "expiresAt"
        ]
      },
      "D_Readonly_target_string_operatorId_string_previousPolicyId_st": {
        "type": "object",
        "properties": {
          "target": {
            "type": "string"
          },
          "operatorId": {
            "type": "string"
          },
          "previousPolicyId": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "gameVersionId": {
            "type": "string"
          },
          "brandId": {
            "type": "string"
          },
          "marketId": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "unit": {
            "type": "string",
            "const": "milliseconds"
          },
          "timeoutMilliseconds": {
            "type": "number"
          },
          "profile": {
            "type": "string",
            "enum": [
              "dev",
              "demo",
              "staging",
              "real-money"
            ]
          },
          "environmentId": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          }
        },
        "required": [
          "target",
          "operatorId",
          "previousPolicyId",
          "gameVersionId",
          "brandId",
          "marketId",
          "currency",
          "unit",
          "timeoutMilliseconds",
          "profile",
          "environmentId",
          "reason"
        ]
      },
      "D_InteractiveMarketPolicyRevocation": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "const": "revoked"
          },
          "confirm": {
            "$ref": "#/components/schemas/D_Readonly_target_string_operatorId_string_previousPolicyId_st"
          },
          "reason": {
            "type": "string"
          },
          "revokedAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "status",
          "confirm",
          "reason",
          "revokedAt"
        ]
      },
      "D_MathFamilyPolicyResult": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "approved",
              "prepared"
            ]
          },
          "confirm": {
            "$ref": "#/components/schemas/D_Readonly_target_string_operatorId_string_previousPolicyId_st_2"
          },
          "expiresAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "status",
          "confirm",
          "expiresAt"
        ]
      },
      "D_Readonly_target_string_operatorId_string_previousPolicyId_st_2": {
        "type": "object",
        "properties": {
          "target": {
            "type": "string"
          },
          "operatorId": {
            "type": "string"
          },
          "previousPolicyId": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "gameVersionId": {
            "type": "string"
          },
          "brandId": {
            "type": "string"
          },
          "marketId": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "selectionSha256": {
            "type": "string"
          },
          "available": {
            "type": "boolean"
          },
          "profile": {
            "type": "string",
            "enum": [
              "dev",
              "demo",
              "staging",
              "real-money"
            ]
          },
          "environmentId": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          }
        },
        "required": [
          "target",
          "operatorId",
          "previousPolicyId",
          "gameVersionId",
          "brandId",
          "marketId",
          "currency",
          "selectionSha256",
          "available",
          "profile",
          "environmentId",
          "reason"
        ]
      },
      "D_ObligationAgePolicyResult": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "approved",
              "prepared"
            ]
          },
          "confirm": {
            "$ref": "#/components/schemas/D_Readonly_target_string_operatorId_string_previousPolicyId_st_3"
          },
          "expiresAt": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "status",
          "confirm",
          "expiresAt"
        ]
      },
      "D_Readonly_target_string_operatorId_string_previousPolicyId_st_3": {
        "type": "object",
        "properties": {
          "target": {
            "type": "string"
          },
          "operatorId": {
            "type": "string"
          },
          "previousPolicyId": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "unit": {
            "type": "string",
            "const": "milliseconds"
          },
          "pendingDebitMs": {
            "type": "number"
          },
          "owedCreditMs": {
            "type": "number"
          },
          "profile": {
            "type": "string",
            "enum": [
              "dev",
              "demo",
              "staging",
              "real-money"
            ]
          },
          "environmentId": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          }
        },
        "required": [
          "target",
          "operatorId",
          "previousPolicyId",
          "unit",
          "pendingDebitMs",
          "owedCreditMs",
          "profile",
          "environmentId",
          "reason"
        ]
      },
      "D_OperationStatementReport": {
        "type": "object",
        "properties": {
          "format": {
            "type": "string",
            "const": "external-operation-comparison-v1"
          },
          "comparisonBasis": {
            "type": "string",
            "const": "independent_statement_vs_operation_journal"
          },
          "coverage": {
            "type": "string",
            "const": "explicit-operation-ids-only"
          },
          "operatorId": {
            "type": "string"
          },
          "statementId": {
            "type": "string"
          },
          "statementAsOf": {
            "type": "string"
          },
          "signingKeyRecordId": {
            "type": "string"
          },
          "payloadSha256": {
            "type": "string"
          },
          "scopeSha256": {
            "type": "string"
          },
          "observedAt": {
            "type": "string"
          },
          "expectedOperations": {
            "type": "number"
          },
          "statementOperations": {
            "type": "number"
          },
          "localOperations": {
            "type": "number"
          },
          "matchedOperations": {
            "type": "number"
          },
          "matches": {
            "type": "boolean"
          },
          "issues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/D_OperationStatementIssue"
            }
          },
          "localEvidence": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "operationId": {
                  "type": "string"
                },
                "recordId": {
                  "type": "string"
                },
                "requestSha256": {
                  "type": "string"
                }
              },
              "required": [
                "operationId",
                "recordId",
                "requestSha256"
              ]
            }
          }
        },
        "required": [
          "format",
          "comparisonBasis",
          "coverage",
          "operatorId",
          "statementId",
          "statementAsOf",
          "signingKeyRecordId",
          "payloadSha256",
          "scopeSha256",
          "observedAt",
          "expectedOperations",
          "statementOperations",
          "localOperations",
          "matchedOperations",
          "matches",
          "issues",
          "localEvidence"
        ]
      },
      "D_OperationStatementIssue": {
        "type": "object",
        "properties": {
          "operationId": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          },
          "disposition": {
            "type": "string",
            "enum": [
              "unresolved",
              "mismatch"
            ]
          }
        },
        "required": [
          "operationId",
          "reason",
          "disposition"
        ]
      },
      "D_ReconciliationRun": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "accountsChecked": {
            "type": "number"
          },
          "mismatchCount": {
            "type": "number"
          },
          "createdAt": {
            "type": "string"
          },
          "completedAt": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string"
              }
            ]
          },
          "cases": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "string"
                },
                "accountId": {
                  "type": "string"
                },
                "playerId": {
                  "type": "string"
                },
                "currency": {
                  "type": "string"
                },
                "storedBalance": {
                  "type": "number"
                },
                "ledgerBalance": {
                  "type": "number"
                },
                "delta": {
                  "type": "number"
                },
                "status": {
                  "type": "string"
                },
                "reasonCode": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "type": "string"
                    }
                  ]
                },
                "resolutionNote": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "type": "string"
                    }
                  ]
                },
                "ledgerEntryId": {
                  "anyOf": [
                    {
                      "type": "null"
                    },
                    {
                      "type": "string"
                    }
                  ]
                }
              },
              "required": [
                "id",
                "accountId",
                "playerId",
                "currency",
                "storedBalance",
                "ledgerBalance",
                "delta",
                "status",
                "reasonCode",
                "resolutionNote",
                "ledgerEntryId"
              ]
            }
          }
        },
        "required": [
          "id",
          "status",
          "accountsChecked",
          "mismatchCount",
          "createdAt",
          "completedAt",
          "cases"
        ]
      },
      "D_Readable": {
        "type": "object",
        "properties": {
          "readableAborted": {
            "type": "boolean"
          },
          "readable": {
            "type": "boolean"
          },
          "readableDidRead": {
            "type": "boolean"
          },
          "readableEncoding": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "string",
                "enum": [
                  "ascii",
                  "utf8",
                  "utf-8",
                  "utf16le",
                  "utf-16le",
                  "ucs2",
                  "ucs-2",
                  "base64",
                  "base64url",
                  "latin1",
                  "binary",
                  "hex"
                ]
              }
            ]
          },
          "readableEnded": {
            "type": "boolean"
          },
          "readableFlowing": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "boolean"
              }
            ]
          },
          "readableHighWaterMark": {
            "type": "number"
          },
          "readableLength": {
            "type": "number"
          },
          "readableObjectMode": {
            "type": "boolean"
          },
          "destroyed": {
            "type": "boolean"
          },
          "closed": {
            "type": "boolean"
          },
          "errored": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "$ref": "#/components/schemas/D_Error"
              }
            ]
          }
        },
        "required": [
          "readableAborted",
          "readable",
          "readableDidRead",
          "readableEncoding",
          "readableEnded",
          "readableFlowing",
          "readableHighWaterMark",
          "readableLength",
          "readableObjectMode",
          "destroyed",
          "closed",
          "errored"
        ]
      },
      "D_Error": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "stack": {
            "type": "string"
          },
          "cause": {}
        },
        "required": [
          "name",
          "message"
        ]
      },
      "D_RoundResult": {
        "type": "object",
        "properties": {
          "roundId": {
            "type": "string"
          },
          "payout": {
            "type": "number"
          },
          "balance": {
            "type": "number"
          },
          "state": {},
          "fairness": {
            "type": "object",
            "properties": {
              "commitment": {
                "type": "string"
              },
              "serverSeed": {
                "type": "string"
              },
              "algorithm": {
                "type": "string",
                "enum": [
                  "rng-v2-hmac-drbg-sha256-per-draw",
                  "23rgs-hmac-sha256-v1"
                ]
              }
            },
            "required": [
              "commitment",
              "serverSeed",
              "algorithm"
            ]
          }
        },
        "required": [
          "roundId",
          "payout",
          "balance",
          "state",
          "fairness"
        ]
      },
      "D_VoidedRound": {
        "type": "object",
        "properties": {
          "roundId": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "const": "cancelled"
          },
          "refund": {
            "type": "number"
          },
          "currency": {
            "type": "string"
          }
        },
        "required": [
          "roundId",
          "status",
          "refund",
          "currency"
        ]
      },
      "D_WalletTransactionResult": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "externalTransactionId": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "deposit",
              "withdrawal"
            ]
          },
          "amount": {
            "type": "number"
          },
          "currency": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "balance": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "number"
              }
            ]
          }
        },
        "required": [
          "id",
          "externalTransactionId",
          "kind",
          "amount",
          "currency",
          "status",
          "balance"
        ]
      },
      "D_Record_string_Record_string_number": {
        "type": "object",
        "properties": {},
        "additionalProperties": {
          "$ref": "#/components/schemas/D_Record_string_number_2"
        }
      },
      "D_Record_string_number_2": {
        "type": "object",
        "properties": {},
        "additionalProperties": {
          "type": "array",
          "items": {
            "type": "number"
          }
        }
      },
      "D_PinnedBetLimits": {
        "type": "object",
        "properties": {
          "minimum": {
            "type": "number"
          },
          "maximum": {
            "type": "number"
          },
          "maximumWin": {
            "type": "number"
          },
          "default": {
            "type": "number"
          },
          "currencyPolicy": {
            "$ref": "#/components/schemas/D_Readonly_format_currency_policy_v1_registry_readonly_Readonl"
          },
          "marketPolicy": {
            "$ref": "#/components/schemas/D_Readonly_country_string_operatorId_string_brandId_string_mar"
          },
          "wagerPolicy": {
            "$ref": "#/components/schemas/D_Readonly_maximumBonusBet_number_maximumExposure_number_bonus"
          }
        },
        "required": [
          "minimum",
          "maximum",
          "maximumWin"
        ]
      },
      "D_Readonly_format_currency_policy_v1_registry_readonly_Readonl": {
        "type": "object",
        "properties": {
          "format": {
            "type": "string",
            "const": "currency-policy-v1"
          },
          "registry": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/D_Readonly_currency_string_decimals_number"
            }
          },
          "fx": {
            "$ref": "#/components/schemas/D_Readonly_version_string_baseCurrency_string_rates_readonly_R"
          }
        },
        "required": [
          "format",
          "registry",
          "fx"
        ]
      },
      "D_Readonly_currency_string_decimals_number": {
        "type": "object",
        "properties": {
          "currency": {
            "type": "string"
          },
          "decimals": {
            "type": "number"
          }
        },
        "required": [
          "currency",
          "decimals"
        ]
      },
      "D_Readonly_version_string_baseCurrency_string_rates_readonly_R": {
        "type": "object",
        "properties": {
          "version": {
            "type": "string"
          },
          "baseCurrency": {
            "type": "string"
          },
          "rates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/D_Readonly_currency_string_numerator_string_denominator_string"
            }
          }
        },
        "required": [
          "version",
          "baseCurrency",
          "rates"
        ]
      },
      "D_Readonly_currency_string_numerator_string_denominator_string": {
        "type": "object",
        "properties": {
          "currency": {
            "type": "string"
          },
          "numerator": {
            "type": "string"
          },
          "denominator": {
            "type": "string"
          }
        },
        "required": [
          "currency",
          "numerator",
          "denominator"
        ]
      },
      "D_Readonly_country_string_operatorId_string_brandId_string_mar": {
        "type": "object",
        "properties": {
          "country": {
            "type": "string"
          },
          "operatorId": {
            "type": "string"
          },
          "brandId": {
            "type": "string"
          },
          "marketId": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "features": {
            "$ref": "#/components/schemas/D_Readonly_autoplay_boolean_turbo_boolean_minimumSpinMilliseco"
          },
          "blockedCountries": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "country",
          "operatorId",
          "brandId",
          "marketId",
          "currency",
          "features",
          "blockedCountries"
        ]
      },
      "D_Readonly_autoplay_boolean_turbo_boolean_minimumSpinMilliseco": {
        "type": "object",
        "properties": {
          "autoplay": {
            "type": "boolean"
          },
          "turbo": {
            "type": "boolean"
          },
          "minimumSpinMilliseconds": {
            "type": "number"
          }
        },
        "required": [
          "autoplay",
          "turbo",
          "minimumSpinMilliseconds"
        ]
      },
      "D_Readonly_maximumBonusBet_number_maximumExposure_number_bonus": {
        "type": "object",
        "properties": {
          "maximumBonusBet": {
            "type": "number"
          },
          "maximumExposure": {
            "type": "number"
          },
          "bonusBuy": {
            "type": "boolean"
          },
          "modes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/D_Readonly_action_string_kind_main_bonus"
            }
          }
        },
        "required": [
          "maximumBonusBet",
          "maximumExposure",
          "bonusBuy",
          "modes"
        ]
      },
      "D_Readonly_action_string_kind_main_bonus": {
        "type": "object",
        "properties": {
          "action": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "main",
              "bonus"
            ]
          }
        },
        "required": [
          "action",
          "kind"
        ]
      },
      "D_QueryResultRow": {
        "type": "object",
        "properties": {},
        "additionalProperties": {}
      },
      "D_FairCommitment": {
        "type": "object",
        "properties": {
          "protocol": {
            "type": "string",
            "const": "23rgs-fair-v1"
          },
          "algorithm": {
            "type": "string",
            "const": "23rgs-hmac-sha256-v1"
          },
          "commitment": {
            "type": "string"
          },
          "drawId": {
            "type": "string"
          },
          "nonce": {
            "type": "string",
            "const": "0"
          }
        },
        "required": [
          "protocol",
          "algorithm",
          "commitment",
          "drawId",
          "nonce"
        ]
      },
      "D_WalletCallbackAcceptance": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "messageId": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "duplicate": {
            "type": "boolean"
          },
          "reconciliationRunId": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "messageId",
          "status",
          "duplicate"
        ]
      }
    },
    "securitySchemes": {
      "OperatorBearer": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "Opaque operator API key",
        "description": "Server-side key. Required scope is recorded in x-operator-scope. Not a JWT."
      },
      "SessionBearer": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "Opaque session token",
        "description": "Native session token returned by /v1/authenticate. Not an operator key or a JWT."
      },
      "ConsoleSession": {
        "type": "apiKey",
        "in": "cookie",
        "name": "rgs_console",
        "description": "Console session cookie set by POST /operator/console/api/login. The permission a route needs is in x-console-permission; a console POST also needs the header x-console-csrf: 1."
      },
      "AlertIntakeBearer": {
        "type": "http",
        "scheme": "bearer",
        "description": "The Alertmanager secret whose SHA-256 the RGS is configured with (alertIntakeTokenSha256)."
      },
      "TequitySignature": {
        "type": "apiKey",
        "in": "header",
        "name": "x-server-authorization",
        "description": "Tequity's signature of the raw request body with the wallet's shared secret."
      },
      "W_WalletKeyId": {
        "type": "apiKey",
        "in": "header",
        "name": "X-Wallet-Key-Id"
      },
      "W_WalletTimestamp": {
        "type": "apiKey",
        "in": "header",
        "name": "X-Wallet-Timestamp"
      },
      "W_WalletMessageId": {
        "type": "apiKey",
        "in": "header",
        "name": "X-Wallet-Message-Id"
      },
      "W_WalletSignature": {
        "type": "apiKey",
        "in": "header",
        "name": "X-Wallet-Signature"
      }
    }
  },
  "tags": [
    {
      "name": "Back office"
    },
    {
      "name": "BetSymphony adapter"
    },
    {
      "name": "Client"
    },
    {
      "name": "Demo lobby"
    },
    {
      "name": "Free rounds"
    },
    {
      "name": "Jackpots"
    },
    {
      "name": "Operations"
    },
    {
      "name": "Operator"
    },
    {
      "name": "Operator console"
    },
    {
      "name": "Policies"
    },
    {
      "name": "Reconciliation"
    },
    {
      "name": "Responsible gaming"
    },
    {
      "name": "Service"
    },
    {
      "name": "Tequity adapter"
    },
    {
      "name": "Tournaments"
    },
    {
      "name": "Two-person changes"
    }
  ]
}
