{
  "openapi": "3.1.0",
  "info": {
    "title": "Ape Motion Multi-game API",
    "version": "0.1.0",
    "description": "客户端接入契约 v0.1。仅标记 contract-ready 的核心接口完成文档契约；不代表远端已发布。是否需要幂等键以各操作为准。"
  },
  "servers": [
    {
      "url": "/v1",
      "description": "相对 API origin；文档站不是 API，请使用运营方交付并已验收的 apiBaseUrl。"
    }
  ],
  "paths": {
    "/public/games/{gameSlug}/bootstrap": {
      "get": {
        "operationId": "get_public_games_gameSlug_bootstrap",
        "x-client-status": "contract-ready",
        "security": [],
        "parameters": [
          {
            "name": "gameSlug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BootstrapResponse"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string"
                },
                "description": "排障时提供；不要记录 token 或平台证明。"
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/Problem"
          },
          "500": {
            "$ref": "#/components/responses/Problem"
          },
          "503": {
            "$ref": "#/components/responses/Problem"
          }
        },
        "summary": "读取游戏启动配置",
        "description": "无请求体。gameId 来自此响应；gameAppId 从后台取得。公开缓存 60 秒，允许 stale-while-revalidate=300。",
        "tags": [
          "客户端核心 v0.1"
        ]
      }
    },
    "/public/games/{gameSlug}/config/{version}": {
      "get": {
        "operationId": "get_public_games_gameSlug_config_version",
        "x-client-status": "contract-ready",
        "security": [],
        "parameters": [
          {
            "name": "gameSlug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "version",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GameConfigResponse"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string"
                },
                "description": "排障时提供；不要记录 token 或平台证明。"
              }
            }
          },
          "404": {
            "$ref": "#/components/responses/Problem"
          },
          "500": {
            "$ref": "#/components/responses/Problem"
          },
          "503": {
            "$ref": "#/components/responses/Problem"
          }
        },
        "summary": "读取已发布配置版本",
        "description": "version 使用 bootstrap.configVersion。响应为游戏自定义 JSON 值（对象、数组或基本值）；缓存一年、immutable，ETag 为 bodyHash。未实现条件 GET/304。",
        "tags": [
          "客户端核心 v0.1"
        ]
      }
    },
    "/public/games/{gameSlug}/resources/manifests/{manifestId}": {
      "get": {
        "operationId": "get_public_games_gameSlug_resources_manifests_manifestId",
        "x-client-status": "not-in-v0.1",
        "security": [],
        "parameters": [
          {
            "name": "gameSlug",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "manifestId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/auth/game-center": {
      "post": {
        "operationId": "post_auth_game_center",
        "x-client-status": "contract-ready",
        "security": [],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128,
              "pattern": "^[!-~]+$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionResponse"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string"
                },
                "description": "排障时提供；不要记录 token 或平台证明。"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "403": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          },
          "429": {
            "$ref": "#/components/responses/Problem"
          },
          "500": {
            "$ref": "#/components/responses/Problem"
          },
          "503": {
            "$ref": "#/components/responses/Problem"
          }
        },
        "summary": "Game Center 登录",
        "description": "平台 Game Center 签名不是 Sign in with Apple。重试保留 Idempotency-Key、authRequestId 和全部语义字段，重新申请设备挑战并签名。详见快速开始的设备签名和重试协议。",
        "tags": [
          "客户端核心 v0.1"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GameCenterLoginRequest"
              }
            }
          }
        }
      }
    },
    "/auth/device-challenges": {
      "post": {
        "operationId": "post_auth_device_challenges",
        "x-client-status": "contract-ready",
        "security": [],
        "parameters": [],
        "responses": {
          "201": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeviceProofChallengeResponse"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string"
                },
                "description": "排障时提供；不要记录 token 或平台证明。"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "403": {
            "$ref": "#/components/responses/Problem"
          },
          "429": {
            "$ref": "#/components/responses/Problem"
          },
          "500": {
            "$ref": "#/components/responses/Problem"
          },
          "503": {
            "$ref": "#/components/responses/Problem"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeviceProofChallengeRequest"
              }
            }
          }
        },
        "summary": "签发设备挑战",
        "description": "挑战一次性使用，每次登录／刷新发送前重新申请。clientAppId 是后台 gameAppId。429 时指数退避并加抖动；不要轮换 installationId 绕过限流。",
        "tags": [
          "客户端核心 v0.1"
        ]
      }
    },
    "/auth/play-games": {
      "post": {
        "operationId": "post_auth_play_games",
        "x-client-status": "contract-ready",
        "security": [],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128,
              "pattern": "^[!-~]+$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SessionResponse"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string"
                },
                "description": "排障时提供；不要记录 token 或平台证明。"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "403": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          },
          "429": {
            "$ref": "#/components/responses/Problem"
          },
          "500": {
            "$ref": "#/components/responses/Problem"
          },
          "503": {
            "$ref": "#/components/responses/Problem"
          }
        },
        "summary": "Play Games 登录",
        "description": "serverAuthCode 来自 Play Games 的 server/Web OAuth 客户端。不可放入 OAuth secret。EXTERNAL_IDENTITY_PROOF_REISSUE_REQUIRED 时重新取得平台证明，并新建登录尝试。",
        "tags": [
          "客户端核心 v0.1"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlayGamesLoginRequest"
              }
            }
          }
        }
      }
    },
    "/auth/motion/google": {
      "post": {
        "operationId": "post_auth_motion_google",
        "x-client-status": "not-in-v0.1",
        "security": [],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/auth/motion/apple": {
      "post": {
        "operationId": "post_auth_motion_apple",
        "x-client-status": "not-in-v0.1",
        "security": [],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/auth/motion/google/challenges": {
      "post": {
        "operationId": "post_auth_motion_google_challenges",
        "x-client-status": "not-in-v0.1",
        "security": [],
        "parameters": [],
        "responses": {
          "201": {
            "description": "Challenge issued with an atomic admission reservation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "challengeId",
                    "nonce",
                    "expiresAt"
                  ],
                  "properties": {
                    "challengeId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "nonce": {
                      "type": "string"
                    },
                    "expiresAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "403": {
            "$ref": "#/components/responses/Problem"
          },
          "429": {
            "$ref": "#/components/responses/Problem"
          },
          "500": {
            "$ref": "#/components/responses/Problem"
          },
          "503": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/auth/motion/apple/challenges": {
      "post": {
        "operationId": "post_auth_motion_apple_challenges",
        "x-client-status": "not-in-v0.1",
        "security": [],
        "parameters": [],
        "responses": {
          "201": {
            "description": "Challenge issued with an atomic admission reservation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "challengeId",
                    "nonce",
                    "expiresAt"
                  ],
                  "properties": {
                    "challengeId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "nonce": {
                      "type": "string"
                    },
                    "expiresAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "403": {
            "$ref": "#/components/responses/Problem"
          },
          "429": {
            "$ref": "#/components/responses/Problem"
          },
          "500": {
            "$ref": "#/components/responses/Problem"
          },
          "503": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/auth/motion/authorizations": {
      "post": {
        "operationId": "post_auth_motion_authorizations",
        "x-client-status": "not-in-v0.1",
        "security": [],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/auth/refresh": {
      "post": {
        "operationId": "post_auth_refresh",
        "x-client-status": "contract-ready",
        "security": [],
        "parameters": [],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RefreshResponse"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string"
                },
                "description": "排障时提供；不要记录 token 或平台证明。"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "403": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          },
          "429": {
            "$ref": "#/components/responses/Problem"
          },
          "500": {
            "$ref": "#/components/responses/Problem"
          },
          "503": {
            "$ref": "#/components/responses/Problem"
          }
        },
        "summary": "轮换并恢复会话",
        "description": "不需要 Bearer 或 Idempotency-Key。以 refreshRequestId 去重；同一旧 refreshToken 的网络重试必须沿用该 ID 和语义字段，只更新设备挑战。不同 ID 重用旧 token 会撤销会话家族。串行 single-flight 刷新；成功后原子持久化后继 token。",
        "tags": [
          "客户端核心 v0.1"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefreshRequest"
              }
            }
          }
        }
      }
    },
    "/auth/logout": {
      "post": {
        "operationId": "post_auth_logout",
        "x-client-status": "contract-ready",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128,
              "pattern": "^[!-~]+$"
            }
          },
          {
            "name": "Idempotency-Origin-Lifecycle-Id",
            "in": "header",
            "required": false,
            "description": "跨重试保持首次提交会话的 originAccountLifecycleId；不得用于跨账号重放。",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LogoutResponse"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string"
                },
                "description": "排障时提供；不要记录 token 或平台证明。"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "403": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          },
          "429": {
            "$ref": "#/components/responses/Problem"
          },
          "500": {
            "$ref": "#/components/responses/Problem"
          },
          "503": {
            "$ref": "#/components/responses/Problem"
          }
        },
        "summary": "退出当前会话",
        "description": "无请求体。服务端撤销当前会话；客户端清理本地 token。过期／已撤销会话可返回 401。网络结果未知时不要宣称远端已退出。",
        "tags": [
          "客户端核心 v0.1"
        ]
      }
    },
    "/auth/logout-all": {
      "post": {
        "operationId": "post_auth_logout_all",
        "x-client-status": "contract-ready",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128,
              "pattern": "^[!-~]+$"
            }
          },
          {
            "name": "Idempotency-Origin-Lifecycle-Id",
            "in": "header",
            "required": false,
            "description": "跨重试保持首次提交会话的 originAccountLifecycleId；不得用于跨账号重放。",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LogoutAllResponse"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string"
                },
                "description": "排障时提供；不要记录 token 或平台证明。"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "403": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          },
          "429": {
            "$ref": "#/components/responses/Problem"
          },
          "500": {
            "$ref": "#/components/responses/Problem"
          },
          "503": {
            "$ref": "#/components/responses/Problem"
          }
        },
        "summary": "退出全部游戏会话",
        "description": "无请求体。撤销该游戏账号会话，响应包含 scope=all；不是注销账号或删除存档。",
        "tags": [
          "客户端核心 v0.1"
        ]
      }
    },
    "/me": {
      "get": {
        "operationId": "get_me",
        "x-client-status": "contract-ready",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrentPrincipalResponse"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string"
                },
                "description": "排障时提供；不要记录 token 或平台证明。"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "403": {
            "$ref": "#/components/responses/Problem"
          },
          "404": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          },
          "500": {
            "$ref": "#/components/responses/Problem"
          },
          "503": {
            "$ref": "#/components/responses/Problem"
          }
        },
        "summary": "读取当前玩家状态",
        "description": "无请求体。game_account 与 motion_subject 响应不同；首版使用 game_account。blocked、deleting 或 merge_frozen 不能当作可写状态。",
        "tags": [
          "客户端核心 v0.1"
        ]
      }
    },
    "/me/external-identities": {
      "get": {
        "operationId": "get_me_external_identities",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "External game identities visible to the current game session",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalIdentityLinkList"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "403": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/me/motion/identity/google": {
      "post": {
        "operationId": "post_me_motion_identity_google",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/me/motion/identity/apple": {
      "post": {
        "operationId": "post_me_motion_identity_apple",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/me/motion/identity/google/challenges": {
      "post": {
        "operationId": "post_me_motion_identity_google_challenges",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "201": {
            "description": "Challenge issued with an atomic admission reservation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "challengeId",
                    "nonce",
                    "expiresAt"
                  ],
                  "properties": {
                    "challengeId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "nonce": {
                      "type": "string"
                    },
                    "expiresAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "403": {
            "$ref": "#/components/responses/Problem"
          },
          "429": {
            "$ref": "#/components/responses/Problem"
          },
          "500": {
            "$ref": "#/components/responses/Problem"
          },
          "503": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/me/motion/identity/apple/challenges": {
      "post": {
        "operationId": "post_me_motion_identity_apple_challenges",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "201": {
            "description": "Challenge issued with an atomic admission reservation",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "challengeId",
                    "nonce",
                    "expiresAt"
                  ],
                  "properties": {
                    "challengeId": {
                      "type": "string",
                      "format": "uuid"
                    },
                    "nonce": {
                      "type": "string"
                    },
                    "expiresAt": {
                      "type": "string",
                      "format": "date-time"
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "403": {
            "$ref": "#/components/responses/Problem"
          },
          "429": {
            "$ref": "#/components/responses/Problem"
          },
          "500": {
            "$ref": "#/components/responses/Problem"
          },
          "503": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/me/motion/authorization": {
      "get": {
        "operationId": "get_me_motion_authorization",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      },
      "put": {
        "operationId": "put_me_motion_authorization",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      },
      "delete": {
        "operationId": "delete_me_motion_authorization",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/me/link-challenges": {
      "post": {
        "operationId": "post_me_link_challenges",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128,
              "pattern": "^[!-~]+$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Challenge issued or exact idempotent replay",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalIdentityLinkChallenge"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "403": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          },
          "429": {
            "$ref": "#/components/responses/Problem"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalIdentityLinkChallengeRequest"
              }
            }
          }
        }
      }
    },
    "/me/external-identities/{provider}/link": {
      "post": {
        "operationId": "post_me_external_identities_provider_link",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "provider",
            "in": "path",
            "required": true,
            "schema": {
              "$ref": "#/components/schemas/GameExternalIdentityProvider"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128,
              "pattern": "^[!-~]+$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "External game identity linked or exact idempotent replay",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalIdentityLink"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "403": {
            "$ref": "#/components/responses/Problem"
          },
          "404": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          },
          "429": {
            "$ref": "#/components/responses/Problem"
          },
          "503": {
            "$ref": "#/components/responses/Problem"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "oneOf": [
                  {
                    "$ref": "#/components/schemas/GameCenterExternalIdentityLinkRequest"
                  },
                  {
                    "$ref": "#/components/schemas/PlayGamesExternalIdentityLinkRequest"
                  }
                ]
              }
            }
          }
        }
      }
    },
    "/me/external-identities/{linkId}": {
      "delete": {
        "operationId": "delete_me_external_identities_linkId",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "linkId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128,
              "pattern": "^[!-~]+$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "External game identity revoked or exact idempotent replay",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalIdentityLink"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "403": {
            "$ref": "#/components/responses/Problem"
          },
          "404": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/me/deletion": {
      "get": {
        "operationId": "get_me_deletion",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "scope",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "current_game",
                "shared_motion"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Current authenticated deletion request",
            "headers": {
              "Cache-Control": {
                "description": "Sensitive response is never cacheable",
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrentDeletionStatus"
                }
              }
            }
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "403": {
            "$ref": "#/components/responses/Problem"
          },
          "404": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/me/deletion-codes": {
      "post": {
        "operationId": "post_me_deletion_codes",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128,
              "pattern": "^[!-~]+$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "One-time deletion verification code issued or exact idempotent replay",
            "headers": {
              "Cache-Control": {
                "description": "Sensitive response is never cacheable",
                "schema": {
                  "type": "string",
                  "const": "no-store"
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeletionCode"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "403": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          },
          "429": {
            "$ref": "#/components/responses/Problem"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeletionCodeCreateRequest"
              }
            }
          }
        }
      }
    },
    "/me/delete": {
      "post": {
        "operationId": "post_me_delete",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/me/delete/refresh-impact": {
      "post": {
        "operationId": "post_me_delete_refresh_impact",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/me/delete/confirm": {
      "post": {
        "operationId": "post_me_delete_confirm",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/me/delete/cancel": {
      "post": {
        "operationId": "post_me_delete_cancel",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/me/exports": {
      "get": {
        "operationId": "get_me_exports",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      },
      "post": {
        "operationId": "post_me_exports",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128,
              "pattern": "^[!-~]+$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Export snapshot accepted or exact idempotent replay",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlayerExportStatus"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "403": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          },
          "429": {
            "$ref": "#/components/responses/Problem"
          },
          "503": {
            "$ref": "#/components/responses/Problem"
          }
        },
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlayerExportCreateRequest"
              }
            }
          }
        }
      }
    },
    "/me/exports/{requestId}": {
      "get": {
        "operationId": "get_me_exports_requestId",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "requestId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/me/exports/{requestId}/download": {
      "get": {
        "operationId": "get_me_exports_requestId_download",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "requestId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "object_key",
            "in": "query",
            "required": false,
            "description": "Exact object key from the authorized export manifest; omit for the manifest itself.",
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 1024,
              "pattern": "^[A-Za-z0-9][A-Za-z0-9._/-]{0,1023}$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Authorized private export artifact stream",
            "headers": {
              "Cache-Control": {
                "description": "Private export artifacts are never shared-cacheable",
                "schema": {
                  "type": "string",
                  "const": "private, no-store"
                }
              },
              "ETag": {
                "schema": {
                  "type": "string"
                }
              },
              "Content-Length": {
                "schema": {
                  "type": "integer",
                  "minimum": 0
                }
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              },
              "application/x-ndjson": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              },
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "304": {
            "description": "Authorized artifact has not changed"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "403": {
            "$ref": "#/components/responses/Problem"
          },
          "404": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          },
          "503": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/games/{gameId}/profile": {
      "get": {
        "operationId": "get_games_gameId_profile",
        "x-client-status": "contract-ready",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfileResponse"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string"
                },
                "description": "排障时提供；不要记录 token 或平台证明。"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "403": {
            "$ref": "#/components/responses/Problem"
          },
          "404": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          },
          "500": {
            "$ref": "#/components/responses/Problem"
          },
          "503": {
            "$ref": "#/components/responses/Problem"
          }
        },
        "summary": "读取玩家资料",
        "description": "未创建时返回 display_fields={}、schema_version=1、revision=0、updated_at=null。gameId 必须与会话一致。",
        "tags": [
          "客户端核心 v0.1"
        ]
      },
      "patch": {
        "operationId": "patch_games_gameId_profile",
        "x-client-status": "contract-ready",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128,
              "pattern": "^[!-~]+$"
            }
          },
          {
            "name": "Idempotency-Origin-Lifecycle-Id",
            "in": "header",
            "required": false,
            "description": "跨重试保持首次提交会话的 originAccountLifecycleId；不得用于跨账号重放。",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProfilePatchResponse"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string"
                },
                "description": "排障时提供；不要记录 token 或平台证明。"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "403": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          },
          "429": {
            "$ref": "#/components/responses/Problem"
          },
          "500": {
            "$ref": "#/components/responses/Problem"
          },
          "503": {
            "$ref": "#/components/responses/Problem"
          }
        },
        "summary": "更新玩家资料",
        "description": "带当前 baseRevision，首次为 0。409 REVISION_CONFLICT 时重新读取并由游戏合并／确认，再以新键提交。",
        "tags": [
          "客户端核心 v0.1"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProfilePatch"
              }
            }
          }
        }
      }
    },
    "/games/{gameId}/saves": {
      "get": {
        "operationId": "get_games_gameId_saves",
        "x-client-status": "contract-ready",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SaveListResponse"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string"
                },
                "description": "排障时提供；不要记录 token 或平台证明。"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "403": {
            "$ref": "#/components/responses/Problem"
          },
          "404": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          },
          "500": {
            "$ref": "#/components/responses/Problem"
          },
          "503": {
            "$ref": "#/components/responses/Problem"
          }
        },
        "summary": "列出存档槽",
        "description": "无请求体。返回 items 和 nextCursor=null，目前不分页。",
        "tags": [
          "客户端核心 v0.1"
        ]
      }
    },
    "/games/{gameId}/saves/{slot}": {
      "get": {
        "operationId": "get_games_gameId_saves_slot",
        "x-client-status": "contract-ready",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "slot",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SaveResponse"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string"
                },
                "description": "排障时提供；不要记录 token 或平台证明。"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "403": {
            "$ref": "#/components/responses/Problem"
          },
          "404": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          },
          "500": {
            "$ref": "#/components/responses/Problem"
          },
          "503": {
            "$ref": "#/components/responses/Problem"
          }
        },
        "summary": "读取存档",
        "description": "首次没有存档返回 404 NOT_FOUND；客户端保留本地新游戏并以 baseRevision=0 创建。object_key 不是公网 URL；v0.1 示例只接入 inline_document。",
        "tags": [
          "客户端核心 v0.1"
        ]
      },
      "put": {
        "operationId": "put_games_gameId_saves_slot",
        "x-client-status": "contract-ready",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "slot",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 128,
              "pattern": "^[!-~]+$"
            }
          },
          {
            "name": "Idempotency-Origin-Lifecycle-Id",
            "in": "header",
            "required": false,
            "description": "跨重试保持首次提交会话的 originAccountLifecycleId；不得用于跨账号重放。",
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SaveWriteResponse"
                }
              }
            },
            "headers": {
              "X-Request-ID": {
                "schema": {
                  "type": "string"
                },
                "description": "排障时提供；不要记录 token 或平台证明。"
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "403": {
            "$ref": "#/components/responses/Problem"
          },
          "404": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          },
          "413": {
            "$ref": "#/components/responses/Problem"
          },
          "422": {
            "$ref": "#/components/responses/Problem"
          },
          "429": {
            "$ref": "#/components/responses/Problem"
          },
          "500": {
            "$ref": "#/components/responses/Problem"
          },
          "503": {
            "$ref": "#/components/responses/Problem"
          }
        },
        "summary": "保存 JSON 存档",
        "description": "document 须是 JSON 对象，JSON.stringify(document) UTF-8 最多 128 KiB；sha256 是这些字节的 64 位小写十六进制 SHA-256（不是排序后 canonical JSON）。重发保留键、baseRevision、document 和 hash；冲突不能自动覆盖。",
        "tags": [
          "客户端核心 v0.1"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InlineSave"
              }
            }
          }
        }
      }
    },
    "/games/{gameId}/saves/{slot}/uploads": {
      "post": {
        "operationId": "post_games_gameId_saves_slot_uploads",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "slot",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/games/{gameId}/saves/{slot}/uploads/{uploadId}/content": {
      "put": {
        "operationId": "put_games_gameId_saves_slot_uploads_uploadId_content",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "slot",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "uploadId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/games/{gameId}/saves/{slot}/uploads/{uploadId}/finalize": {
      "post": {
        "operationId": "post_games_gameId_saves_slot_uploads_uploadId_finalize",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "slot",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "uploadId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/games/{gameId}/saves/{slot}/uploads/{uploadId}": {
      "delete": {
        "operationId": "delete_games_gameId_saves_slot_uploads_uploadId",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "slot",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "uploadId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/games/{gameId}/progress": {
      "get": {
        "operationId": "get_games_gameId_progress",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      },
      "put": {
        "operationId": "put_games_gameId_progress",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/games/{gameId}/achievements/{code}/progress": {
      "post": {
        "operationId": "post_games_gameId_achievements_code_progress",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "code",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/games/{gameId}/announcements": {
      "get": {
        "operationId": "get_games_gameId_announcements",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/games/{gameId}/purchase-intents": {
      "post": {
        "operationId": "post_games_gameId_purchase_intents",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/games/{gameId}/purchases/apple/verify": {
      "post": {
        "operationId": "post_games_gameId_purchases_apple_verify",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/games/{gameId}/purchases/google/verify": {
      "post": {
        "operationId": "post_games_gameId_purchases_google_verify",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/games/{gameId}/purchases/non-consumables/restore": {
      "post": {
        "operationId": "post_games_gameId_purchases_non_consumables_restore",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/games/{gameId}/purchases/unbound-claims/challenges": {
      "post": {
        "operationId": "post_games_gameId_purchases_unbound_claims_challenges",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/games/{gameId}/purchases/unbound-claims": {
      "post": {
        "operationId": "post_games_gameId_purchases_unbound_claims",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/games/{gameId}/integrity/apple/challenges": {
      "post": {
        "operationId": "post_games_gameId_integrity_apple_challenges",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/games/{gameId}/integrity/apple/register": {
      "post": {
        "operationId": "post_games_gameId_integrity_apple_register",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/games/{gameId}/purchases/claims": {
      "post": {
        "operationId": "post_games_gameId_purchases_claims",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/games/{gameId}/purchases/claims/{claimId}": {
      "get": {
        "operationId": "get_games_gameId_purchases_claims_claimId",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "claimId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      },
      "delete": {
        "operationId": "delete_games_gameId_purchases_claims_claimId",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "claimId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/games/{gameId}/purchases/claims/{claimId}/finalize": {
      "post": {
        "operationId": "post_games_gameId_purchases_claims_claimId_finalize",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "claimId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/games/{gameId}/purchases/deliveries": {
      "get": {
        "operationId": "get_games_gameId_purchases_deliveries",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/games/{gameId}/entitlements": {
      "get": {
        "operationId": "get_games_gameId_entitlements",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/games/{gameId}/inventory": {
      "get": {
        "operationId": "get_games_gameId_inventory",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/games/{gameId}/inventory/ledger": {
      "get": {
        "operationId": "get_games_gameId_inventory_ledger",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/games/{gameId}/inventory/consume": {
      "post": {
        "operationId": "post_games_gameId_inventory_consume",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/games/{gameId}/motion/sessions": {
      "post": {
        "operationId": "post_games_gameId_motion_sessions",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      },
      "get": {
        "operationId": "get_games_gameId_motion_sessions",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/games/{gameId}/motion/sessions/{clientSessionId}": {
      "get": {
        "operationId": "get_games_gameId_motion_sessions_clientSessionId",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "clientSessionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/games/{gameId}/motion/sessions/{clientSessionId}/checkpoints": {
      "post": {
        "operationId": "post_games_gameId_motion_sessions_clientSessionId_checkpoints",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "clientSessionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/games/{gameId}/motion/sessions/{clientSessionId}/finalize": {
      "post": {
        "operationId": "post_games_gameId_motion_sessions_clientSessionId_finalize",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "clientSessionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/games/{gameId}/motion/summary": {
      "get": {
        "operationId": "get_games_gameId_motion_summary",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/me/motion/summary": {
      "get": {
        "operationId": "get_me_motion_summary",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/me/motion/by-game": {
      "get": {
        "operationId": "get_me_motion_by_game",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/games/{gameId}/leaderboards/{boardId}/scores": {
      "post": {
        "operationId": "post_games_gameId_leaderboards_boardId_scores",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "boardId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/games/{gameId}/leaderboards/{boardId}/entries": {
      "get": {
        "operationId": "get_games_gameId_leaderboards_boardId_entries",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "boardId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/games/{gameId}/leaderboards/{boardId}/me": {
      "get": {
        "operationId": "get_games_gameId_leaderboards_boardId_me",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "boardId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/games/{gameId}/inbox": {
      "get": {
        "operationId": "get_games_gameId_inbox",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/games/{gameId}/inbox/{messageId}/claim": {
      "post": {
        "operationId": "post_games_gameId_inbox_messageId_claim",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "gameId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "messageId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/me/account-merges": {
      "post": {
        "operationId": "post_me_account_merges",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/me/account-merges/{mergeId}/preflight": {
      "post": {
        "operationId": "post_me_account_merges_mergeId_preflight",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "mergeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/me/account-merges/{mergeId}/commit": {
      "post": {
        "operationId": "post_me_account_merges_mergeId_commit",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "mergeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/me/account-merges/{mergeId}/cancel": {
      "post": {
        "operationId": "post_me_account_merges_mergeId_cancel",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "mergeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/me/account-merges/{mergeId}": {
      "get": {
        "operationId": "get_me_account_merges_mergeId",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "mergeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/me/commerce-recovery-credentials": {
      "post": {
        "operationId": "post_me_commerce_recovery_credentials",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      },
      "get": {
        "operationId": "get_me_commerce_recovery_credentials",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/me/commerce-recovery-credentials/{credentialId}": {
      "delete": {
        "operationId": "delete_me_commerce_recovery_credentials_credentialId",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "credentialId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    },
    "/me/commerce-recovery-credentials/{credentialId}/acknowledge": {
      "post": {
        "operationId": "post_me_commerce_recovery_credentials_credentialId_acknowledge",
        "x-client-status": "not-in-v0.1",
        "security": [
          {
            "bearerAuth": []
          }
        ],
        "parameters": [
          {
            "name": "credentialId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response"
          },
          "400": {
            "$ref": "#/components/responses/Problem"
          },
          "401": {
            "$ref": "#/components/responses/Problem"
          },
          "409": {
            "$ref": "#/components/responses/Problem"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "bearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    },
    "responses": {
      "Problem": {
        "description": "RFC 9457 problem detail",
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/Problem"
            }
          }
        }
      }
    },
    "schemas": {
      "BootstrapResponse": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "gameId": {
            "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}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "gameSlug": {
            "type": "string",
            "minLength": 2,
            "maxLength": 64,
            "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
          },
          "environment": {
            "type": "string"
          },
          "bundleVersion": {
            "type": "string"
          },
          "minimumClientVersion": {
            "type": "string"
          },
          "maintenance": {
            "type": "object",
            "properties": {
              "enabled": {
                "type": "boolean"
              },
              "message": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "enabled",
              "message"
            ]
          },
          "configVersion": {
            "type": "string"
          },
          "resourceManifestId": {
            "anyOf": [
              {
                "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}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              {
                "type": "null"
              }
            ]
          },
          "serverTime": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          }
        },
        "required": [
          "gameId",
          "gameSlug",
          "environment",
          "bundleVersion",
          "minimumClientVersion",
          "maintenance",
          "configVersion",
          "resourceManifestId",
          "serverTime"
        ]
      },
      "GameConfigResponse": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "anyOf": [
          {
            "type": "string"
          },
          {
            "type": "number"
          },
          {
            "type": "boolean"
          },
          {
            "type": "null"
          },
          {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GameConfigResponse"
            }
          },
          {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {
              "$ref": "#/components/schemas/GameConfigResponse"
            }
          }
        ]
      },
      "DeviceProofChallengeRequest": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "operation": {
            "type": "string",
            "enum": [
              "game_login",
              "game_refresh",
              "merge_preflight"
            ]
          },
          "installationId": {
            "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}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "platform": {
            "type": "string",
            "enum": [
              "ios",
              "android"
            ]
          },
          "clientAppId": {
            "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}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "devicePublicJwk": {
            "type": "object",
            "properties": {
              "kty": {
                "type": "string",
                "const": "EC"
              },
              "crv": {
                "type": "string",
                "const": "P-256"
              },
              "x": {
                "type": "string",
                "pattern": "^[A-Za-z0-9_-]{43}$"
              },
              "y": {
                "type": "string",
                "pattern": "^[A-Za-z0-9_-]{43}$"
              },
              "alg": {
                "default": "ES256",
                "type": "string",
                "const": "ES256"
              },
              "ext": {
                "default": true,
                "type": "boolean",
                "const": true
              }
            },
            "required": [
              "kty",
              "crv",
              "x",
              "y"
            ]
          },
          "deviceKeyId": {
            "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}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "required": [
          "operation",
          "installationId",
          "platform",
          "devicePublicJwk"
        ]
      },
      "DeviceProofChallengeResponse": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "challengeId": {
            "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}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "nonce": {
            "type": "string"
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          }
        },
        "required": [
          "challengeId",
          "nonce",
          "expiresAt"
        ]
      },
      "GameCenterLoginRequest": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "gameSlug": {
            "type": "string",
            "minLength": 2,
            "maxLength": 64,
            "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
          },
          "publicKeyUrl": {
            "type": "string",
            "format": "uri"
          },
          "signature": {
            "type": "string",
            "minLength": 1
          },
          "salt": {
            "type": "string",
            "minLength": 1
          },
          "timestamp": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "teamPlayerId": {
            "type": "string",
            "minLength": 1
          },
          "gamePlayerId": {
            "type": "string"
          },
          "bundleId": {
            "type": "string",
            "minLength": 1
          },
          "installationId": {
            "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}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "devicePublicJwk": {
            "type": "object",
            "properties": {
              "kty": {
                "type": "string",
                "const": "EC"
              },
              "crv": {
                "type": "string",
                "const": "P-256"
              },
              "x": {
                "type": "string",
                "pattern": "^[A-Za-z0-9_-]{43}$"
              },
              "y": {
                "type": "string",
                "pattern": "^[A-Za-z0-9_-]{43}$"
              },
              "alg": {
                "default": "ES256",
                "type": "string",
                "const": "ES256"
              },
              "ext": {
                "default": true,
                "type": "boolean",
                "const": true
              }
            },
            "required": [
              "kty",
              "crv",
              "x",
              "y"
            ]
          },
          "deviceChallengeId": {
            "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}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "deviceChallengeNonce": {
            "type": "string",
            "minLength": 32,
            "maxLength": 128
          },
          "deviceProof": {
            "type": "string",
            "minLength": 80,
            "maxLength": 256
          },
          "authRequestId": {
            "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}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "required": [
          "gameSlug",
          "publicKeyUrl",
          "signature",
          "salt",
          "timestamp",
          "teamPlayerId",
          "bundleId",
          "installationId",
          "devicePublicJwk",
          "deviceChallengeId",
          "deviceChallengeNonce",
          "deviceProof",
          "authRequestId"
        ]
      },
      "PlayGamesLoginRequest": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "gameSlug": {
            "type": "string",
            "minLength": 2,
            "maxLength": 64,
            "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
          },
          "serverAuthCode": {
            "type": "string",
            "minLength": 1
          },
          "recallSessionId": {
            "type": "string",
            "minLength": 1
          },
          "packageName": {
            "type": "string",
            "minLength": 1
          },
          "installationId": {
            "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}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "devicePublicJwk": {
            "type": "object",
            "properties": {
              "kty": {
                "type": "string",
                "const": "EC"
              },
              "crv": {
                "type": "string",
                "const": "P-256"
              },
              "x": {
                "type": "string",
                "pattern": "^[A-Za-z0-9_-]{43}$"
              },
              "y": {
                "type": "string",
                "pattern": "^[A-Za-z0-9_-]{43}$"
              },
              "alg": {
                "default": "ES256",
                "type": "string",
                "const": "ES256"
              },
              "ext": {
                "default": true,
                "type": "boolean",
                "const": true
              }
            },
            "required": [
              "kty",
              "crv",
              "x",
              "y"
            ]
          },
          "deviceChallengeId": {
            "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}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "deviceChallengeNonce": {
            "type": "string",
            "minLength": 32,
            "maxLength": 128
          },
          "deviceProof": {
            "type": "string",
            "minLength": 80,
            "maxLength": 256
          },
          "authRequestId": {
            "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}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "required": [
          "gameSlug",
          "serverAuthCode",
          "packageName",
          "installationId",
          "devicePublicJwk",
          "deviceChallengeId",
          "deviceChallengeNonce",
          "deviceProof",
          "authRequestId"
        ]
      },
      "SessionResponse": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "accessToken": {
            "type": "string",
            "minLength": 1
          },
          "refreshToken": {
            "type": "string",
            "minLength": 1
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          },
          "gameAccountId": {
            "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}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "gameId": {
            "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}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "originAccountLifecycleId": {
            "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}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "deviceKeyId": {
            "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}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "created": {
            "type": "boolean"
          }
        },
        "required": [
          "accessToken",
          "refreshToken",
          "expiresAt",
          "gameAccountId",
          "gameId",
          "originAccountLifecycleId",
          "deviceKeyId",
          "created"
        ]
      },
      "RefreshRequest": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "refreshToken": {
            "type": "string",
            "minLength": 32,
            "maxLength": 512
          },
          "installationId": {
            "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}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "platform": {
            "type": "string",
            "enum": [
              "ios",
              "android"
            ]
          },
          "deviceKeyId": {
            "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}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "devicePublicJwk": {
            "type": "object",
            "properties": {
              "kty": {
                "type": "string",
                "const": "EC"
              },
              "crv": {
                "type": "string",
                "const": "P-256"
              },
              "x": {
                "type": "string",
                "pattern": "^[A-Za-z0-9_-]{43}$"
              },
              "y": {
                "type": "string",
                "pattern": "^[A-Za-z0-9_-]{43}$"
              },
              "alg": {
                "default": "ES256",
                "type": "string",
                "const": "ES256"
              },
              "ext": {
                "default": true,
                "type": "boolean",
                "const": true
              }
            },
            "required": [
              "kty",
              "crv",
              "x",
              "y"
            ]
          },
          "deviceChallengeId": {
            "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}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          },
          "deviceChallengeNonce": {
            "type": "string",
            "minLength": 32,
            "maxLength": 128
          },
          "deviceProof": {
            "type": "string",
            "minLength": 80,
            "maxLength": 256
          },
          "refreshRequestId": {
            "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}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
          }
        },
        "required": [
          "refreshToken",
          "installationId",
          "platform",
          "deviceKeyId",
          "devicePublicJwk",
          "deviceChallengeId",
          "deviceChallengeNonce",
          "deviceProof",
          "refreshRequestId"
        ]
      },
      "RefreshResponse": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "accessToken": {
                "type": "string",
                "minLength": 1
              },
              "refreshToken": {
                "type": "string",
                "minLength": 1
              },
              "expiresAt": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
              },
              "gameAccountId": {
                "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}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "gameId": {
                "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}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "originAccountLifecycleId": {
                "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}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "deviceKeyId": {
                "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}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "created": {
                "type": "boolean"
              },
              "principalType": {
                "type": "string",
                "const": "game_account"
              }
            },
            "required": [
              "accessToken",
              "refreshToken",
              "expiresAt",
              "gameAccountId",
              "gameId",
              "originAccountLifecycleId",
              "deviceKeyId",
              "created",
              "principalType"
            ]
          },
          {
            "type": "object",
            "properties": {
              "accessToken": {
                "type": "string",
                "minLength": 1
              },
              "refreshToken": {
                "type": "string",
                "minLength": 1
              },
              "expiresAt": {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
              },
              "principalType": {
                "type": "string",
                "const": "motion_subject"
              },
              "motionSubjectId": {
                "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}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "deviceKeyId": {
                "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}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "created": {
                "type": "boolean",
                "const": false
              }
            },
            "required": [
              "accessToken",
              "refreshToken",
              "expiresAt",
              "principalType",
              "motionSubjectId",
              "deviceKeyId",
              "created"
            ]
          }
        ]
      },
      "LogoutResponse": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "state": {
            "type": "string",
            "const": "revoked"
          }
        },
        "required": [
          "state"
        ]
      },
      "LogoutAllResponse": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "state": {
            "type": "string",
            "const": "revoked"
          },
          "scope": {
            "type": "string",
            "const": "all"
          }
        },
        "required": [
          "state",
          "scope"
        ]
      },
      "CurrentPrincipalResponse": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "principalType": {
                "type": "string",
                "const": "game_account"
              },
              "gameAccountId": {
                "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}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "gameId": {
                "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}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "accessStatus": {
                "type": "string",
                "enum": [
                  "active",
                  "blocked"
                ]
              },
              "lifecycleState": {
                "type": "string",
                "enum": [
                  "active",
                  "deleting",
                  "purging",
                  "deleted",
                  "merged"
                ]
              },
              "mutationState": {
                "type": "string",
                "enum": [
                  "active",
                  "merge_frozen"
                ]
              },
              "tokenEpoch": {
                "type": "string",
                "pattern": "^\\d+$"
              },
              "lineageId": {
                "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}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "lineageGeneration": {
                "type": "string",
                "pattern": "^\\d+$"
              }
            },
            "required": [
              "principalType",
              "gameAccountId",
              "gameId",
              "accessStatus",
              "lifecycleState",
              "mutationState",
              "tokenEpoch",
              "lineageId",
              "lineageGeneration"
            ]
          },
          {
            "type": "object",
            "properties": {
              "principalType": {
                "type": "string",
                "const": "motion_subject"
              },
              "subjectId": {
                "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}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
              },
              "scopes": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "required": [
              "principalType",
              "subjectId",
              "scopes"
            ]
          }
        ]
      },
      "ProfilePatch": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "baseRevision": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "displayFields": {
            "type": "object",
            "propertyNames": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 256
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ]
            }
          }
        },
        "required": [
          "baseRevision",
          "displayFields"
        ]
      },
      "ProfileResponse": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "display_fields": {
            "type": "object",
            "propertyNames": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 256
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "schema_version": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "revision": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "updated_at": {
            "anyOf": [
              {
                "type": "string",
                "format": "date-time",
                "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "display_fields",
          "schema_version",
          "revision",
          "updated_at"
        ]
      },
      "ProfilePatchResponse": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "revision": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "display_fields": {
            "type": "object",
            "propertyNames": {
              "type": "string",
              "minLength": 1,
              "maxLength": 64
            },
            "additionalProperties": {
              "anyOf": [
                {
                  "type": "string",
                  "maxLength": 256
                },
                {
                  "type": "number"
                },
                {
                  "type": "boolean"
                },
                {
                  "type": "null"
                }
              ]
            }
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          }
        },
        "required": [
          "revision",
          "display_fields",
          "updated_at"
        ]
      },
      "InlineSave": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "baseRevision": {
            "type": "integer",
            "minimum": 0,
            "maximum": 9007199254740991
          },
          "document": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          },
          "sha256": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          }
        },
        "required": [
          "baseRevision",
          "document",
          "sha256"
        ]
      },
      "SaveListResponse": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "slot": {
                  "type": "string"
                },
                "revision": {
                  "type": "integer",
                  "exclusiveMinimum": 0,
                  "maximum": 9007199254740991
                },
                "content_sha256": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "updated_at": {
                  "type": "string",
                  "format": "date-time",
                  "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                }
              },
              "required": [
                "slot",
                "revision",
                "content_sha256",
                "updated_at"
              ]
            }
          },
          "nextCursor": {
            "type": "null"
          }
        },
        "required": [
          "items",
          "nextCursor"
        ]
      },
      "SaveResponse": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "slot": {
            "type": "string"
          },
          "revision": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "content_sha256": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          },
          "inline_document": {
            "anyOf": [
              {
                "type": "object",
                "propertyNames": {
                  "type": "string"
                },
                "additionalProperties": {}
              },
              {
                "type": "null"
              }
            ]
          },
          "object_key": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "required": [
          "slot",
          "revision",
          "content_sha256",
          "updated_at",
          "inline_document",
          "object_key"
        ]
      },
      "SaveWriteResponse": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "revision": {
            "type": "integer",
            "exclusiveMinimum": 0,
            "maximum": 9007199254740991
          },
          "updated_at": {
            "type": "string",
            "format": "date-time",
            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
          }
        },
        "required": [
          "revision",
          "updated_at"
        ]
      },
      "ProblemDetails": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "format": "uri"
          },
          "title": {
            "type": "string"
          },
          "status": {
            "type": "integer",
            "minimum": 400,
            "maximum": 599
          },
          "code": {
            "type": "string",
            "enum": [
              "BAD_REQUEST",
              "AUTHENTICATION_REQUIRED",
              "AUTHORIZATION_DENIED",
              "ACCOUNT_BLOCKED",
              "ACCOUNT_NOT_ACTIVE",
              "ACCOUNT_MUTATION_FROZEN",
              "GAME_SCOPE_MISMATCH",
              "PROVIDER_NOT_ALLOWED",
              "IDEMPOTENCY_KEY_REQUIRED",
              "IDEMPOTENCY_CONFLICT",
              "IDEMPOTENCY_IN_PROGRESS",
              "EXTERNAL_IDENTITY_PROOF_REISSUE_REQUIRED",
              "REVISION_CONFLICT",
              "RATE_LIMITED",
              "NOT_FOUND",
              "PAYLOAD_TOO_LARGE",
              "CHECKSUM_MISMATCH",
              "MOTION_AUTHORIZATION_REQUIRED",
              "MOTION_SEQUENCE_CONFLICT",
              "OWNED_BY_ANOTHER_ACCOUNT",
              "UNSUPPORTED_PURCHASE",
              "RECOVERY_CREDENTIAL_UNACKNOWLEDGED",
              "CREDENTIAL_LIMIT_REACHED",
              "CREDENTIAL_LIMIT_CONFLICT",
              "CREDENTIAL_ALREADY_CONSUMED",
              "ROOT_NOT_YET_CLAIMABLE",
              "TRANSFER_LIMIT_EXCEEDED",
              "DELETION_CONFIRMATION_STALE",
              "DELETION_SCOPE_CONFLICT",
              "MERGE_CONTROL_REQUIRED",
              "EXTERNAL_DEPENDENCY_UNAVAILABLE",
              "INTERNAL_ERROR"
            ]
          },
          "requestId": {
            "type": "string",
            "minLength": 1
          },
          "detail": {
            "type": "string"
          },
          "details": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          }
        },
        "required": [
          "type",
          "title",
          "status",
          "code",
          "requestId"
        ]
      },
      "GameExternalIdentityProvider": {
        "type": "string",
        "enum": [
          "game_center",
          "play_games"
        ]
      },
      "ExternalIdentityLinkChallengeRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "provider",
          "gameSlug",
          "appIdentifier"
        ],
        "properties": {
          "provider": {
            "$ref": "#/components/schemas/GameExternalIdentityProvider"
          },
          "gameSlug": {
            "type": "string",
            "minLength": 2,
            "maxLength": 64,
            "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
          },
          "appIdentifier": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255
          }
        }
      },
      "ExternalIdentityLinkChallenge": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "challengeId",
          "challengeNonce",
          "provider",
          "gameAppId",
          "expiresAt"
        ],
        "properties": {
          "challengeId": {
            "type": "string",
            "format": "uuid"
          },
          "challengeNonce": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{43}$"
          },
          "provider": {
            "$ref": "#/components/schemas/GameExternalIdentityProvider"
          },
          "gameAppId": {
            "type": "string",
            "format": "uuid"
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "GameCenterExternalIdentityLinkRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "challengeId",
          "challengeNonce",
          "publicKeyUrl",
          "signature",
          "salt",
          "timestamp",
          "teamPlayerId",
          "bundleId"
        ],
        "properties": {
          "challengeId": {
            "type": "string",
            "format": "uuid"
          },
          "challengeNonce": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{43}$"
          },
          "publicKeyUrl": {
            "type": "string",
            "format": "uri"
          },
          "signature": {
            "type": "string",
            "minLength": 1,
            "maxLength": 8192
          },
          "salt": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          },
          "timestamp": {
            "type": "integer",
            "minimum": 1
          },
          "teamPlayerId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          },
          "gamePlayerId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1024
          },
          "bundleId": {
            "type": "string",
            "minLength": 1,
            "maxLength": 255
          }
        }
      },
      "PlayGamesExternalIdentityLinkRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "challengeId",
          "challengeNonce",
          "serverAuthCode"
        ],
        "properties": {
          "challengeId": {
            "type": "string",
            "format": "uuid"
          },
          "challengeNonce": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{43}$"
          },
          "serverAuthCode": {
            "type": "string",
            "minLength": 1,
            "maxLength": 8192
          }
        }
      },
      "ExternalIdentityLink": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "linkId",
          "provider",
          "state",
          "linkedAt",
          "revokedAt"
        ],
        "properties": {
          "linkId": {
            "type": "string",
            "format": "uuid"
          },
          "provider": {
            "$ref": "#/components/schemas/GameExternalIdentityProvider"
          },
          "state": {
            "type": "string",
            "enum": [
              "active",
              "revoked"
            ]
          },
          "linkedAt": {
            "type": "string",
            "format": "date-time"
          },
          "revokedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        }
      },
      "ExternalIdentityLinkList": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "items"
        ],
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExternalIdentityLink"
            }
          }
        }
      },
      "DeletionCodeCreateRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "scope"
        ],
        "properties": {
          "scope": {
            "type": "string",
            "enum": [
              "current_game",
              "shared_motion"
            ]
          }
        }
      },
      "DeletionCode": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "scope",
          "expires_at",
          "code",
          "replay"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "scope": {
            "type": "string",
            "enum": [
              "current_game",
              "shared_motion"
            ]
          },
          "expires_at": {
            "type": "string",
            "format": "date-time"
          },
          "code": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{43}$"
          },
          "replay": {
            "type": "boolean"
          }
        }
      },
      "CurrentDeletionStatus": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "requestId",
          "state",
          "scope",
          "revision",
          "createdAt",
          "updatedAt",
          "verificationExpiresAt",
          "coolingExpiresAt",
          "completedAt"
        ],
        "properties": {
          "requestId": {
            "type": "string",
            "format": "uuid"
          },
          "state": {
            "type": "string",
            "enum": [
              "submitted",
              "verification_pending",
              "verified_pending_confirmation",
              "stale",
              "deleting",
              "purging",
              "completed",
              "cancelled",
              "superseded",
              "verification_insufficient"
            ]
          },
          "scope": {
            "type": "string",
            "enum": [
              "current_game",
              "shared_motion"
            ]
          },
          "revision": {
            "type": "integer",
            "minimum": 1
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "verificationExpiresAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "coolingExpiresAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "completedAt": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        }
      },
      "PlayerExportCreateRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "scope"
        ],
        "properties": {
          "scope": {
            "type": "string",
            "enum": [
              "current_game",
              "shared_motion"
            ]
          }
        }
      },
      "PlayerExportStatus": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "request_id",
          "scope",
          "state",
          "part_count",
          "total_rows",
          "total_bytes",
          "created_at",
          "completed_at",
          "expires_at",
          "download_url"
        ],
        "properties": {
          "request_id": {
            "type": "string",
            "format": "uuid"
          },
          "scope": {
            "type": "string",
            "enum": [
              "current_game",
              "shared_motion"
            ]
          },
          "state": {
            "type": "string",
            "enum": [
              "queued",
              "building_snapshot",
              "running",
              "completed",
              "failed",
              "cancelled_for_deletion",
              "expired"
            ]
          },
          "part_count": {
            "type": "integer",
            "minimum": 0
          },
          "total_rows": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]*)$"
          },
          "total_bytes": {
            "type": "string",
            "pattern": "^(?:0|[1-9][0-9]*)$"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "completed_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "expires_at": {
            "type": "string",
            "format": "date-time"
          },
          "download_url": {
            "type": [
              "string",
              "null"
            ],
            "pattern": "^/v1/me/exports/[0-9a-f-]{36}/download$"
          }
        }
      },
      "Problem": {
        "$schema": "https://json-schema.org/draft/2020-12/schema",
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "format": "uri"
          },
          "title": {
            "type": "string"
          },
          "status": {
            "type": "integer",
            "minimum": 400,
            "maximum": 599
          },
          "code": {
            "type": "string",
            "enum": [
              "BAD_REQUEST",
              "AUTHENTICATION_REQUIRED",
              "AUTHORIZATION_DENIED",
              "ACCOUNT_BLOCKED",
              "ACCOUNT_NOT_ACTIVE",
              "ACCOUNT_MUTATION_FROZEN",
              "GAME_SCOPE_MISMATCH",
              "PROVIDER_NOT_ALLOWED",
              "IDEMPOTENCY_KEY_REQUIRED",
              "IDEMPOTENCY_CONFLICT",
              "IDEMPOTENCY_IN_PROGRESS",
              "EXTERNAL_IDENTITY_PROOF_REISSUE_REQUIRED",
              "REVISION_CONFLICT",
              "RATE_LIMITED",
              "NOT_FOUND",
              "PAYLOAD_TOO_LARGE",
              "CHECKSUM_MISMATCH",
              "MOTION_AUTHORIZATION_REQUIRED",
              "MOTION_SEQUENCE_CONFLICT",
              "OWNED_BY_ANOTHER_ACCOUNT",
              "UNSUPPORTED_PURCHASE",
              "RECOVERY_CREDENTIAL_UNACKNOWLEDGED",
              "CREDENTIAL_LIMIT_REACHED",
              "CREDENTIAL_LIMIT_CONFLICT",
              "CREDENTIAL_ALREADY_CONSUMED",
              "ROOT_NOT_YET_CLAIMABLE",
              "TRANSFER_LIMIT_EXCEEDED",
              "DELETION_CONFIRMATION_STALE",
              "DELETION_SCOPE_CONFLICT",
              "MERGE_CONTROL_REQUIRED",
              "EXTERNAL_DEPENDENCY_UNAVAILABLE",
              "INTERNAL_ERROR"
            ]
          },
          "requestId": {
            "type": "string",
            "minLength": 1
          },
          "detail": {
            "type": "string"
          },
          "details": {
            "type": "object",
            "propertyNames": {
              "type": "string"
            },
            "additionalProperties": {}
          }
        },
        "required": [
          "type",
          "title",
          "status",
          "code",
          "requestId"
        ]
      }
    }
  }
}
