{
  "version": 1,
  "coverage": {
    "clientCommands": 293,
    "serverCommands": 289,
    "total": 305,
    "gameTools": 292,
    "forwardableGameCommands": 277,
    "unsupportedClientDeclarations": 9,
    "disabledServerHandlers": 6,
    "managedAccountTransportCommands": 13,
    "liveVerified": false
  },
  "sources": {
    "earth2037_client/assets/scripts/net/cmd/_base.ts": "bf5faa80b03ddde84db3e2c75c36e5f5873798ba9979aa5172eec856c34eeaba",
    "earth2037_client/assets/scripts/net/cmd/alliance.ts": "348843188d10ae16233073bbc169c2ea4484f43149e9a01e6d291de80a4eafc0",
    "earth2037_client/assets/scripts/net/cmd/build.ts": "c6f93966626d8421f927dbed82300b8d24c8421329979a1bae5c0f3672158585",
    "earth2037_client/assets/scripts/net/cmd/chat.ts": "8ed9e4846d7681cc2c8386545c60569394e7606ce242667fc25aeb550defa209",
    "earth2037_client/assets/scripts/net/cmd/city.ts": "c0c5b31fc4c16d4ac5e008fcf8c8f6de55aa592585f6b8ca89083119c81b5866",
    "earth2037_client/assets/scripts/net/cmd/combat.ts": "4b87149085dde51c1bb96bc24c5fc0b7467341066d90562386a67e634df8761f",
    "earth2037_client/assets/scripts/net/cmd/hero.ts": "acb4d25e93a987471321022ec6d9458b94b296e520f4d131c808264eff53b37f",
    "earth2037_client/assets/scripts/net/cmd/items.ts": "d48c7305cef6911da655df66e91fa1832b17210e9e35bd8aedaa977a1a6485e7",
    "earth2037_client/assets/scripts/net/cmd/misc.ts": "8edd641e4e1d50e51ef5c3252b241c7b98b5202cf3882052f31784dc1dca6c4c",
    "earth2037_client/assets/scripts/net/cmd/pay.ts": "853e5971cbbdcc37f4ed0c6910de537920e1f4bd68d3333f331f0cc994bab93e",
    "earth2037_client/assets/scripts/net/cmd/playerMarket.ts": "f4951542f23c04b85bfe97d2487a990ef6e297677fa00dc1a52fc0fd29f44c0c",
    "earth2037_client/assets/scripts/net/cmd/ranking.ts": "ceebffe9e700c958425cf7114f81912a7c4a6a1722c41daf7502a79417861d9b",
    "earth2037_client/assets/scripts/net/cmd/relicActivity.ts": "62ef4a382ef8b0f1be57fa1f922555ebf559869507aa8e98cf0ecfd9596a2d3b",
    "earth2037_client/assets/scripts/net/cmd/reports.ts": "785bc78e50ab9d9a18ad72f99a144cbef8bb2611f53144b1720dfa8abae36b36",
    "earth2037_client/assets/scripts/net/cmd/session.ts": "f989c84469667bf94a6903bb2b9ba5b3048664e74c0b55e1e2e56af14e1fbdc6",
    "earth2037_client/assets/scripts/net/cmd/tasks.ts": "43d954c8db14d3b26a324fba659a73adcf2b79d2b70db4349ec99230cd073674",
    "earth2037_client/assets/scripts/net/cmd/troops.ts": "35842994c2a5505d49681b391a6e916863de07288d14927725fa5051cf4caf45",
    "earth2037_client/assets/scripts/net/cmd/user.ts": "d27dc891eb499ef1b26badacbd425a16cf16f8bb2c94bd42d2f1fc530986f093",
    "earth2037_client/assets/scripts/net/commands.ts": "2102613c573ab740f37fb622c0e5bb94cbfa21fec4e2ae84187f82fb38fe71ff",
    "earth2037_server/Server/Net/Game/Server/Game_Session.cs": "7045271f80a971c4c72c7ce1ad83073922bd6cbd6c5ae1280f11b915f5633429",
    "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.AccountCenter.cs": "0faac05e4a10ea87cacebc7bbcbf6efb5b1224b7fd2999667671b93cf382ded4",
    "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.Activities.cs": "ef289cdfeaa8753cf9dc572def38b2e16968c62b0e2e23a21547a9756bdd2753",
    "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.AllianceEntry.cs": "d4496ee0ee84d7d7c934d2cf6e5926202584da853f11931808edb2f1f373d237",
    "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.AllianceHelp.cs": "6d95af373fbd7577fb10f023fd7cd5c887bd1071b8d113c64126ffb53e41f962",
    "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.ChatTranslation.cs": "cd033ef2b02341feee45d61d810c0ccf2e030729eb424f67c214dcf2ea81d363",
    "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.CityDefense.cs": "6437779a03deb7a46b17861743e7dc654171b803552b98480bba842f09d21c2f",
    "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.Decorations.cs": "fdde16437f415d39ee67ceba3159594a7cbffcc155b4b2129a4a99bb3b090e17",
    "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.Guide.cs": "e8025b9e22cc6904e328dd2e37168a021d037b958be08fed192054f4e25c9158",
    "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.Ownership.cs": "403b963087d3200937a7007ddefc128ffa90cd2f0df54bb870e33d45cbddc845",
    "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.PlayerMarket.cs": "3283b5e9be9c242b4c25d564e8c33ed8606460dc406945a207f48caf3b536758",
    "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.Progression.cs": "d218901014bcf8742d4a760deb1a54ac482ad09dfc429f62d2b3c6aaba6eefa4",
    "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.ResourcePacks.cs": "435ee4a6efb7423bf5f495b0362e58c0549f4545a6597d804d53619404970b29",
    "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.SharedTerrain.cs": "0c2eda56bcfc5a32799e9fbb294551cd95067cbf0b815af7062d12399f013df8",
    "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.Speedup.cs": "47966d7961b67ee99914f3ee7adbe2ea6c234edf6f8987cf4bfb447a352a11d5",
    "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.TikTokMission.cs": "a8f7b8d7671e4bdc0289c7a56cb3662fdb2b37c4903d7b3373295ccc3cf60ba2",
    "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.cs": "0b7dbd02df53c774690ae0ec09210e58fde1c739a454437b2349112987945844"
  },
  "commands": [
    {
      "name": "acceptdiplomaticapply",
      "variants": [
        {
          "interface": "AcceptDiplomaticApplyCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 106,
          "description": "接受外交申请（关键命令）：/acceptdiplomaticapply {applicationId}。",
          "order": [
            "applicationId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "applicationId": {
                "type": "number"
              }
            },
            "required": [
              "applicationId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 667
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "acceptinvitation",
      "variants": [
        {
          "interface": "AcceptInvitationCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 192,
          "description": "接受邀请（关键命令）：/acceptinvitation {invitationId}。",
          "order": [
            "invitationId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "invitationId": {
                "type": "number"
              }
            },
            "required": [
              "invitationId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 655
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "activeattack",
      "variants": [
        {
          "interface": "ActiveAttackCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/items.ts",
          "line": 162,
          "description": "",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 610
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "items",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "activeclay",
      "variants": [
        {
          "interface": "ActiveClayCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/items.ts",
          "line": 159,
          "description": "",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 598
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "items",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "activedefend",
      "variants": [
        {
          "interface": "ActiveDefendCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/items.ts",
          "line": 163,
          "description": "",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 606
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "items",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "activefood",
      "variants": [
        {
          "interface": "ActiveFoodCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/items.ts",
          "line": 161,
          "description": "",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 590
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "items",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "activehero",
      "variants": [
        {
          "interface": "ActiveHeroCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/hero.ts",
          "line": 56,
          "description": "激活/休息英雄（关键命令）：/activehero {heroId} {action}，1 激活，0 休息。",
          "order": [
            "heroId",
            "action"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "heroId": {
                "type": "number"
              },
              "action": {
                "anyOf": [
                  {
                    "type": "number",
                    "const": 0
                  },
                  {
                    "type": "number",
                    "const": 1
                  }
                ]
              }
            },
            "required": [
              "heroId",
              "action"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 943
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "hero",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "activeiron",
      "variants": [
        {
          "interface": "ActiveIronCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/items.ts",
          "line": 160,
          "description": "",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 594
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "items",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "activeplus",
      "variants": [
        {
          "interface": "ActivePlusCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/items.ts",
          "line": 164,
          "description": "",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 586
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "items",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "activewood",
      "variants": [
        {
          "interface": "ActiveWoodCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/items.ts",
          "line": 158,
          "description": "",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 602
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "items",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "activity",
      "variants": [
        {
          "interface": "ActivityCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/items.ts",
          "line": 152,
          "description": "活动奖励（关键命令）：/activity {activityJson}。",
          "order": [
            "activityJson"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "activityJson": {
                "type": "string"
              }
            },
            "required": [
              "activityJson"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 867
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "items",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "addbuildqueue",
      "variants": [],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 433
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "server",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "addcitymilitaryscience",
      "variants": [
        {
          "interface": "AddCityMilitaryScienceCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/troops.ts",
          "line": 51,
          "description": "使用士兵卡加科技（关键命令）：/addcitymilitaryscience {scienceJson}。",
          "order": [
            "scienceJson"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "scienceJson": {
                "type": "string"
              }
            },
            "required": [
              "scienceJson"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [],
      "ack": true,
      "readOnly": false,
      "category": "troops",
      "route": "game",
      "availability": "unsupported-client-declaration"
    },
    {
      "name": "addcombatqueue",
      "variants": [
        {
          "interface": "AddCombatQueueCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 87,
          "description": "加入行军队列（扣兵，关键命令）：/addcombatqueue {combatJson}。",
          "order": [
            "combatJson"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "combatJson": {
                "type": "string"
              }
            },
            "required": [
              "combatJson"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 537
        },
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.Activities.cs",
          "line": 17
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "addconscriptionqueue",
      "variants": [
        {
          "interface": "AddConscriptionQueueCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/troops.ts",
          "line": 14,
          "description": "加入造兵队列（扣资源，关键命令）：/addconscriptionqueue {queueJson}。",
          "order": [
            "queueJson"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "queueJson": {
                "type": "string"
              }
            },
            "required": [
              "queueJson"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 521
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "troops",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "addtrade",
      "variants": [
        {
          "interface": "AddTradeCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 183,
          "description": "新增交易（关键命令）：/addtrade {tradeJson}。",
          "order": [
            "tradeJson"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tradeJson": {
                "type": "string"
              }
            },
            "required": [
              "tradeJson"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [],
      "disabledServerSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 710
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "disabled-server-handler"
    },
    {
      "name": "addtroopssciencequeue",
      "variants": [
        {
          "interface": "AddTroopsScienceQueueCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/troops.ts",
          "line": 39,
          "description": "加入兵种科技队列（关键命令）：/addtroopssciencequeue {queueJson}。",
          "order": [
            "queueJson"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "queueJson": {
                "type": "string"
              }
            },
            "required": [
              "queueJson"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 517
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "troops",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "airdrop",
      "variants": [
        {
          "interface": "AirdropCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 219,
          "description": "购买空投次数：/airdrop。服务端当前停用该入口，类型仅保留协议兼容。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 767
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "airdropres",
      "variants": [
        {
          "interface": "AirdropResCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 225,
          "description": "城市空投资源：/airdropres {cityId}。",
          "order": [
            "cityId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "cityId": {
                "type": "number"
              }
            },
            "required": [
              "cityId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 847
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "airinfo",
      "variants": [
        {
          "interface": "AirInfoCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 222,
          "description": "查询空投进度：/airinfo，响应为 \"已领取次数,总次数\"。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 843
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "armies",
      "variants": [
        {
          "interface": "ArmiesCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/troops.ts",
          "line": 27,
          "description": "所有兵种定义：/armies。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 437
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "troops",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "arrivalintrostep",
      "variants": [
        {
          "interface": "ArrivalIntroStepCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/user.ts",
          "line": 88,
          "description": "",
          "order": [
            "taskId",
            "claim"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "taskId": {
                "type": "number"
              },
              "claim": {
                "anyOf": [
                  {
                    "type": "number",
                    "const": 0
                  },
                  {
                    "type": "number",
                    "const": 1
                  }
                ]
              }
            },
            "required": [
              "taskId",
              "claim"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.Guide.cs",
          "line": 9
        },
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.cs",
          "line": 307
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "user",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "autocreateuser",
      "variants": [
        {
          "interface": "AutoCreateUserCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/session.ts",
          "line": 52,
          "description": "自动创建账号（登录返回 -17 选营后用）：/autocreateuser {name} {md5pwd} {campId} {0}。",
          "order": [
            "name",
            "md5pwd",
            "campId",
            "flag"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "md5pwd": {
                "type": "string"
              },
              "campId": {
                "type": "number"
              },
              "flag": {
                "type": "number"
              }
            },
            "required": [
              "name",
              "md5pwd",
              "campId",
              "flag"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 562
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "session",
      "route": "account",
      "availability": "server-dispatched"
    },
    {
      "name": "b_jointeam",
      "variants": [
        {
          "interface": "BJoinTeamCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 123,
          "description": "加入队伍：/b_jointeam {teamJson}。",
          "order": [
            "teamJson"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "teamJson": {
                "type": "string"
              }
            },
            "required": [
              "teamJson"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 911
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "b_starttime",
      "variants": [
        {
          "interface": "BStartTimeCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 117,
          "description": "跨战开始时间：/b_starttime。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 903
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "b_teampoints",
      "variants": [
        {
          "interface": "BTeamPointsCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 120,
          "description": "队伍积分：/b_teampoints。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 907
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "balanceres",
      "variants": [
        {
          "interface": "BalanceResCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 249,
          "description": "资源平衡（关键命令）：/balanceres {cityId} {w}:{c}:{i}:{f} [userGoodsId]。",
          "order": [
            "cityId",
            "ratio",
            "userGoodsId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "cityId": {
                "type": "number"
              },
              "ratio": {
                "type": "string",
                "description": "\"wood:clay:iron:food\" 目标数量串（保留旧字段名 ratio）；服务端按当前总量守恒校准。"
              },
              "userGoodsId": {
                "type": "number"
              }
            },
            "required": [
              "cityId",
              "ratio"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 618
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "ballistictargets",
      "variants": [
        {
          "interface": "NewProtocolCmd.inline",
          "source": "earth2037_client/assets/scripts/net/commands.ts",
          "line": 212,
          "description": "",
          "order": [
            "origin",
            "target"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "origin": {
                "type": "number"
              },
              "target": {
                "type": "number"
              }
            },
            "required": [
              "origin",
              "target"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.cs",
          "line": 212
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "commands",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "barrackukeep",
      "variants": [],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1028
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "server",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "barrackupkeep",
      "variants": [
        {
          "interface": "BarrackUpkeepCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/troops.ts",
          "line": 93,
          "description": "兵营 upkeep：/barrackupkeep {json}。",
          "order": [
            "json"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "json": {
                "type": "string"
              }
            },
            "required": [
              "json"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [],
      "ack": false,
      "readOnly": false,
      "category": "troops",
      "route": "game",
      "wireCommand": "barrackukeep",
      "availability": "mapped-alias"
    },
    {
      "name": "battleteams",
      "variants": [
        {
          "interface": "BattleTeamsCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 105,
          "description": "战斗队伍：/battleteams {json}。",
          "order": [
            "json"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "json": {
                "type": "string"
              }
            },
            "required": [
              "json"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1174
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "bindsns",
      "variants": [
        {
          "interface": "BindSnsCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/user.ts",
          "line": 74,
          "description": "绑定 SNS：/bindsns {snsJson}。",
          "order": [
            "snsJson"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "snsJson": {
                "type": "string"
              }
            },
            "required": [
              "snsJson"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1140
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "user",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "buildat",
      "variants": [
        {
          "interface": "BuildAtCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/build.ts",
          "line": 11,
          "description": "新建建筑（map3d）：/buildat {tileId} {buildId} {gx} {gy} {rot}。",
          "order": [
            "tileId",
            "buildId",
            "gx",
            "gy",
            "rot"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              },
              "buildId": {
                "type": "number"
              },
              "gx": {
                "type": "number"
              },
              "gy": {
                "type": "number"
              },
              "rot": {
                "type": "number"
              }
            },
            "required": [
              "tileId",
              "buildId",
              "gx",
              "gy",
              "rot"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.cs",
          "line": 224
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "build",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "buildinfo",
      "variants": [
        {
          "interface": "BuildInfoCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/build.ts",
          "line": 138,
          "description": "建筑信息：/buildinfo {tileId} {pointId}。",
          "order": [
            "tileId",
            "pointId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              },
              "pointId": {
                "type": "number"
              }
            },
            "required": [
              "tileId",
              "pointId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 291
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "build",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "buildlist",
      "variants": [
        {
          "interface": "BuildListCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/build.ts",
          "line": 84,
          "description": "建筑列表（按种族）：/buildlist {tribeId}。",
          "order": [
            "tribeId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tribeId": {
                "type": "number"
              }
            },
            "required": [
              "tribeId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 283
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "build",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "buyallianceshop",
      "variants": [
        {
          "interface": "BuyAllianceShopCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 23,
          "description": "",
          "order": [
            "shopItemId",
            "expectedVersion",
            "operationId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "shopItemId": {
                "type": "number"
              },
              "expectedVersion": {
                "type": "string"
              },
              "operationId": {
                "type": "string"
              }
            },
            "required": [
              "shopItemId",
              "expectedVersion",
              "operationId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.AllianceHelp.cs",
          "line": 16
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "buyblueprint",
      "variants": [
        {
          "interface": "BuyBlueprintCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/build.ts",
          "line": 157,
          "description": "购买蓝图（关键命令）：/buyblueprint {type}，type=1/2 城市蓝图，3/4 等级蓝图。",
          "order": [
            "type"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "type": {
                "anyOf": [
                  {
                    "type": "number",
                    "const": 1
                  },
                  {
                    "type": "number",
                    "const": 2
                  },
                  {
                    "type": "number",
                    "const": 3
                  },
                  {
                    "type": "number",
                    "const": 4
                  }
                ]
              }
            },
            "required": [
              "type"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1115
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "build",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "buybuildqueue",
      "variants": [
        {
          "interface": "BuyBuildQueueCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/build.ts",
          "line": 113,
          "description": "购买建筑队列位（关键命令）：/buybuildqueue {slot}。",
          "order": [
            "slot"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "slot": {
                "type": "number"
              }
            },
            "required": [
              "slot"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1178
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "build",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "buychest",
      "variants": [
        {
          "interface": "BuyChestCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/items.ts",
          "line": 74,
          "description": "购买宝箱（关键命令）：/buychest {type} {qty}\ntype 1=小 2=中 3=大。",
          "order": [
            "type",
            "qty"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "type": {
                "anyOf": [
                  {
                    "type": "number",
                    "const": 1
                  },
                  {
                    "type": "number",
                    "const": 2
                  },
                  {
                    "type": "number",
                    "const": 3
                  }
                ]
              },
              "qty": {
                "type": "number"
              }
            },
            "required": [
              "type",
              "qty"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1088
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "items",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "buyengineer",
      "variants": [
        {
          "interface": "BuyEngineerCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/build.ts",
          "line": 163,
          "description": "购买工程师队列（关键命令）：/buyengineer {nextCount}，取当前 extBuilding + 1。",
          "order": [
            "nextCount"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "nextCount": {
                "anyOf": [
                  {
                    "type": "number",
                    "const": 1
                  },
                  {
                    "type": "number",
                    "const": 2
                  },
                  {
                    "type": "number",
                    "const": 3
                  },
                  {
                    "type": "number",
                    "const": 4
                  }
                ]
              }
            },
            "required": [
              "nextCount"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1193
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "build",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "buyitem",
      "variants": [
        {
          "interface": "BuyItemCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/items.ts",
          "line": 81,
          "description": "购买 PLUS 道具（关键命令）：/buyitem {goodsKey} {qty}。",
          "order": [
            "goodsKey",
            "qty"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "goodsKey": {
                "anyOf": [
                  {
                    "type": "string",
                    "const": "resradar"
                  },
                  {
                    "type": "string",
                    "const": "protectedticket"
                  }
                ]
              },
              "qty": {
                "type": "number"
              }
            },
            "required": [
              "goodsKey",
              "qty"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1197
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "items",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "buysoldiers",
      "variants": [
        {
          "interface": "BuySoldiersCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/troops.ts",
          "line": 60,
          "description": "立即训练士兵（关键命令）：/buysoldiers {troopsJson}。",
          "order": [
            "troopsJson"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "troopsJson": {
                "type": "string"
              }
            },
            "required": [
              "troopsJson"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1032
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "troops",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "buystone",
      "variants": [
        {
          "interface": "BuyStoneCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/items.ts",
          "line": 65,
          "description": "购买石头（关键命令）：/buystone {qty}。",
          "order": [
            "qty"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "qty": {
                "type": "number"
              }
            },
            "required": [
              "qty"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1084
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "items",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "cancelbuildqueue",
      "variants": [
        {
          "interface": "CancelBuildQueueCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/build.ts",
          "line": 106,
          "description": "取消建筑队列（关键命令）：/cancelbuildqueue {tileId} {pointId}。",
          "order": [
            "tileId",
            "pointId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              },
              "pointId": {
                "type": "number"
              }
            },
            "required": [
              "tileId",
              "pointId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 420
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "build",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "cdkey",
      "variants": [
        {
          "interface": "CdkeyCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/items.ts",
          "line": 108,
          "description": "CDKey 兑换（关键命令）：/cdkey {cdk}。",
          "order": [
            "cdk"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "cdk": {
                "type": "string"
              }
            },
            "required": [
              "cdk"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1144
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "items",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "chageallyowner",
      "variants": [
        {
          "interface": "ChageAllyOwnerCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 164,
          "description": "转让盟主（关键命令）：/chageallyowner {userId}。服务端命令名保留历史拼写。",
          "order": [
            "userId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "userId": {
                "type": "number"
              }
            },
            "required": [
              "userId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1007
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "checkherogoodsskill",
      "variants": [
        {
          "interface": "CheckHeroGoodsSkillCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/troops.ts",
          "line": 87,
          "description": "检查英雄道具技能：/checkherogoodsskill {heroJson}。",
          "order": [
            "heroJson"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "heroJson": {
                "type": "string"
              }
            },
            "required": [
              "heroJson"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1080
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "troops",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "checkteam",
      "variants": [
        {
          "interface": "CheckTeamCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 99,
          "description": "检查队伍：/checkteam {teamJson}。",
          "order": [
            "teamJson"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "teamJson": {
                "type": "string"
              }
            },
            "required": [
              "teamJson"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [],
      "ack": false,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "unsupported-client-declaration"
    },
    {
      "name": "chkhero",
      "variants": [
        {
          "interface": "ChkHeroCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/troops.ts",
          "line": 81,
          "description": "检查英雄兵种：/chkhero {heroJson}。",
          "order": [
            "heroJson"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "heroJson": {
                "type": "string"
              }
            },
            "required": [
              "heroJson"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 967
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "troops",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "chkkey",
      "variants": [
        {
          "interface": "ChkKeyCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/session.ts",
          "line": 90,
          "description": "检查 key：/chkkey {key}。",
          "order": [
            "key"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "key": {
                "type": "string"
              }
            },
            "required": [
              "key"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 983
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "session",
      "route": "account",
      "availability": "server-dispatched"
    },
    {
      "name": "citybuildlist",
      "variants": [
        {
          "interface": "CityBuildListCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/city.ts",
          "line": 12,
          "description": "城内建筑列表（旧）：/citybuildlist。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 295
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "city",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "citybuildlist2",
      "variants": [
        {
          "interface": "CityBuildList2Cmd",
          "source": "earth2037_client/assets/scripts/net/cmd/build.ts",
          "line": 50,
          "description": "某城建筑列表（map3d 新格式）：/citybuildlist2 {tileId}。",
          "order": [
            "tileId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              }
            },
            "required": [
              "tileId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.cs",
          "line": 216
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "build",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "citybuildqueue",
      "variants": [],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 425
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "server",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "cityhero",
      "variants": [
        {
          "interface": "CityHeroCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/hero.ts",
          "line": 20,
          "description": "城内英雄：/cityhero {tileId}。",
          "order": [
            "tileId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              }
            },
            "required": [
              "tileId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 975
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "hero",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "cityitems",
      "variants": [
        {
          "interface": "CityItemsCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/city.ts",
          "line": 18,
          "description": "城市列表：/cityitems [userId]。不传时查询自己，传入时查询公开玩家资料。",
          "order": [
            "userId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "userId": {
                "type": "number"
              }
            },
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 279
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "city",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "citylist",
      "variants": [
        {
          "interface": "CityListCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/city.ts",
          "line": 9,
          "description": "城市列表：/citylist。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 319
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "city",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "citytprelated",
      "variants": [
        {
          "interface": "CityFortressRelationCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/city.ts",
          "line": 67,
          "description": "要塞辐射范围：/citytprelated {tileId}。",
          "order": [
            "tileId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              }
            },
            "required": [
              "tileId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1060
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "city",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "clientgift",
      "variants": [
        {
          "interface": "ClientGiftCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/items.ts",
          "line": 102,
          "description": "领取礼物（关键命令）：/clientgift {giftJson}。",
          "order": [
            "giftJson"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "giftJson": {
                "type": "string"
              }
            },
            "required": [
              "giftJson"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1148
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "items",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "collectgold",
      "variants": [
        {
          "interface": "CollectGoldCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 201,
          "description": "领金币：/collectgold {tileId}。",
          "order": [
            "tileId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              }
            },
            "required": [
              "tileId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1119
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "collectres",
      "variants": [
        {
          "interface": "CollectResCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 207,
          "description": "领资源：/collectres {cityId}。",
          "order": [
            "cityId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "cityId": {
                "type": "number"
              }
            },
            "required": [
              "cityId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1092
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "collecttodaytimes",
      "variants": [
        {
          "interface": "CollectTodayTimesCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 213,
          "description": "今日领取次数：/collecttodaytimes {cityId}。",
          "order": [
            "cityId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "cityId": {
                "type": "number"
              }
            },
            "required": [
              "cityId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1097
        }
      ],
      "ack": true,
      "readOnly": true,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "combatqueue",
      "variants": [
        {
          "interface": "CombatQueueCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 75,
          "description": "行军队列：/combatqueue。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 501
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "createally",
      "variants": [
        {
          "interface": "CreateAllyCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 130,
          "description": "创建联盟（关键命令）：/createally {name} {countryCode}。",
          "order": [
            "name",
            "countryCode",
            "joinMode"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "countryCode": {
                "type": "string"
              },
              "joinMode": {
                "anyOf": [
                  {
                    "type": "number",
                    "const": 0
                  },
                  {
                    "type": "number",
                    "const": 1
                  }
                ]
              }
            },
            "required": [
              "name",
              "countryCode"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 566
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "createcity",
      "variants": [
        {
          "interface": "CreateCityCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/city.ts",
          "line": 55,
          "description": "创建城市（拓荒）：/createcity {tileId}。",
          "order": [
            "tileId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              }
            },
            "required": [
              "tileId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 367
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "city",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "createuser",
      "variants": [
        {
          "interface": "CreateUserCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/session.ts",
          "line": 39,
          "description": "创建账号：/createuser {name} {md5pwd} {email} {campId} {ip} {language} {platform} {os}\n注意第 4 个参数是 campId（部族/阵营 id，整数），不是 country。参考 iOS RegisterController.submtReg。\n部族 id：1 人族 / 2 旭日 / 3 鹰族（具体以服务端为准）。",
          "order": [
            "name",
            "md5pwd",
            "email",
            "campId",
            "ip",
            "language",
            "platform",
            "os"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "md5pwd": {
                "type": "string"
              },
              "email": {
                "type": "string"
              },
              "campId": {
                "type": "number"
              },
              "ip": {
                "type": "string"
              },
              "language": {
                "type": "string"
              },
              "platform": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "os": {
                "type": "string"
              }
            },
            "required": [
              "name",
              "md5pwd",
              "email",
              "campId",
              "ip",
              "language",
              "platform",
              "os"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 557
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "session",
      "route": "account",
      "availability": "server-dispatched"
    },
    {
      "name": "csbtower",
      "variants": [
        {
          "interface": "CsbTowerCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 111,
          "description": "跨服塔信息：/csbtower {json}。",
          "order": [
            "json"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "json": {
                "type": "string"
              }
            },
            "required": [
              "json"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1168
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "culturecfg",
      "variants": [
        {
          "interface": "CultureCfgCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 276,
          "description": "文化点：/culturecfg。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1136
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "currentuser",
      "variants": [
        {
          "interface": "CurrentUserCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/user.ts",
          "line": 8,
          "description": "当前用户名：/currentuser。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 235
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "user",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "deleteally",
      "variants": [
        {
          "interface": "DeleteAllyCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 144,
          "description": "解散联盟（关键命令）：/deleteally {allyId}。",
          "order": [
            "allyId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "allyId": {
                "type": "number"
              }
            },
            "required": [
              "allyId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 743
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "deleteallymember",
      "variants": [
        {
          "interface": "DeleteAllyMemberCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 157,
          "description": "踢成员（关键命令）：/deleteallymember {allyId} {userId}。",
          "order": [
            "allyId",
            "userId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "allyId": {
                "type": "number"
              },
              "userId": {
                "type": "number"
              }
            },
            "required": [
              "allyId",
              "userId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 698
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "deletediplomatic",
      "variants": [
        {
          "interface": "DeleteDiplomaticCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 93,
          "description": "删除外交（关键命令）：/deletediplomatic {allyId} {otherAllyId}。",
          "order": [
            "allyId",
            "otherAllyId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "allyId": {
                "type": "number"
              },
              "otherAllyId": {
                "type": "number"
              }
            },
            "required": [
              "allyId",
              "otherAllyId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 679
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "deletediplomaticapply",
      "variants": [
        {
          "interface": "DeleteDiplomaticApplyCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 112,
          "description": "删除外交申请（关键命令）：/deletediplomaticapply {applicationId}。",
          "order": [
            "applicationId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "applicationId": {
                "type": "number"
              }
            },
            "required": [
              "applicationId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 671
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "deleteinvitation",
      "variants": [
        {
          "interface": "DeleteInvitationCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 198,
          "description": "拒绝邀请（关键命令）：/deleteinvitation {invitationId}。",
          "order": [
            "invitationId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "invitationId": {
                "type": "number"
              }
            },
            "required": [
              "invitationId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 651
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "deletemessages",
      "variants": [
        {
          "interface": "DeleteMessagesCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/chat.ts",
          "line": 79,
          "description": "删消息（关键命令）：/deletemessages {msgIds}。",
          "order": [
            "msgIds"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "msgIds": {
                "type": "string"
              }
            },
            "required": [
              "msgIds"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 489
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "chat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "deletereports",
      "variants": [
        {
          "interface": "DeleteReportsCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/reports.ts",
          "line": 42,
          "description": "删除战报（关键命令）：/deletereports {reportIds}。reportIds 形如 \"1,2,3\"。",
          "order": [
            "reportIds"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "reportIds": {
                "type": "string"
              }
            },
            "required": [
              "reportIds"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 477
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "reports",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "deletetrade",
      "variants": [
        {
          "interface": "DeleteTradeCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 189,
          "description": "删除交易（关键命令）：/deletetrade {tradeId}。",
          "order": [
            "tradeId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tradeId": {
                "type": "number"
              }
            },
            "required": [
              "tradeId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [],
      "disabledServerSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 714
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "disabled-server-handler"
    },
    {
      "name": "delfav",
      "variants": [
        {
          "interface": "DelFavCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 302,
          "description": "删收藏：/delfav {tileId}。",
          "order": [
            "tileId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              }
            },
            "required": [
              "tileId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 307
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "delmsgbox",
      "variants": [
        {
          "interface": "DelMsgBoxCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/chat.ts",
          "line": 55,
          "description": "删邮箱（关键命令）：/delmsgbox {boxId}。",
          "order": [
            "boxId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "boxId": {
                "type": "number"
              }
            },
            "required": [
              "boxId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 839
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "chat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "disabledcamp",
      "variants": [
        {
          "interface": "DisabledCampCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/troops.ts",
          "line": 66,
          "description": "伤兵营：/disabledcamp {tileId}。",
          "order": [
            "tileId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              }
            },
            "required": [
              "tileId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1072
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "troops",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "distributeresources",
      "variants": [
        {
          "interface": "DistributeResourcesCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 258,
          "description": "分配资源：/distributeresources {json}。",
          "order": [
            "json"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "json": {
                "type": "string"
              }
            },
            "required": [
              "json"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 327
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "donatealliancetech",
      "variants": [
        {
          "interface": "DonateAllianceTechCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 16,
          "description": "",
          "order": [
            "allianceId",
            "tileId",
            "techId",
            "expectedLevel",
            "expectedVersion",
            "operationId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "allianceId": {
                "type": "number"
              },
              "tileId": {
                "type": "number"
              },
              "techId": {
                "type": "number"
              },
              "expectedLevel": {
                "type": "number"
              },
              "expectedVersion": {
                "type": "string"
              },
              "operationId": {
                "type": "string"
              }
            },
            "required": [
              "allianceId",
              "tileId",
              "techId",
              "expectedLevel",
              "expectedVersion",
              "operationId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.AllianceHelp.cs",
          "line": 17
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "downgradebuild",
      "variants": [
        {
          "interface": "DowngradeBuildCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/build.ts",
          "line": 69,
          "description": "降级现有建筑（v2）：目标等级、50% 成本/时长均由服务端决定。",
          "order": [
            "uid",
            "expectedLevel"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "uid": {
                "type": "number"
              },
              "expectedLevel": {
                "type": "number"
              }
            },
            "required": [
              "uid",
              "expectedLevel"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.cs",
          "line": 232
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "build",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "dropally",
      "variants": [
        {
          "interface": "DropAllyCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 150,
          "description": "退出联盟（关键命令）：/dropally {allyId} {userId}。",
          "order": [
            "allyId",
            "userId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "allyId": {
                "type": "number"
              },
              "userId": {
                "type": "number"
              }
            },
            "required": [
              "allyId",
              "userId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 783
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "duebuildqueue",
      "variants": [
        {
          "interface": "DueBuildQueueCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/build.ts",
          "line": 119,
          "description": "到期建筑队列：/duebuildqueue {json}。",
          "order": [
            "json"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "json": {
                "type": "string"
              }
            },
            "required": [
              "json"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 416
        },
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.cs",
          "line": 240
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "build",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "endactivity",
      "variants": [
        {
          "interface": "RelicActivityCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/relicActivity.ts",
          "line": 4,
          "description": "",
          "order": [
            "payload"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "payload": {
                "type": "string"
              }
            },
            "required": [
              "payload"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.Activities.cs",
          "line": 15
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "relicActivity",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "ensurecitydefense",
      "variants": [
        {
          "interface": "EnsureCityDefenseCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/build.ts",
          "line": 56,
          "description": "幂等初始化城市城防；UID、种族墙型和 0 级状态全部由服务端决定。",
          "order": [
            "tileId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              }
            },
            "required": [
              "tileId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.cs",
          "line": 220
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "build",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "everydayreward",
      "variants": [
        {
          "interface": "EverydayRewardCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/items.ts",
          "line": 114,
          "description": "每日奖励：/everydayreward {type}。",
          "order": [
            "type"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "type": {
                "type": "number"
              }
            },
            "required": [
              "type"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1015
        },
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.Progression.cs",
          "line": 10
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "items",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "favplace",
      "variants": [
        {
          "interface": "FavPlaceCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 293,
          "description": "收藏点：/favplace {tileId}。",
          "order": [
            "tileId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              }
            },
            "required": [
              "tileId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 315
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "favplaces",
      "variants": [
        {
          "interface": "FavPlacesCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 299,
          "description": "收藏列表：/favplaces。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 311
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "finishbuildingfree",
      "variants": [
        {
          "interface": "FinishBuildingFreeCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/items.ts",
          "line": 37,
          "description": "Free completion is bound to one upgrade queue and its current server version.",
          "order": [
            "tileId",
            "queueId",
            "buildingUid",
            "expectedVersion",
            "operationId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              },
              "queueId": {
                "type": "number"
              },
              "buildingUid": {
                "type": "string"
              },
              "expectedVersion": {
                "type": "string"
              },
              "operationId": {
                "type": "string"
              }
            },
            "required": [
              "tileId",
              "queueId",
              "buildingUid",
              "expectedVersion",
              "operationId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.Speedup.cs",
          "line": 12
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "items",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "firehero",
      "variants": [
        {
          "interface": "FireHeroCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/hero.ts",
          "line": 63,
          "description": "流放英雄（关键命令）：/firehero {heroId}。",
          "order": [
            "heroId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "heroId": {
                "type": "number"
              }
            },
            "required": [
              "heroId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 959
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "hero",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "flipdailycard",
      "variants": [
        {
          "interface": "FlipDailyCardCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/items.ts",
          "line": 123,
          "description": "Versioned server-day board; all fields are positional in this declaration order.",
          "order": [
            "tileId",
            "day",
            "boardToken",
            "index",
            "allowOverflow",
            "version"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              },
              "day": {
                "type": "string"
              },
              "boardToken": {
                "type": "string"
              },
              "index": {
                "type": "number"
              },
              "allowOverflow": {
                "anyOf": [
                  {
                    "type": "number",
                    "const": 0
                  },
                  {
                    "type": "number",
                    "const": 1
                  }
                ]
              },
              "version": {
                "type": "number",
                "const": 2
              }
            },
            "required": [
              "tileId",
              "day",
              "boardToken",
              "index",
              "allowOverflow",
              "version"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.Progression.cs",
          "line": 10
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "items",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "freewar",
      "variants": [
        {
          "interface": "FreeWarCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 281,
          "description": "免战（关键命令）：/freewar {type} {start} {hours} [userGoodsId]；商城固定 6 1 24（120金币）。",
          "order": [
            "json"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "json": {
                "type": "string"
              }
            },
            "required": [
              "json"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1101
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "g_setgoodspos",
      "variants": [
        {
          "interface": "GSetGoodsPosCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/items.ts",
          "line": 59,
          "description": "设置道具位置（关键命令）：/g_setgoodspos {posJson}。",
          "order": [
            "posJson"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "posJson": {
                "type": "string"
              }
            },
            "required": [
              "posJson"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 919
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "items",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getaccount",
      "variants": [
        {
          "interface": "GetAccountCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/user.ts",
          "line": 23,
          "description": "账号信息：/getaccount。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 578
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "user",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getactivityinfo",
      "variants": [
        {
          "interface": "RelicActivityCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/relicActivity.ts",
          "line": 4,
          "description": "",
          "order": [
            "payload"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "payload": {
                "type": "string"
              }
            },
            "required": [
              "payload"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.Activities.cs",
          "line": 15
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "relicActivity",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getactivityinstance",
      "variants": [
        {
          "interface": "RelicActivityCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/relicActivity.ts",
          "line": 4,
          "description": "",
          "order": [
            "payload"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "payload": {
                "type": "string"
              }
            },
            "required": [
              "payload"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.Activities.cs",
          "line": 15
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "relicActivity",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getactivityoperation",
      "variants": [
        {
          "interface": "RelicActivityCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/relicActivity.ts",
          "line": 4,
          "description": "",
          "order": [
            "payload"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "payload": {
                "type": "string"
              }
            },
            "required": [
              "payload"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.Activities.cs",
          "line": 15
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "relicActivity",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getaddition",
      "variants": [
        {
          "interface": "GetAdditionCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/user.ts",
          "line": 26,
          "description": "加成/buff 汇总：/getaddition。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 582
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "user",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getalldiplomaticapplies",
      "variants": [
        {
          "interface": "GetAllDiplomaticAppliesCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 100,
          "description": "外交申请列表：/getalldiplomaticapplies {allyId}。",
          "order": [
            "allyId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "allyId": {
                "type": "number"
              }
            },
            "required": [
              "allyId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 663
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getallianceapplications",
      "variants": [
        {
          "interface": "GetAllianceApplicationsCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 11,
          "description": "",
          "order": [
            "index",
            "size"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "index": {
                "type": "number"
              },
              "size": {
                "type": "number"
              }
            },
            "required": [
              "index",
              "size"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.AllianceEntry.cs",
          "line": 15
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getallianceentry",
      "variants": [
        {
          "interface": "GetAllianceEntryCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 8,
          "description": "入盟规则：0 需要审核（默认），1 自动加入。",
          "order": [
            "allianceId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "allianceId": {
                "type": "number"
              }
            },
            "required": [
              "allianceId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.AllianceEntry.cs",
          "line": 14
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getalliancehelps",
      "variants": [
        {
          "interface": "GetAllianceHelpsCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 29,
          "description": "联盟求助列表；tileId=0 只取联盟列表，正数同时取本城可求助任务。",
          "order": [
            "tileId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              }
            },
            "required": [
              "tileId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.AllianceHelp.cs",
          "line": 15
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getallianceshop",
      "variants": [
        {
          "interface": "GetAllianceShopCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 22,
          "description": "",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.AllianceHelp.cs",
          "line": 16
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getallianceshopoperation",
      "variants": [
        {
          "interface": "GetAllianceShopOperationCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 26,
          "description": "",
          "order": [
            "operationId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "operationId": {
                "type": "string"
              }
            },
            "required": [
              "operationId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.AllianceHelp.cs",
          "line": 16
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getalliancetechoperation",
      "variants": [
        {
          "interface": "GetAllianceTechOperationCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 20,
          "description": "",
          "order": [
            "operationId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "operationId": {
                "type": "string"
              }
            },
            "required": [
              "operationId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.AllianceHelp.cs",
          "line": 17
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getalliancetechs",
      "variants": [
        {
          "interface": "GetAllianceTechsCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 15,
          "description": "",
          "order": [
            "tileId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              }
            },
            "required": [
              "tileId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.AllianceHelp.cs",
          "line": 17
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getally",
      "variants": [
        {
          "interface": "GetAllyCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 49,
          "description": "联盟信息：/getally {allyId}。",
          "order": [
            "allyId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "allyId": {
                "type": "number"
              }
            },
            "required": [
              "allyId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 623
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getallychat",
      "variants": [
        {
          "interface": "GetAllyChatCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 212,
          "description": "联盟聊天记录：/getallychat {lastId}。",
          "order": [
            "lastId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "lastId": {
                "type": "number"
              }
            },
            "required": [
              "lastId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 823
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getallyevents",
      "variants": [
        {
          "interface": "GetAllyEventsCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 204,
          "description": "联盟事件：/getallyevents {allyId} {index} {size}。",
          "order": [
            "allyId",
            "index",
            "size"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "allyId": {
                "type": "number"
              },
              "index": {
                "type": "number"
              },
              "size": {
                "type": "number"
              }
            },
            "required": [
              "allyId",
              "index",
              "size"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 685
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getallymember",
      "variants": [
        {
          "interface": "GetAllyMemberCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 61,
          "description": "单成员：/getallymember {allyId} {userId}。",
          "order": [
            "allyId",
            "userId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "allyId": {
                "type": "number"
              },
              "userId": {
                "type": "number"
              }
            },
            "required": [
              "allyId",
              "userId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 631
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getallymembers",
      "variants": [
        {
          "interface": "GetAllyMembersCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 55,
          "description": "联盟成员：/getallymembers {allyId}。",
          "order": [
            "allyId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "allyId": {
                "type": "number"
              }
            },
            "required": [
              "allyId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 627
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getallypermission",
      "variants": [
        {
          "interface": "GetAllyPermissionCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 68,
          "description": "联盟权限：/getallypermission {allyId} {userId}。",
          "order": [
            "allyId",
            "userId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "allyId": {
                "type": "number"
              },
              "userId": {
                "type": "number"
              }
            },
            "required": [
              "allyId",
              "userId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 683
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getallyrank",
      "variants": [
        {
          "interface": "GetAllyRankCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 224,
          "description": "联盟排名：/getallyrank {searchName} {index} {size}。searchName=\"*\" 表示全部。",
          "order": [
            "searchName",
            "index",
            "size"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "searchName": {
                "type": "string"
              },
              "index": {
                "type": "number"
              },
              "size": {
                "type": "number"
              }
            },
            "required": [
              "searchName",
              "index",
              "size"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 449
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getallyreports",
      "variants": [
        {
          "interface": "GetAllyReportsCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/reports.ts",
          "line": 33,
          "description": "联盟战报：/getallyreports {allyId} {type} {index} {size}。",
          "order": [
            "allyId",
            "type",
            "index",
            "size"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "allyId": {
                "type": "number"
              },
              "type": {
                "type": "number"
              },
              "index": {
                "type": "number"
              },
              "size": {
                "type": "number"
              }
            },
            "required": [
              "allyId",
              "type",
              "index",
              "size"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 694
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "reports",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getallyroles",
      "variants": [
        {
          "interface": "GetAllyRolesCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 81,
          "description": "联盟角色：/getallyroles {allyId}。",
          "order": [
            "allyId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "allyId": {
                "type": "number"
              }
            },
            "required": [
              "allyId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 686
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getattackrank",
      "variants": [
        {
          "interface": "GetAttackRankCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/ranking.ts",
          "line": 17,
          "description": "攻击排名：/getattackrank {searchName} {index} {size}。",
          "order": [
            "searchName",
            "index",
            "size"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "searchName": {
                "type": "string"
              },
              "index": {
                "type": "number"
              },
              "size": {
                "type": "number"
              }
            },
            "required": [
              "searchName",
              "index",
              "size"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 453
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "ranking",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getbuildcost",
      "variants": [
        {
          "interface": "GetBuildCostCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/build.ts",
          "line": 90,
          "description": "单建筑成本：/getbuildcost {buildId} {level}。",
          "order": [
            "buildId",
            "level"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "buildId": {
                "type": "number"
              },
              "level": {
                "type": "number"
              }
            },
            "required": [
              "buildId",
              "level"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 400
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "build",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getbuildcosts",
      "variants": [
        {
          "interface": "GetBuildCostsCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/build.ts",
          "line": 97,
          "description": "所有建筑成本：/getbuildcosts。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 404
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "build",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getbuildcosts2",
      "variants": [],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 408
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "server",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getbuildqueue",
      "variants": [
        {
          "interface": "ServerContract.GetBuildQueue",
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 5031,
          "description": "Read ONE build queue by queueId, not a city ID. Use getuserbuildqueue for all queues.",
          "order": [
            "queueId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "queueId": {
                "type": "integer",
                "minimum": 1
              }
            },
            "required": [
              "queueId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 412
        }
      ],
      "clientVariants": [
        {
          "interface": "GetBuildQueueCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/build.ts",
          "line": 103,
          "description": "建筑队列（旧别名）：/getbuildqueue。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "Game_Session.cs",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getbuyingreward",
      "variants": [
        {
          "interface": "GetBuyingRewardCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/items.ts",
          "line": 134,
          "description": "金币抽奖奖励：/getbuyingreward。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [],
      "ack": false,
      "readOnly": false,
      "category": "items",
      "route": "game",
      "availability": "unsupported-client-declaration"
    },
    {
      "name": "getcapacities",
      "variants": [
        {
          "interface": "GetCapacitiesCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/build.ts",
          "line": 169,
          "description": "容量配置：/getcapacities。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 525
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "build",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getcitiescultureout",
      "variants": [
        {
          "interface": "GetCitiesCultureOutCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 273,
          "description": "城市文化产出（旧）：/getcitiescultureout。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 388
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getcitycultureout",
      "variants": [
        {
          "interface": "GetCityCultureOutCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 267,
          "description": "城市文化产出：/getcitycultureout {cityId}。",
          "order": [
            "cityId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "cityId": {
                "type": "number"
              }
            },
            "required": [
              "cityId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 384
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getcityinfo",
      "variants": [
        {
          "interface": "ServerContract.GetCityInfo",
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 5500,
          "description": "Read city details by tileId.",
          "order": [
            "tileId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "integer",
                "minimum": 1
              }
            },
            "required": [
              "tileId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 323
        }
      ],
      "clientVariants": [
        {
          "interface": "GetCityInfoCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/city.ts",
          "line": 15,
          "description": "城市信息（旧）：/getcityinfo。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "Game_Session.cs",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getcityrank",
      "variants": [
        {
          "interface": "GetCityRankCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/city.ts",
          "line": 79,
          "description": "城市排名：/getcityrank {searchName} {index} {size}。searchName=\"*\" 表示全部。",
          "order": [
            "searchName",
            "index",
            "size"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "searchName": {
                "type": "string"
              },
              "index": {
                "type": "number"
              },
              "size": {
                "type": "number"
              }
            },
            "required": [
              "searchName",
              "index",
              "size"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 445
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "city",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getcitytradequeues",
      "variants": [
        {
          "interface": "GetCityTradeQueuesCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 162,
          "description": "城市交易队列：/getcitytradequeues {tileId}。",
          "order": [
            "tileId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              }
            },
            "required": [
              "tileId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 702
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getcitytrades",
      "variants": [
        {
          "interface": "GetCityTradesCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 168,
          "description": "城市交易列表：/getcitytrades {tileId}。",
          "order": [
            "tileId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              }
            },
            "required": [
              "tileId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [],
      "disabledServerSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 723
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "combat",
      "route": "game",
      "availability": "disabled-server-handler"
    },
    {
      "name": "getcitytroops",
      "variants": [
        {
          "interface": "GetCityTroopsCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/troops.ts",
          "line": 8,
          "description": "城内兵力：/getcitytroops。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 343
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "troops",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getconscriptionqueue",
      "variants": [
        {
          "interface": "GetConscriptionQueueCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/troops.ts",
          "line": 11,
          "description": "造兵队列：/getconscriptionqueue。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 509
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "troops",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getdailygift",
      "variants": [
        {
          "interface": "GetDailyGiftCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/items.ts",
          "line": 120,
          "description": "领每日礼包：/getdailygift。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1020
        },
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.Progression.cs",
          "line": 10
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "items",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getdecorations",
      "variants": [
        {
          "interface": "GetDecorationsCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/build.ts",
          "line": 172,
          "description": "",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.Decorations.cs",
          "line": 13
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "build",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getdefaultbuild",
      "variants": [
        {
          "interface": "GetDefaultBuildCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/build.ts",
          "line": 131,
          "description": "默认建筑：/getdefaultbuild {tileId} {pointId}。",
          "order": [
            "tileId",
            "pointId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              },
              "pointId": {
                "type": "number"
              }
            },
            "required": [
              "tileId",
              "pointId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 429
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "build",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getdefendrank",
      "variants": [
        {
          "interface": "GetDefendRankCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/ranking.ts",
          "line": 25,
          "description": "防守排名：/getdefendrank {searchName} {index} {size}。",
          "order": [
            "searchName",
            "index",
            "size"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "searchName": {
                "type": "string"
              },
              "index": {
                "type": "number"
              },
              "size": {
                "type": "number"
              }
            },
            "required": [
              "searchName",
              "index",
              "size"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 457
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "ranking",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getdiplomatics",
      "variants": [
        {
          "interface": "GetDiplomaticsCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 87,
          "description": "外交关系：/getdiplomatics {allyId}。",
          "order": [
            "allyId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "allyId": {
                "type": "number"
              }
            },
            "required": [
              "allyId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 675
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getembranchments",
      "variants": [
        {
          "interface": "GetEmbranchmentsCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/city.ts",
          "line": 61,
          "description": "从指定城市建立的分城：/getembranchments {tileId}。",
          "order": [
            "tileId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              }
            },
            "required": [
              "tileId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 372
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "city",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getguideprogress",
      "variants": [
        {
          "interface": "GetGuideProgressCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/user.ts",
          "line": 85,
          "description": "",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.Guide.cs",
          "line": 10
        },
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.cs",
          "line": 308
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "user",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getherocount",
      "variants": [
        {
          "interface": "GetHeroCountCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/hero.ts",
          "line": 26,
          "description": "英雄数量：/getherocount。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 376
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "hero",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getinvites",
      "variants": [
        {
          "interface": "GetInvitesCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 178,
          "description": "邀请列表：/getinvites {userId} {status}。status=1 等待确认。",
          "order": [
            "userId",
            "status"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "userId": {
                "type": "number"
              },
              "status": {
                "type": "number"
              }
            },
            "required": [
              "userId",
              "status"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 647
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getinviteusers",
      "variants": [
        {
          "interface": "GetInviteUsersCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 185,
          "description": "联盟发出的邀请：/getinviteusers {allyId} {status}。",
          "order": [
            "allyId",
            "status"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "allyId": {
                "type": "number"
              },
              "status": {
                "type": "number"
              }
            },
            "required": [
              "allyId",
              "status"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 643
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getkey",
      "variants": [
        {
          "interface": "GetKeyCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/session.ts",
          "line": 85,
          "description": "请求会话 key：/getkey（收到 /svr mask 后发）。协议层一般自动处理。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 979
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "session",
      "route": "account",
      "availability": "server-dispatched"
    },
    {
      "name": "getking",
      "variants": [
        {
          "interface": "GetKingCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/city.ts",
          "line": 76,
          "description": "国王/总督信息：/getking。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1064
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "city",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getlastconscription",
      "variants": [
        {
          "interface": "GetLastConscriptionCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/troops.ts",
          "line": 20,
          "description": "上次造兵完成时间：/getlastconscription。",
          "order": [
            "tileId",
            "armType"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              },
              "armType": {
                "type": "number"
              }
            },
            "required": [
              "tileId",
              "armType"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 351
        }
      ],
      "ack": true,
      "readOnly": true,
      "category": "troops",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getmerchant",
      "variants": [
        {
          "interface": "GetMerchantCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 237,
          "description": "商人：/getmerchant {tileId}。",
          "order": [
            "tileId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              }
            },
            "required": [
              "tileId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 533
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getmessage",
      "variants": [
        {
          "interface": "GetMessageCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/chat.ts",
          "line": 61,
          "description": "单条消息：/getmessage {msgId}。",
          "order": [
            "msgId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "msgId": {
                "type": "number"
              }
            },
            "required": [
              "msgId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 485
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "chat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getmessages",
      "variants": [
        {
          "interface": "GetMessagesCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/chat.ts",
          "line": 67,
          "description": "多条消息：/getmessages {boxId}。",
          "order": [
            "boxId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "boxId": {
                "type": "number"
              }
            },
            "required": [
              "boxId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 481
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "chat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getmilitarysciences",
      "variants": [
        {
          "interface": "GetMilitarySciencesCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/troops.ts",
          "line": 57,
          "description": "军事科技汇总：/getmilitarysciences。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 355
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "troops",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getmsgboxid",
      "variants": [
        {
          "interface": "GetMsgBoxIdCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/chat.ts",
          "line": 49,
          "description": "取邮箱 id：/getmsgboxid {targetId}。",
          "order": [
            "targetId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "targetId": {
                "type": "number"
              }
            },
            "required": [
              "targetId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 835
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "chat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getnewmsg",
      "variants": [
        {
          "interface": "GetNewMsgCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/chat.ts",
          "line": 73,
          "description": "新消息：/getnewmsg。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 545
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "chat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getnpccity",
      "variants": [
        {
          "interface": "GetNpcCityCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 61,
          "description": "NPC 城：/getnpccity {tileId}。",
          "order": [
            "tileId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              }
            },
            "required": [
              "tileId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 787
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getnpctroops",
      "variants": [
        {
          "interface": "GetNpcTroopsCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 67,
          "description": "NPC 兵：/getnpctroops {tileId}。",
          "order": [
            "tileId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              }
            },
            "required": [
              "tileId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 883
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getoutput",
      "variants": [
        {
          "interface": "GetOutputCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 264,
          "description": "产出：/getoutput。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 505
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getoutwar",
      "variants": [
        {
          "interface": "GetOutWarCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 287,
          "description": "免战查询：/getoutwar。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [],
      "ack": false,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "unsupported-client-declaration"
    },
    {
      "name": "getpioneers",
      "variants": [
        {
          "interface": "GetPioneersCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/city.ts",
          "line": 64,
          "description": "指定城市驻留的本城先锋数量：/getpioneers {tileId}。",
          "order": [
            "tileId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              }
            },
            "required": [
              "tileId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 347
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "city",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getqueuebyop",
      "variants": [
        {
          "interface": "GetQueueByOpCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 81,
          "description": "按客户端出兵意图键查队列（对账用）：/getqueuebyop {clientOpId}。\n服务端不限 Completed，未找到时 data=null。仅限本人队列。",
          "order": [
            "clientOpId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "clientOpId": {
                "type": "string"
              }
            },
            "required": [
              "clientOpId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.cs",
          "line": 252
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getreport",
      "variants": [
        {
          "interface": "GetReportCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/reports.ts",
          "line": 27,
          "description": "单条战报：/getreport {reportId}。",
          "order": [
            "reportId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "reportId": {
                "type": "number"
              }
            },
            "required": [
              "reportId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 469
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "reports",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getreports",
      "variants": [
        {
          "interface": "GetReportsCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/reports.ts",
          "line": 19,
          "description": "战报列表（旧）：/getreports {type} {index} {size}。",
          "order": [
            "type",
            "index",
            "size"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "type": {
                "type": "number"
              },
              "index": {
                "type": "number"
              },
              "size": {
                "type": "number"
              }
            },
            "required": [
              "type",
              "index",
              "size"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 461
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "reports",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getreports2",
      "variants": [
        {
          "interface": "GetReports2Cmd",
          "source": "earth2037_client/assets/scripts/net/cmd/reports.ts",
          "line": 11,
          "description": "战报列表：/getreports2 {type} {index} {size}\ntype 1=运输 2=攻击 3=支援 4=侦查。",
          "order": [
            "type",
            "index",
            "size"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "type": {
                "type": "number"
              },
              "index": {
                "type": "number"
              },
              "size": {
                "type": "number"
              }
            },
            "required": [
              "type",
              "index",
              "size"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 465
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "reports",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getresource",
      "variants": [
        {
          "interface": "GetResourceCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 231,
          "description": "城市资源：/getresource {cityId}。",
          "order": [
            "cityId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "cityId": {
                "type": "number"
              }
            },
            "required": [
              "cityId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 574
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getresourcepackpreview",
      "variants": [
        {
          "interface": "GetResourcePackPreviewCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/items.ts",
          "line": 8,
          "description": "Read-only resource pack capacity preview. Never consumes inventory or settles stored resources.",
          "order": [
            "tileId",
            "userGoodsId",
            "quantity"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              },
              "userGoodsId": {
                "type": "number"
              },
              "quantity": {
                "type": "number"
              }
            },
            "required": [
              "tileId",
              "userGoodsId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.ResourcePacks.cs",
          "line": 12
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "items",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getserveraccounts",
      "variants": [
        {
          "interface": "GetServerAccountsCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/user.ts",
          "line": 80,
          "description": "多服账号列表：/getserveraccounts（Android 扩展）。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1201
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "user",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getspeedupoperation",
      "variants": [
        {
          "interface": "GetSpeedupOperationCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/items.ts",
          "line": 35,
          "description": "",
          "order": [
            "operationId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "operationId": {
                "type": "string"
              }
            },
            "required": [
              "operationId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.Speedup.cs",
          "line": 12
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "items",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getspeedupoptions",
      "variants": [
        {
          "interface": "GetSpeedupOptionsCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/items.ts",
          "line": 11,
          "description": "Read-only, server-authoritative inventory and active queues in this city.",
          "order": [
            "tileId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              }
            },
            "required": [
              "tileId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.Speedup.cs",
          "line": 12
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "items",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "gettask",
      "variants": [
        {
          "interface": "GetTaskCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/tasks.ts",
          "line": 18,
          "description": "单个任务：/gettask {taskId}。",
          "order": [
            "taskId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "taskId": {
                "type": "number"
              }
            },
            "required": [
              "taskId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 799
        },
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.Progression.cs",
          "line": 10
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "tasks",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "gettasklist",
      "variants": [
        {
          "interface": "GetTaskListCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/tasks.ts",
          "line": 8,
          "description": "Paged: /gettasklist {type} {count<=10} {state} {cursor} {version=1}; old two arguments remain valid.",
          "order": [
            "type",
            "count",
            "state",
            "cursor",
            "version"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "type": {
                "type": "number"
              },
              "count": {
                "type": "number"
              },
              "state": {
                "anyOf": [
                  {
                    "type": "string",
                    "const": "active"
                  },
                  {
                    "type": "string",
                    "const": "ready"
                  },
                  {
                    "type": "string",
                    "const": "claimed"
                  }
                ]
              },
              "cursor": {
                "type": "string"
              },
              "version": {
                "type": "number",
                "const": 1
              }
            },
            "required": [
              "type",
              "count"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 791
        },
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.Progression.cs",
          "line": 10
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "tasks",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "gettopbytime",
      "variants": [
        {
          "interface": "GetTopByTimeCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/ranking.ts",
          "line": 37,
          "description": "分时排名：/gettopbytime {name} {page} {size} {searchType} {timeType}\nsearchType 1=攻 2=守 3=发展 4=盟攻 5=盟守 6=盟发展\ntimeType 1=日 2=周 3=月；4=总榜（新版服务端扩展，联盟总攻/总防使用）。",
          "order": [
            "name",
            "page",
            "size",
            "searchType",
            "timeType"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "page": {
                "type": "number"
              },
              "size": {
                "type": "number"
              },
              "searchType": {
                "type": "number"
              },
              "timeType": {
                "type": "number"
              }
            },
            "required": [
              "name",
              "page",
              "size",
              "searchType",
              "timeType"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1011
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "ranking",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "gettrade",
      "variants": [
        {
          "interface": "GetTradeCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 174,
          "description": "单笔交易：/gettrade {tradeId}。",
          "order": [
            "tradeId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tradeId": {
                "type": "number"
              }
            },
            "required": [
              "tradeId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [],
      "disabledServerSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 706
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "combat",
      "route": "game",
      "availability": "disabled-server-handler"
    },
    {
      "name": "gettrades",
      "variants": [
        {
          "interface": "GetTradesCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 180,
          "description": "交易列表：/gettrades。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [],
      "disabledServerSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 719
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "combat",
      "route": "game",
      "availability": "disabled-server-handler"
    },
    {
      "name": "gettroopsresearchcost",
      "variants": [
        {
          "interface": "GetTroopsResearchCostCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/troops.ts",
          "line": 45,
          "description": "兵种研究消耗：/gettroopsresearchcost。",
          "order": [
            "tileId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              }
            },
            "required": [
              "tileId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 529
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "troops",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "gettroopssciencequeue",
      "variants": [
        {
          "interface": "GetTroopsScienceQueueCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/troops.ts",
          "line": 36,
          "description": "兵种科技队列（旧别名）：/gettroopssciencequeue。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 359
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "troops",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getunreadcounts",
      "variants": [
        {
          "interface": "GetUnreadCountsCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/chat.ts",
          "line": 76,
          "description": "Exact, unpaged counts: {privateUnread, reportUnread, reportUnreadByType:[type1,type2,type3,type4]}; nm remains two existence flags.",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 735
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "chat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getuserbuildqueue",
      "variants": [
        {
          "interface": "GetUserBuildQueueCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/build.ts",
          "line": 100,
          "description": "建筑队列：/getuserbuildqueue。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 396
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "build",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getuserrank",
      "variants": [
        {
          "interface": "GetUserRankCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/ranking.ts",
          "line": 9,
          "description": "玩家排名：/getuserrank {searchName} {index} {size}。searchName 空串=不分名。",
          "order": [
            "searchName",
            "index",
            "size"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "searchName": {
                "type": "string"
              },
              "index": {
                "type": "number"
              },
              "size": {
                "type": "number"
              }
            },
            "required": [
              "searchName",
              "index",
              "size"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 441
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "ranking",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getwallbouns",
      "variants": [
        {
          "interface": "GetWallBounsCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/build.ts",
          "line": 145,
          "description": "城墙奖励：/getwallbouns {tileId}。",
          "order": [
            "tileId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              }
            },
            "required": [
              "tileId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 380
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "build",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getwmsgs",
      "variants": [
        {
          "interface": "GetWMsgsCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/chat.ts",
          "line": 30,
          "description": "世界消息列表：/getwmsgs {lastId}。",
          "order": [
            "lastId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "lastId": {
                "type": "number"
              }
            },
            "required": [
              "lastId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 855
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "chat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "getworldterrain",
      "variants": [
        {
          "interface": "NewProtocolCmd.inline",
          "source": "earth2037_client/assets/scripts/net/commands.ts",
          "line": 239,
          "description": "",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.cs",
          "line": 204
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "commands",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "gfan_pay",
      "variants": [
        {
          "interface": "GfanPayCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/pay.ts",
          "line": 22,
          "description": "gfan 支付（关键命令）：/gfan_pay {payJson}。",
          "order": [
            "payJson"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "payJson": {
                "type": "string"
              }
            },
            "required": [
              "payJson"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 751
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "pay",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "goodslist",
      "variants": [
        {
          "interface": "GoodsListCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/items.ts",
          "line": 47,
          "description": "道具列表：/goodslist {userId}。",
          "order": [
            "userId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "userId": {
                "type": "number"
              }
            },
            "required": [
              "userId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 927
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "items",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "googlebilling",
      "variants": [
        {
          "interface": "GoogleBillingCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/pay.ts",
          "line": 16,
          "description": "Google 支付（关键命令）：/googlebilling {billingJson}。",
          "order": [
            "billingJson"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "billingJson": {
                "type": "string"
              }
            },
            "required": [
              "billingJson"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 763
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "pay",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "gotosvr",
      "variants": [
        {
          "interface": "GotoSvrCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/city.ts",
          "line": 106,
          "description": "跳转服务器：/gotosvr {svrJson}。",
          "order": [
            "svrJson"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "svrJson": {
                "type": "string"
              }
            },
            "required": [
              "svrJson"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [],
      "ack": true,
      "readOnly": false,
      "category": "city",
      "route": "game",
      "availability": "unsupported-client-declaration"
    },
    {
      "name": "halloffame",
      "variants": [
        {
          "interface": "HallOfFameCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/ranking.ts",
          "line": 50,
          "description": "名人堂：/halloffame {type} {lastId}\ntype 1=日榜 2=周榜 3=名人堂。",
          "order": [
            "type",
            "lastId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "type": {
                "type": "number"
              },
              "lastId": {
                "type": "number"
              }
            },
            "required": [
              "type",
              "lastId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1024
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "ranking",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "hasreports",
      "variants": [
        {
          "interface": "HasReportsCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/chat.ts",
          "line": 85,
          "description": "是否有战报：/hasreports。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 473
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "chat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "hello",
      "variants": [],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.cs",
          "line": 162
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "server",
      "route": "transport",
      "availability": "server-dispatched"
    },
    {
      "name": "helpalliance",
      "variants": [
        {
          "interface": "HelpAllianceCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 43,
          "description": "每位盟友对一个请求只能帮助一次；由服务器结算时间。",
          "order": [
            "requestId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "requestId": {
                "type": "number"
              }
            },
            "required": [
              "requestId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.AllianceHelp.cs",
          "line": 15
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "herodispoint",
      "variants": [
        {
          "interface": "HeroDisPointCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/hero.ts",
          "line": 104,
          "description": "英雄加属性点（关键命令）：/herodispoint {heroId} {attack} {attBonus} {defBonus} {research}。\n传分配后的四项终值；总和 ≤ level*4，每项在当前值与 maxCfg 上限之间。",
          "order": [
            "heroId",
            "attack",
            "attBonus",
            "defBonus",
            "research"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "heroId": {
                "type": "number"
              },
              "attack": {
                "type": "number"
              },
              "attBonus": {
                "type": "number"
              },
              "defBonus": {
                "type": "number"
              },
              "research": {
                "type": "number"
              }
            },
            "required": [
              "heroId",
              "attack",
              "attBonus",
              "defBonus",
              "research"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 955
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "hero",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "heroinventory",
      "variants": [
        {
          "interface": "HeroInventoryCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/hero.ts",
          "line": 37,
          "description": "英雄道具操作（关键命令）：\n- 使用：{userGoodsId} 1 {cityId}；资源包追加 {operationId} 幂等 UUID，再可选追加 {allowOverflow}。\n  allowOverflow=1 仅在容量预览后确认丢弃溢出时使用，0/省略为容量不足不扣道具。\n- 装备：{userGoodsId} 2 {heroId} {action} {position}\n- 名将卡／碎片：{userGoodsId} 6 {cityId} {operationId}，持久幂等并原子扣除／发放。\n- 学技能：{userGoodsId} 5 {heroId} {currentSkillCount}\n服务端实现以 Game_Service/_game/Action.cs::HeroInventory 为准。",
          "order": [
            "userGoodsId",
            "opType",
            "targetId",
            "actionOrCount",
            "position",
            "operationId",
            "allowOverflow",
            "quantity"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "userGoodsId": {
                "type": "number"
              },
              "opType": {
                "type": "number"
              },
              "targetId": {
                "type": "number"
              },
              "actionOrCount": {
                "type": "number"
              },
              "position": {
                "type": "number"
              },
              "operationId": {
                "type": "string"
              },
              "allowOverflow": {
                "anyOf": [
                  {
                    "type": "number",
                    "const": 0
                  },
                  {
                    "type": "number",
                    "const": 1
                  }
                ]
              },
              "quantity": {
                "type": "number"
              }
            },
            "required": [
              "userGoodsId",
              "opType",
              "targetId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 923
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "hero",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "herosincoll",
      "variants": [
        {
          "interface": "HerosInCollCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/hero.ts",
          "line": 90,
          "description": "学院可招募英雄：/herosincoll {tileId} {refresh}，refresh=1 消耗 3 金币。",
          "order": [
            "tileId",
            "refresh"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              },
              "refresh": {
                "anyOf": [
                  {
                    "type": "number",
                    "const": 0
                  },
                  {
                    "type": "number",
                    "const": 1
                  }
                ]
              }
            },
            "required": [
              "tileId",
              "refresh"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 951
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "hero",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "heroweapons",
      "variants": [
        {
          "interface": "HeroWeaponsCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/hero.ts",
          "line": 50,
          "description": "英雄武器：/heroweapons {heroId}。",
          "order": [
            "heroId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "heroId": {
                "type": "number"
              }
            },
            "required": [
              "heroId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 939
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "hero",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "inlaygem",
      "variants": [
        {
          "interface": "InlayGemCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/items.ts",
          "line": 95,
          "description": "镶嵌宝石（关键命令）：/inlaygem {goodsId1} {goodsId2}。",
          "order": [
            "goodsId1",
            "goodsId2"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "goodsId1": {
                "type": "number"
              },
              "goodsId2": {
                "type": "number"
              }
            },
            "required": [
              "goodsId1",
              "goodsId2"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1056
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "items",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "inviteuser",
      "variants": [
        {
          "interface": "InviteUserCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 170,
          "description": "邀请入盟（关键命令）：/inviteuser {allyId} {inviterId} {inviteeId}。",
          "order": [
            "allyId",
            "inviterId",
            "inviteeId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "allyId": {
                "type": "number"
              },
              "inviterId": {
                "type": "number"
              },
              "inviteeId": {
                "type": "number"
              }
            },
            "required": [
              "allyId",
              "inviterId",
              "inviteeId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 639
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "joinalliance",
      "variants": [
        {
          "interface": "JoinAllianceCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 9,
          "description": "",
          "order": [
            "allianceId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "allianceId": {
                "type": "number"
              }
            },
            "required": [
              "allianceId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.AllianceEntry.cs",
          "line": 14
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "joincard",
      "variants": [
        {
          "interface": "JoinCardCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/pay.ts",
          "line": 28,
          "description": "联盟卡（关键命令）：/joincard {cardJson}。",
          "order": [
            "cardJson"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "cardJson": {
                "type": "string"
              }
            },
            "required": [
              "cardJson"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1044
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "pay",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "login",
      "variants": [
        {
          "interface": "LoginCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/session.ts",
          "line": 11,
          "description": "登录：/login {user} {md5pwd} {loginKey}。loginKey = MD5(XORKEY + mask + username)，md5pwd = MD5(password)。",
          "order": [
            "user",
            "md5pwd",
            "loginKey"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "user": {
                "type": "string"
              },
              "md5pwd": {
                "type": "string"
              },
              "loginKey": {
                "type": "string"
              }
            },
            "required": [
              "user",
              "md5pwd",
              "loginKey"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 251
        },
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.cs",
          "line": 188
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "session",
      "route": "account",
      "availability": "server-dispatched"
    },
    {
      "name": "login_ticket",
      "variants": [],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1558
        },
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.cs",
          "line": 188
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "server",
      "route": "transport",
      "availability": "server-dispatched"
    },
    {
      "name": "logout",
      "variants": [
        {
          "interface": "LogoutCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/session.ts",
          "line": 19,
          "description": "登出：/logout。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 255
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "session",
      "route": "account",
      "availability": "server-dispatched"
    },
    {
      "name": "luckindex",
      "variants": [
        {
          "interface": "LuckIndexCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/hero.ts",
          "line": 97,
          "description": "招募运气值：/luckindex {type}，英雄为 1。",
          "order": [
            "type"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "type": {
                "type": "number"
              }
            },
            "required": [
              "type"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1036
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "hero",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "map",
      "variants": [
        {
          "interface": "MapCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 37,
          "description": "地图（旧）：/map {args}。",
          "order": [
            "args"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "args": {
                "type": "string"
              }
            },
            "required": [
              "args"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 267
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "map2",
      "variants": [
        {
          "interface": "Map2Cmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 43,
          "description": "地图2（旧）：/map2 {args}。",
          "order": [
            "args"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "args": {
                "type": "string"
              }
            },
            "required": [
              "args"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 271
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "mapinfo",
      "variants": [
        {
          "interface": "MapInfoCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 31,
          "description": "地图信息：/mapinfo {mapId}。",
          "order": [
            "mapId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "mapId": {
                "type": "number"
              }
            },
            "required": [
              "mapId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [],
      "ack": false,
      "readOnly": true,
      "category": "combat",
      "route": "game",
      "availability": "unsupported-client-declaration"
    },
    {
      "name": "maprect",
      "variants": [
        {
          "interface": "MapRectCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 14,
          "description": "地图矩形批量查询（v2 主手段）：/maprect {mapId} {rects}\nrects 形如 \"x,y,w,h;x,y,w,h;...\"（服务端 WorldMaps.ParseBatchMapQuery 格式）。\n服务端 maprect 别名→qm，复用同一批处理逻辑。单次几 KB~几十 KB。",
          "order": [
            "mapId",
            "rects"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "mapId": {
                "type": "number"
              },
              "rects": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "required": [
              "mapId",
              "rects"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.cs",
          "line": 168
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "medicaltroops",
      "variants": [
        {
          "interface": "MedicalTroopsCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/troops.ts",
          "line": 72,
          "description": "治疗伤兵（关键命令）：/medicaltroops {battleId} {armsId} {count} {cityId}。",
          "order": [
            "battleId",
            "armsId",
            "count",
            "cityId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "battleId": {
                "type": "number"
              },
              "armsId": {
                "type": "number"
              },
              "count": {
                "type": "number"
              },
              "cityId": {
                "type": "number"
              }
            },
            "required": [
              "battleId",
              "armsId",
              "count",
              "cityId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1076
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "troops",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "mergegem",
      "variants": [
        {
          "interface": "MergeGemCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/items.ts",
          "line": 88,
          "description": "合成宝石（关键命令）：/mergegem {goodsId1} {goodsId2}。",
          "order": [
            "goodsId1",
            "goodsId2"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "goodsId1": {
                "type": "number"
              },
              "goodsId2": {
                "type": "number"
              }
            },
            "required": [
              "goodsId1",
              "goodsId2"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1052
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "items",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "modifycityname",
      "variants": [
        {
          "interface": "ModifyCityNameCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/city.ts",
          "line": 33,
          "description": "改城市名：/modifycityname {tileId} {newName}。",
          "order": [
            "tileId",
            "newName"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              },
              "newName": {
                "type": "string"
              }
            },
            "required": [
              "tileId",
              "newName"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 335
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "city",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "modifyemail",
      "variants": [
        {
          "interface": "ModifyEmailCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/user.ts",
          "line": 42,
          "description": "改邮箱：/modifyemail {credential} {newEmail}。\n服务端历史协议把第一个参数命名为 password；账号已有邮箱时实际校验当前邮箱。",
          "order": [
            "credential",
            "newEmail"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "credential": {
                "type": "string"
              },
              "newEmail": {
                "type": "string"
              }
            },
            "required": [
              "credential",
              "newEmail"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1123
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "user",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "modifyheroname",
      "variants": [
        {
          "interface": "ModifyHeroNameCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/hero.ts",
          "line": 114,
          "description": "改英雄名（关键命令）：/modifyheroname {heroId} {newName}。",
          "order": [
            "heroId",
            "newName"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "heroId": {
                "type": "number"
              },
              "newName": {
                "type": "string"
              }
            },
            "required": [
              "heroId",
              "newName"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 947
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "hero",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "modifypwd",
      "variants": [
        {
          "interface": "ModifyPwdCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/user.ts",
          "line": 32,
          "description": "改密码：/modifypwd {old} {new}。",
          "order": [
            "oldPwd",
            "newPwd"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "oldPwd": {
                "type": "string"
              },
              "newPwd": {
                "type": "string"
              }
            },
            "required": [
              "oldPwd",
              "newPwd"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 747
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "user",
      "route": "account",
      "availability": "server-dispatched"
    },
    {
      "name": "modifysignature",
      "variants": [
        {
          "interface": "ModifySignatureCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/user.ts",
          "line": 49,
          "description": "改签名：/modifysignature {signature}。",
          "order": [
            "signature"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "signature": {
                "type": "string"
              }
            },
            "required": [
              "signature"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1132
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "user",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "movebuild",
      "variants": [
        {
          "interface": "MoveBuildCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/build.ts",
          "line": 21,
          "description": "移动建筑（map3d）：/movebuild {uid} {gx} {gy}。",
          "order": [
            "uid",
            "gx",
            "gy"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "uid": {
                "type": "number"
              },
              "gx": {
                "type": "number"
              },
              "gy": {
                "type": "number"
              }
            },
            "required": [
              "uid",
              "gx",
              "gy"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.cs",
          "line": 244
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "build",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "movecity",
      "variants": [
        {
          "interface": "MoveCityCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/city.ts",
          "line": 40,
          "description": "迁城：/movecity {json}。",
          "order": [
            "json"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "json": {
                "type": "string"
              }
            },
            "required": [
              "json"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 863
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "city",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "movecityrandom",
      "variants": [
        {
          "interface": "MoveCityRandomCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/city.ts",
          "line": 52,
          "description": "随机迁城：/movecityrandom。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 859
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "city",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "msgboxlist",
      "variants": [
        {
          "interface": "MsgBoxListCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/chat.ts",
          "line": 46,
          "description": "邮箱列表：/msgboxlist。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 811
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "chat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "msgsession",
      "variants": [
        {
          "interface": "MsgSessionCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/chat.ts",
          "line": 39,
          "description": "邮件会话：/msgsession {boxId} {lastId}。",
          "order": [
            "boxId",
            "lastId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "boxId": {
                "type": "number"
              },
              "lastId": {
                "type": "number"
              }
            },
            "required": [
              "boxId",
              "lastId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 819
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "chat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "msgthreads",
      "variants": [
        {
          "interface": "MsgThreadsCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/chat.ts",
          "line": 36,
          "description": "邮件会话列表：/msgthreads。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 815
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "chat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "nametouserid",
      "variants": [
        {
          "interface": "NameToUserIdCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/session.ts",
          "line": 67,
          "description": "用户名转 userId：/nametouserid {name}。",
          "order": [
            "name"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              }
            },
            "required": [
              "name"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 549
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "session",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "newmessages",
      "variants": [],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 493
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "server",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "newmove",
      "variants": [
        {
          "interface": "NewMoveCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/city.ts",
          "line": 46,
          "description": "迁城（新）：/newmove {json}。",
          "order": [
            "json"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "json": {
                "type": "string"
              }
            },
            "required": [
              "json"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1048
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "city",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "nm",
      "variants": [
        {
          "interface": "NmCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/session.ts",
          "line": 96,
          "description": "轻量未读探测：/nm，返回 \"0/1,0/1\"（私信、战报）；老 Android 每 10 秒轮询。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 731
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "session",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "nm2",
      "variants": [],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 739
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "server",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "noop",
      "variants": [
        {
          "interface": "NoopCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/session.ts",
          "line": 101,
          "description": "no-op：/noop。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 775
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "session",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "nowfinish",
      "variants": [
        {
          "interface": "NowFinishCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/city.ts",
          "line": 87,
          "description": "立即完成：/nowfinish {cityId} {type}，type 1=建筑/降级，2=研究，3=维修。",
          "order": [
            "cityId",
            "type"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "cityId": {
                "type": "number"
              },
              "type": {
                "anyOf": [
                  {
                    "type": "number",
                    "const": 1
                  },
                  {
                    "type": "number",
                    "const": 2
                  },
                  {
                    "type": "number",
                    "const": 3
                  }
                ]
              }
            },
            "required": [
              "cityId",
              "type"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 614
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "city",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "nowfinishscience",
      "variants": [
        {
          "interface": "NowFinishScienceCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/city.ts",
          "line": 100,
          "description": "立即完成科技：/nowfinishscience {queueJson}。",
          "order": [
            "queueJson"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "queueJson": {
                "type": "string"
              }
            },
            "required": [
              "queueJson"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1188
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "city",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "nowfinishup",
      "variants": [
        {
          "interface": "NowFinishUpCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/city.ts",
          "line": 94,
          "description": "立即完成建筑队列：/nowfinishup {queueJson}。",
          "order": [
            "queueJson"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "queueJson": {
                "type": "string"
              }
            },
            "required": [
              "queueJson"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1183
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "city",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "outnewbit",
      "variants": [
        {
          "interface": "OutNewBitCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 290,
          "description": "出新手保护（关键命令）：/outnewbit。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 987
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "paypal",
      "variants": [
        {
          "interface": "PaypalCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/pay.ts",
          "line": 8,
          "description": "PayPal 支付（关键命令）：/paypal {requestCode} {transactionId} {channel}。",
          "order": [
            "requestCode",
            "transactionId",
            "channel"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "requestCode": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "transactionId": {
                "type": "string"
              },
              "channel": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "number"
                  }
                ]
              }
            },
            "required": [
              "requestCode",
              "transactionId",
              "channel"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 755
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "pay",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "paypalerr",
      "variants": [],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 759
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "server",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "pfinfo",
      "variants": [
        {
          "interface": "PfinfoCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/session.ts",
          "line": 24,
          "description": "平台注册/登录：/pfinfo {platform} {userId} {name} {country} {ip} {language}。",
          "order": [
            "platform",
            "userId",
            "name",
            "country",
            "ip",
            "language"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "platform": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "number"
                  }
                ]
              },
              "userId": {
                "type": "number"
              },
              "name": {
                "type": "string"
              },
              "country": {
                "type": "string"
              },
              "ip": {
                "type": "string"
              },
              "language": {
                "type": "string"
              }
            },
            "required": [
              "platform",
              "userId",
              "name",
              "country",
              "ip",
              "language"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1152
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "session",
      "route": "account",
      "availability": "server-dispatched"
    },
    {
      "name": "ping",
      "variants": [],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.cs",
          "line": 148
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "server",
      "route": "transport",
      "availability": "server-dispatched"
    },
    {
      "name": "playermarket",
      "variants": [
        {
          "interface": "PlayerMarketCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/playerMarket.ts",
          "line": 3,
          "description": "Server owns all amounts, availability, tax and settlement. JSON has a durable operationId for money mutations.",
          "order": [
            "action",
            "payload"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "action": {
                "type": "string"
              },
              "payload": {
                "type": "string"
              }
            },
            "required": [
              "action",
              "payload"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.PlayerMarket.cs",
          "line": 14
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "playerMarket",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "pong",
      "variants": [],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.cs",
          "line": 153
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "server",
      "route": "transport",
      "availability": "server-dispatched"
    },
    {
      "name": "promotehero",
      "variants": [
        {
          "interface": "PromoteHeroCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/hero.ts",
          "line": 121,
          "description": "英雄洗练（关键命令）：/promotehero {heroId} {type}。type 1/2 洗练(2金币) → 8 采用新值 → 9 保留原值。",
          "order": [
            "heroId",
            "type"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "heroId": {
                "type": "number"
              },
              "type": {
                "anyOf": [
                  {
                    "type": "number",
                    "const": 1
                  },
                  {
                    "type": "number",
                    "const": 2
                  },
                  {
                    "type": "number",
                    "const": 8
                  },
                  {
                    "type": "number",
                    "const": 9
                  }
                ]
              }
            },
            "required": [
              "heroId",
              "type"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1040
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "hero",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "qm",
      "variants": [
        {
          "interface": "QmCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 24,
          "description": "旧版地图批量查询：/qm {mapId} {rects}\n与 maprect 同格式；服务端同一 handler。保留兼容老调用。",
          "order": [
            "mapId",
            "rects"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "mapId": {
                "type": "number"
              },
              "rects": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            },
            "required": [
              "mapId",
              "rects"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 231
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "quit",
      "variants": [
        {
          "interface": "QuitCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/misc.ts",
          "line": 14,
          "description": "QUIT：v2 下不该发（服务端 QUIT handler 抛 NotImplementedException）。保留仅作兼容记录。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1205
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "misc",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "rebirthing",
      "variants": [
        {
          "interface": "RebirthingCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/hero.ts",
          "line": 69,
          "description": "重生英雄（关键命令）：/rebirthing {heroId} {tileId}，重伤复活。",
          "order": [
            "heroId",
            "tileId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "heroId": {
                "type": "number"
              },
              "tileId": {
                "type": "number"
              }
            },
            "required": [
              "heroId",
              "tileId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 971
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "hero",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "recallcombatqueue",
      "variants": [
        {
          "interface": "RecallCombatQueueCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 93,
          "description": "召回行军（关键命令）：/recallcombatqueue {queueId}。",
          "order": [
            "queueId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "queueId": {
                "type": "number"
              }
            },
            "required": [
              "queueId"
            ],
            "additionalProperties": false
          }
        },
        {
          "interface": "RelicActivityCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/relicActivity.ts",
          "line": 4,
          "description": "",
          "order": [
            "payload"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "payload": {
                "type": "string"
              }
            },
            "required": [
              "payload"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 541
        },
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.Activities.cs",
          "line": 18
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "recruithero",
      "variants": [
        {
          "interface": "RecruitHeroCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/hero.ts",
          "line": 83,
          "description": "招募英雄（关键命令）：/recruithero {tileId} {candidateIndex}。",
          "order": [
            "tileId",
            "candidateIndex"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              },
              "candidateIndex": {
                "type": "number"
              }
            },
            "required": [
              "tileId",
              "candidateIndex"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 963
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "hero",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "removebuild2",
      "variants": [
        {
          "interface": "RemoveBuild2Cmd",
          "source": "earth2037_client/assets/scripts/net/cmd/build.ts",
          "line": 29,
          "description": "拆除建筑（map3d）：/removebuild2 {uid}。",
          "order": [
            "uid"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "uid": {
                "type": "number"
              }
            },
            "required": [
              "uid"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [],
      "ack": true,
      "readOnly": false,
      "category": "build",
      "route": "game",
      "availability": "unsupported-client-declaration"
    },
    {
      "name": "requestactivityhelp",
      "variants": [
        {
          "interface": "RelicActivityCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/relicActivity.ts",
          "line": 4,
          "description": "",
          "order": [
            "payload"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "payload": {
                "type": "string"
              }
            },
            "required": [
              "payload"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.Activities.cs",
          "line": 15
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "relicActivity",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "requestalliancehelp",
      "variants": [
        {
          "interface": "RequestAllianceHelpCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 35,
          "description": "绑定服务器队列请求求助；同一任务重复提交不会创建第二条请求。",
          "order": [
            "tileId",
            "kind",
            "queueId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              },
              "kind": {
                "anyOf": [
                  {
                    "type": "string",
                    "const": "building"
                  },
                  {
                    "type": "string",
                    "const": "research"
                  }
                ]
              },
              "queueId": {
                "type": "number"
              }
            },
            "required": [
              "tileId",
              "kind",
              "queueId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.AllianceHelp.cs",
          "line": 15
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "resetaccinfo",
      "variants": [
        {
          "interface": "ResetAccInfoCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/user.ts",
          "line": 64,
          "description": "注销账号返回信息：/resetaccinfo。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 999
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "user",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "resetaccount",
      "variants": [
        {
          "interface": "ResetAccountCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/user.ts",
          "line": 61,
          "description": "注销账号：/resetaccount。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 995
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "user",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "resume",
      "variants": [],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.cs",
          "line": 157
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "server",
      "route": "transport",
      "availability": "server-dispatched"
    },
    {
      "name": "reusername",
      "variants": [
        {
          "interface": "ReuserNameCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/user.ts",
          "line": 55,
          "description": "改用户名：/reusername {newName}。",
          "order": [
            "newName"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "newName": {
                "type": "string"
              }
            },
            "required": [
              "newName"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1003
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "user",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "reviewallianceapplication",
      "variants": [
        {
          "interface": "ReviewAllianceApplicationCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 12,
          "description": "",
          "order": [
            "requestId",
            "accept"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "requestId": {
                "type": "number"
              },
              "accept": {
                "anyOf": [
                  {
                    "type": "number",
                    "const": 0
                  },
                  {
                    "type": "number",
                    "const": 1
                  }
                ]
              }
            },
            "required": [
              "requestId",
              "accept"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.AllianceEntry.cs",
          "line": 15
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "rotatebuild",
      "variants": [
        {
          "interface": "RotateBuildCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/build.ts",
          "line": 35,
          "description": "旋转建筑（map3d）：/rotatebuild {uid} {rot}。",
          "order": [
            "uid",
            "rot"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "uid": {
                "type": "number"
              },
              "rot": {
                "type": "number"
              }
            },
            "required": [
              "uid",
              "rot"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [],
      "ack": true,
      "readOnly": false,
      "category": "build",
      "route": "game",
      "availability": "unsupported-client-declaration"
    },
    {
      "name": "searchally",
      "variants": [
        {
          "interface": "SearchAllyCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 124,
          "description": "搜索联盟：/searchally {name}。",
          "order": [
            "name"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              }
            },
            "required": [
              "name"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 690
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "sendallymsg",
      "variants": [
        {
          "interface": "SendAllyMsgCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 218,
          "description": "发联盟消息（关键命令）：/sendallymsg {msgJson}。",
          "order": [
            "msgJson"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "msgJson": {
                "type": "string"
              }
            },
            "required": [
              "msgJson"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 827
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "senddiplomaticapply",
      "variants": [
        {
          "interface": "SendDiplomaticApplyCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 118,
          "description": "发送外交申请（关键命令）：/senddiplomaticapply {applyJson}。",
          "order": [
            "applyJson"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "applyJson": {
                "type": "string"
              }
            },
            "required": [
              "applyJson"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 659
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "sendmobilecode",
      "variants": [
        {
          "interface": "SendMobileCodeCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/session.ts",
          "line": 79,
          "description": "发送手机验证码：/sendmobilecode {phone}。",
          "order": [
            "phone"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "phone": {
                "type": "string"
              }
            },
            "required": [
              "phone"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 275
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "session",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "sendmsg",
      "variants": [
        {
          "interface": "SendMsgCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/chat.ts",
          "line": 18,
          "description": "发送消息（关键命令）：/sendmsg {msgJson}\ntype 0=系统 1=个人 4=匿名。",
          "order": [
            "msgJson"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "msgJson": {
                "type": "string"
              }
            },
            "required": [
              "msgJson"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 497
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "chat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "sendwmsg",
      "variants": [
        {
          "interface": "SendWMsgCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/chat.ts",
          "line": 24,
          "description": "发世界消息（关键命令）：/sendwmsg {msgJson}。",
          "order": [
            "msgJson"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "msgJson": {
                "type": "string"
              }
            },
            "required": [
              "msgJson"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 851
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "chat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "serverlist",
      "variants": [
        {
          "interface": "ServerListCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/city.ts",
          "line": 112,
          "description": "服务器列表：/serverlist。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 247
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "city",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "servertime",
      "variants": [
        {
          "interface": "ServerTimeCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 308,
          "description": "服务器时间：/servertime。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 771
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "setallianceentry",
      "variants": [
        {
          "interface": "SetAllianceEntryCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 10,
          "description": "",
          "order": [
            "joinMode"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "joinMode": {
                "anyOf": [
                  {
                    "type": "number",
                    "const": 0
                  },
                  {
                    "type": "number",
                    "const": 1
                  }
                ]
              }
            },
            "required": [
              "joinMode"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.AllianceEntry.cs",
          "line": 14
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "setallypermission",
      "variants": [
        {
          "interface": "SetAllyPermissionCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 75,
          "description": "设置权限（关键命令）：/setallypermission {permissionJson}。",
          "order": [
            "permissionJson"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "permissionJson": {
                "type": "string"
              }
            },
            "required": [
              "permissionJson"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 684
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "setavatar",
      "variants": [
        {
          "interface": "SetAvatarCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/user.ts",
          "line": 83,
          "description": "Save a server-validated player portrait id.",
          "order": [
            "avatar"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "avatar": {
                "type": "number"
              }
            },
            "required": [
              "avatar"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1128
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "user",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "setbuildpos",
      "variants": [
        {
          "interface": "SetBuildPosCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/build.ts",
          "line": 42,
          "description": "设置建筑位置（map3d）：/setbuildpos {uid} {gx} {gy}。关键命令（ack）。",
          "order": [
            "uid",
            "gx",
            "gy"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "uid": {
                "type": "number"
              },
              "gx": {
                "type": "number"
              },
              "gy": {
                "type": "number"
              }
            },
            "required": [
              "uid",
              "gx",
              "gy"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.cs",
          "line": 244
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "build",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "setcapital",
      "variants": [
        {
          "interface": "SetCapitalCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/city.ts",
          "line": 27,
          "description": "设都城：/setcapital {tileId}。",
          "order": [
            "tileId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              }
            },
            "required": [
              "tileId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 779
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "city",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "setcurcity",
      "variants": [
        {
          "interface": "SetCurCityCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/city.ts",
          "line": 21,
          "description": "切换当前城市：/setcurcity {tileId}。",
          "order": [
            "tileId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              }
            },
            "required": [
              "tileId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 339
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "city",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "setguideprogress",
      "variants": [
        {
          "interface": "SetGuideProgressCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/user.ts",
          "line": 86,
          "description": "",
          "order": [
            "step",
            "completed"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "step": {
                "type": "number"
              },
              "completed": {
                "anyOf": [
                  {
                    "type": "number",
                    "const": 0
                  },
                  {
                    "type": "number",
                    "const": 1
                  }
                ]
              }
            },
            "required": [
              "step",
              "completed"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.Guide.cs",
          "line": 10
        },
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.cs",
          "line": 308
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "user",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "startactivity",
      "variants": [
        {
          "interface": "RelicActivityCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/relicActivity.ts",
          "line": 4,
          "description": "",
          "order": [
            "payload"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "payload": {
                "type": "string"
              }
            },
            "required": [
              "payload"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.Activities.cs",
          "line": 15
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "relicActivity",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "storedecoration",
      "variants": [
        {
          "interface": "StoreDecorationCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/build.ts",
          "line": 76,
          "description": "打包装饰（v2）：仅提交建筑 UID，服务端校验归属/类型/状态并写装饰库存。",
          "order": [
            "uid"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "uid": {
                "type": "number"
              }
            },
            "required": [
              "uid"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.cs",
          "line": 236
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "build",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "taskcompleted",
      "variants": [
        {
          "interface": "TaskCompletedCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 314,
          "description": "任务完成（推送相关）：/taskcompleted {json}。",
          "order": [
            "json"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "json": {
                "type": "string"
              }
            },
            "required": [
              "json"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 795
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "taskgetrewards",
      "variants": [
        {
          "interface": "TaskGetRewardsCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/tasks.ts",
          "line": 32,
          "description": "领任务奖励（关键命令）：/taskgetrewards {taskId}。",
          "order": [
            "taskId",
            "cycleKey",
            "allowOverflow",
            "tileId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "taskId": {
                "type": "number"
              },
              "cycleKey": {
                "type": "string"
              },
              "allowOverflow": {
                "anyOf": [
                  {
                    "type": "number",
                    "const": 0
                  },
                  {
                    "type": "number",
                    "const": 1
                  }
                ]
              },
              "tileId": {
                "type": "number"
              }
            },
            "required": [
              "taskId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 807
        },
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.Progression.cs",
          "line": 10
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "tasks",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "tc_getres",
      "variants": [
        {
          "interface": "TcGetResCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 137,
          "description": "交易中心资源：/tc_getres {tileId}。",
          "order": [
            "tileId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              }
            },
            "required": [
              "tileId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 891
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "tc_items",
      "variants": [
        {
          "interface": "TcItemsCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 150,
          "description": "交易中心物品：/tc_items {tileId}。",
          "order": [
            "tileId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              }
            },
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 875
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "tc_modify_name",
      "variants": [
        {
          "interface": "TcModifyNameCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 143,
          "description": "改交易中心名：/tc_modify_name {tileId} {newName}。",
          "order": [
            "tileId",
            "newName"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              },
              "newName": {
                "type": "string"
              }
            },
            "required": [
              "tileId",
              "newName"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 895
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "tc_quit",
      "variants": [
        {
          "interface": "TcQuitCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 156,
          "description": "放弃交易中心：/tc_quit {tileId}。",
          "order": [
            "tileId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              }
            },
            "required": [
              "tileId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 887
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "test",
      "variants": [
        {
          "interface": "TestCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/misc.ts",
          "line": 8,
          "description": "测试命令（服务端 TEST handler）：/test {args}。",
          "order": [
            "args"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "args": {
                "type": "string"
              }
            },
            "required": [
              "args"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 243
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "misc",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "tiktokmission",
      "variants": [
        {
          "interface": "NewProtocolCmd.inline",
          "source": "earth2037_client/assets/scripts/net/commands.ts",
          "line": 197,
          "description": "",
          "order": [
            "mission",
            "action",
            "token"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "mission": {
                "anyOf": [
                  {
                    "type": "string",
                    "const": "shortcut"
                  },
                  {
                    "type": "string",
                    "const": "sidebar"
                  },
                  {
                    "type": "string",
                    "const": "video"
                  }
                ]
              },
              "action": {
                "anyOf": [
                  {
                    "type": "string",
                    "const": "prepare"
                  },
                  {
                    "type": "string",
                    "const": "claim"
                  }
                ]
              },
              "token": {
                "type": "string"
              }
            },
            "required": [
              "mission",
              "action",
              "token"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.TikTokMission.cs",
          "line": 7
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "commands",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "tileinfo",
      "variants": [
        {
          "interface": "TileInfoCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 49,
          "description": "单格信息：/tileinfo {tileId}。",
          "order": [
            "tileId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              }
            },
            "required": [
              "tileId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 299
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "tileinfos",
      "variants": [
        {
          "interface": "TileInfosCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 55,
          "description": "多格信息：/tileinfos {tileIds}。",
          "order": [
            "tileIds"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileIds": {
                "type": "string"
              }
            },
            "required": [
              "tileIds"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 303
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "topforts",
      "variants": [
        {
          "interface": "TopFortsCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/city.ts",
          "line": 73,
          "description": "小地图顶部要塞：/topforts。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1068
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "city",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "tradingcneter",
      "variants": [
        {
          "interface": "TradingCenterCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 131,
          "description": "交易中心信息（注意服务端拼写 tradingcneter）：/tradingcneter {tileId}。",
          "order": [
            "tileId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              }
            },
            "required": [
              "tileId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 879
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "traininghero",
      "variants": [
        {
          "interface": "TrainingHeroCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/hero.ts",
          "line": 76,
          "description": "训练英雄（关键命令）：/traininghero {heroId} {mode}，1 普通 +2000exp，2 强化 +3000exp 耗 3 金币。",
          "order": [
            "heroId",
            "mode"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "heroId": {
                "type": "number"
              },
              "mode": {
                "anyOf": [
                  {
                    "type": "number",
                    "const": 1
                  },
                  {
                    "type": "number",
                    "const": 2
                  }
                ]
              }
            },
            "required": [
              "heroId",
              "mode"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 991
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "hero",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "transfer_gold",
      "variants": [
        {
          "interface": "TransferGoldCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/user.ts",
          "line": 67,
          "description": "转赠金币：/transfer_gold {targetUserId} {amount}。",
          "order": [
            "targetUserId",
            "amount"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "targetUserId": {
                "type": "number"
              },
              "amount": {
                "type": "number"
              }
            },
            "required": [
              "targetUserId",
              "amount"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 871
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "user",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "translatechat",
      "variants": [
        {
          "interface": "TranslateChatCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/chat.ts",
          "line": 8,
          "description": "User-requested plain chat translation; service credentials stay on the server.",
          "order": [
            "text",
            "target"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "text": {
                "type": "string"
              },
              "target": {
                "anyOf": [
                  {
                    "type": "string",
                    "const": "zh"
                  },
                  {
                    "type": "string",
                    "const": "en"
                  }
                ]
              }
            },
            "required": [
              "text",
              "target"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.cs",
          "line": 145
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "chat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "transport",
      "variants": [
        {
          "interface": "TransportCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 243,
          "description": "资源运输（关键命令）：/transport {transportJson}。",
          "order": [
            "transportJson"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "transportJson": {
                "type": "string"
              }
            },
            "required": [
              "transportJson"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 553
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "updateally",
      "variants": [
        {
          "interface": "UpdateAllyCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 138,
          "description": "更新联盟（关键命令）：/updateally {allyJson}。",
          "order": [
            "allyJson"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "allyJson": {
                "type": "string"
              }
            },
            "required": [
              "allyJson"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 635
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "updatebuildlevel",
      "variants": [
        {
          "interface": "UpdateBuildLevelCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/build.ts",
          "line": 125,
          "description": "建筑升级：/updatebuildlevel {json}。",
          "order": [
            "json"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "json": {
                "type": "string"
              }
            },
            "required": [
              "json"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 392
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "build",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "updatecityappearance",
      "variants": [
        {
          "interface": "UpdateCityAppearanceCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/city.ts",
          "line": 118,
          "description": "更新城市外观。可空字段统一包进一个 JSON 位置参数，避免 cmdToArgs 丢 null 后参数错位。\n客户端只在收到服务端成功回包后应用，不做假成功。",
          "order": [
            "payloadJson"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "payloadJson": {
                "type": "string"
              }
            },
            "required": [
              "payloadJson"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.cs",
          "line": 248
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "city",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "updatemilrank",
      "variants": [
        {
          "interface": "UpdateMilRankCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/alliance.ts",
          "line": 232,
          "description": "更新军事排名：/updatemilrank {json}。",
          "order": [
            "json"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "json": {
                "type": "string"
              }
            },
            "required": [
              "json"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [],
      "ack": false,
      "readOnly": false,
      "category": "alliance",
      "route": "game",
      "availability": "unsupported-client-declaration"
    },
    {
      "name": "updateresource",
      "variants": [
        {
          "interface": "UpdateResourceCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/troops.ts",
          "line": 105,
          "description": "城市实际 upkeep：/updateresource {json}。",
          "order": [
            "json"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "json": {
                "type": "string"
              }
            },
            "required": [
              "json"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 287
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "troops",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "updatetaskstatus",
      "variants": [
        {
          "interface": "UpdateTaskStatusCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/tasks.ts",
          "line": 24,
          "description": "更新任务状态（关键命令）：/updatetaskstatus {taskId} {status}。",
          "order": [
            "taskId",
            "status",
            "cycleKey"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "taskId": {
                "type": "number"
              },
              "status": {
                "type": "number"
              },
              "cycleKey": {
                "type": "string"
              }
            },
            "required": [
              "taskId",
              "status"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 803
        },
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.Progression.cs",
          "line": 10
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "tasks",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "updatetradestatus",
      "variants": [
        {
          "interface": "UpdateTradeStatusCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 195,
          "description": "更新交易状态：/updatetradestatus {json}。",
          "order": [
            "json"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "json": {
                "type": "string"
              }
            },
            "required": [
              "json"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [],
      "disabledServerSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 727
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "disabled-server-handler"
    },
    {
      "name": "updateupkeeps",
      "variants": [
        {
          "interface": "UpdateUpkeepsCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/troops.ts",
          "line": 99,
          "description": "更新 upkeep：/updateupkeeps {json}。",
          "order": [
            "json"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "json": {
                "type": "string"
              }
            },
            "required": [
              "json"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 331
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "troops",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "upgradebuild",
      "variants": [
        {
          "interface": "UpgradeBuildCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/build.ts",
          "line": 62,
          "description": "升级现有建筑（v2）：客户端只提交 UID 与当前等级，目标/成本/时间由服务端决定。",
          "order": [
            "uid",
            "expectedLevel"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "uid": {
                "type": "number"
              },
              "expectedLevel": {
                "type": "number"
              }
            },
            "required": [
              "uid",
              "expectedLevel"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.cs",
          "line": 228
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "build",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "usebuildblueprint",
      "variants": [
        {
          "interface": "UseBuildBlueprintCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/build.ts",
          "line": 151,
          "description": "使用建筑蓝图（关键命令）：/usebuildblueprint {blueprintJson}。",
          "order": [
            "blueprintJson"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "blueprintJson": {
                "type": "string"
              }
            },
            "required": [
              "blueprintJson"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1111
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "build",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "usedecorationcard",
      "variants": [
        {
          "interface": "UseDecorationCardCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/build.ts",
          "line": 171,
          "description": "",
          "order": [
            "userGoodsId",
            "operationId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "userGoodsId": {
                "type": "number"
              },
              "operationId": {
                "type": "string"
              }
            },
            "required": [
              "userGoodsId",
              "operationId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.Decorations.cs",
          "line": 13
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "build",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "usercitymilitarysciences",
      "variants": [
        {
          "interface": "UserCityMilitarySciencesCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/troops.ts",
          "line": 30,
          "description": "城防军事科技：/usercitymilitarysciences。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 513
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "troops",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "userexists",
      "variants": [
        {
          "interface": "UserExistsCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/session.ts",
          "line": 61,
          "description": "检查用户名是否存在：/userexists {name}。",
          "order": [
            "name"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              }
            },
            "required": [
              "name"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 570
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "session",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "usergoodslist",
      "variants": [
        {
          "interface": "UserGoodsListCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/items.ts",
          "line": 53,
          "description": "玩家道具：/usergoodslist {0}。参数固定 0。",
          "order": [
            "flag"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "flag": {
                "type": "number"
              }
            },
            "required": [
              "flag"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 915
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "items",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "userhero",
      "variants": [
        {
          "interface": "UserHeroCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/hero.ts",
          "line": 14,
          "description": "城内当前激活英雄：/userhero {tileId}（服务端按城市返回激活英雄，参数是 tileId）。",
          "order": [
            "tileId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              }
            },
            "required": [
              "tileId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 931
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "hero",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "userheros",
      "variants": [
        {
          "interface": "UserHerosCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/hero.ts",
          "line": 8,
          "description": "英雄列表：/userheros {type} type 0=全部，1=主力，2=预备。",
          "order": [
            "type"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "type": {
                "type": "number"
              }
            },
            "required": [
              "type"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 935
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "hero",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "useridtoname",
      "variants": [
        {
          "interface": "UserIdToNameCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/session.ts",
          "line": 73,
          "description": "userId 转用户名：/useridtoname {userId}。",
          "order": [
            "userId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "userId": {
                "type": "number"
              }
            },
            "required": [
              "userId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 831
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "session",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "userinfo",
      "variants": [
        {
          "interface": "UserInfoCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/user.ts",
          "line": 11,
          "description": "用户信息：/userinfo [userId]（userId 可选，0=自己）。",
          "order": [
            "userId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "userId": {
                "type": "number"
              }
            },
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 259
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "user",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "userinfobyid",
      "variants": [
        {
          "interface": "UserInfoByIdCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/user.ts",
          "line": 17,
          "description": "按 id 查用户信息：/userinfobyid {userId}。",
          "order": [
            "userId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "userId": {
                "type": "number"
              }
            },
            "required": [
              "userId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 263
        }
      ],
      "ack": false,
      "readOnly": true,
      "category": "user",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "userstatusinfo",
      "variants": [
        {
          "interface": "UserStatusInfoCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/user.ts",
          "line": 29,
          "description": "用户状态：/userstatusinfo。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1107
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "user",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "usertroopssciencequeue",
      "variants": [
        {
          "interface": "UserTroopsScienceQueueCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/troops.ts",
          "line": 33,
          "description": "兵种科技队列：/usertroopssciencequeue。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 363
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "troops",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "usespeedup",
      "variants": [
        {
          "interface": "UseSpeedupCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/items.ts",
          "line": 13,
          "description": "Durable operationId, independent of transport request id. Field order is wire order.",
          "order": [
            "tileId",
            "targetKind",
            "queueId",
            "userGoodsId",
            "amount",
            "expectedVersion",
            "allowOverflow",
            "operationId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              },
              "targetKind": {
                "anyOf": [
                  {
                    "type": "string",
                    "const": "building"
                  },
                  {
                    "type": "string",
                    "const": "research"
                  }
                ]
              },
              "queueId": {
                "type": "number"
              },
              "userGoodsId": {
                "type": "number"
              },
              "amount": {
                "type": "number"
              },
              "expectedVersion": {
                "type": "string"
              },
              "allowOverflow": {
                "anyOf": [
                  {
                    "type": "number",
                    "const": 0
                  },
                  {
                    "type": "number",
                    "const": 1
                  }
                ]
              },
              "operationId": {
                "type": "string"
              }
            },
            "required": [
              "tileId",
              "targetKind",
              "queueId",
              "userGoodsId",
              "amount",
              "expectedVersion",
              "allowOverflow",
              "operationId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.Speedup.cs",
          "line": 12
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "items",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "usespeedupbatch",
      "variants": [
        {
          "interface": "UseSpeedupBatchCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/items.ts",
          "line": 25,
          "description": "One atomic combination; itemsJson is canonical ascending userGoodsId JSON, never a loop of singles.",
          "order": [
            "tileId",
            "targetKind",
            "queueId",
            "itemsJson",
            "expectedVersion",
            "allowOverflow",
            "operationId"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "tileId": {
                "type": "number"
              },
              "targetKind": {
                "anyOf": [
                  {
                    "type": "string",
                    "const": "building"
                  },
                  {
                    "type": "string",
                    "const": "research"
                  }
                ]
              },
              "queueId": {
                "type": "number"
              },
              "itemsJson": {
                "type": "string"
              },
              "expectedVersion": {
                "type": "string"
              },
              "allowOverflow": {
                "anyOf": [
                  {
                    "type": "number",
                    "const": 0
                  },
                  {
                    "type": "number",
                    "const": 1
                  }
                ]
              },
              "operationId": {
                "type": "string"
              }
            },
            "required": [
              "tileId",
              "targetKind",
              "queueId",
              "itemsJson",
              "expectedVersion",
              "allowOverflow",
              "operationId"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Game_Service/Net/WebSocketGameSession.Speedup.cs",
          "line": 12
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "items",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "vipgift",
      "variants": [
        {
          "interface": "VipGiftCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/items.ts",
          "line": 146,
          "description": "领 VIP 礼包（关键命令）：/vipgift {level}。0=首充。",
          "order": [
            "level"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "level": {
                "type": "number"
              }
            },
            "required": [
              "level"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1156
        }
      ],
      "ack": true,
      "readOnly": false,
      "category": "items",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "vipgiftdict",
      "variants": [
        {
          "interface": "VipGiftDictCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/items.ts",
          "line": 137,
          "description": "VIP 礼包字典：/vipgiftdict。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1160
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "items",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "vipgiftview",
      "variants": [
        {
          "interface": "VipGiftViewCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/items.ts",
          "line": 140,
          "description": "VIP 礼包视图：/vipgiftview {level}。",
          "order": [
            "level"
          ],
          "schema": {
            "type": "object",
            "properties": {
              "level": {
                "type": "number"
              }
            },
            "required": [
              "level"
            ],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 1164
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "items",
      "route": "game",
      "availability": "server-dispatched"
    },
    {
      "name": "welcome",
      "variants": [
        {
          "interface": "WelcomeCmd",
          "source": "earth2037_client/assets/scripts/net/cmd/combat.ts",
          "line": 311,
          "description": "欢迎：/welcome。",
          "order": [],
          "schema": {
            "type": "object",
            "properties": {},
            "required": [],
            "additionalProperties": false
          }
        }
      ],
      "serverSources": [
        {
          "source": "earth2037_server/Server/Net/Game/Server/Game_Session.cs",
          "line": 239
        }
      ],
      "ack": false,
      "readOnly": false,
      "category": "combat",
      "route": "game",
      "availability": "server-dispatched"
    }
  ]
}
