@my-swu/simulator-client 0.1.4 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/generated/index.d.ts +3 -0
- package/dist/generated/schemas.d.ts +1 -1
- package/dist/generated/schemas.js +626 -0
- package/dist/generated/types/admin-match-debug-bundle.d.ts +1 -1
- package/dist/generated/types/admin-match-replay-response.d.ts +1 -1
- package/dist/generated/types/client-message.d.ts +1 -1
- package/dist/generated/types/common.d.ts +193 -0
- package/dist/generated/types/create-playground-share-response.d.ts +1 -0
- package/dist/generated/types/create-playground-share-response.js +2 -0
- package/dist/generated/types/game-command.d.ts +1 -1
- package/dist/generated/types/match-history-replay-response.d.ts +1 -1
- package/dist/generated/types/playground-export-payload.d.ts +1 -0
- package/dist/generated/types/playground-export-payload.js +2 -0
- package/dist/generated/types/server-message.d.ts +1 -1
- package/dist/generated/types/set-ai-paused-response.d.ts +1 -1
- package/dist/generated/types/set-playground-ai-seat-request.d.ts +1 -0
- package/dist/generated/types/set-playground-ai-seat-request.js +2 -0
- package/dist/generated/types/shared-match-history-replay-response.d.ts +1 -1
- package/dist/generated/types/welcome-payload.d.ts +1 -1
- package/dist/generated/version.d.ts +1 -1
- package/dist/generated/version.js +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/resources/admin.d.ts +3 -1
- package/dist/resources/admin.js +1 -0
- package/dist/resources/match-types.d.ts +11 -1
- package/dist/resources/matches.js +49 -0
- package/dist/validators.d.ts +4 -1
- package/package.json +1 -1
- package/schema/common.schema.json +491 -0
- package/schema/create-match-request.schema.json +5 -0
- package/schema/create-playground-share-response.schema.json +22 -0
- package/schema/game-command.schema.json +20 -0
- package/schema/game-state.schema.json +15 -0
- package/schema/manifest.json +4 -1
- package/schema/match-save-payload.schema.json +8 -0
- package/schema/playground-export-payload.schema.json +26 -0
- package/schema/route-manifest.json +58 -0
- package/schema/set-playground-ai-seat-request.schema.json +36 -0
|
@@ -1061,6 +1061,184 @@
|
|
|
1061
1061
|
"replayAvailable"
|
|
1062
1062
|
]
|
|
1063
1063
|
},
|
|
1064
|
+
"AiDecisionDiagnostic": {
|
|
1065
|
+
"description": "One AI decision's search-budget diagnostics, safe for durable storage.",
|
|
1066
|
+
"type": "object",
|
|
1067
|
+
"properties": {
|
|
1068
|
+
"abilityId": {
|
|
1069
|
+
"description": "Pending ability the chosen command answered, when applicable.",
|
|
1070
|
+
"type": [
|
|
1071
|
+
"integer",
|
|
1072
|
+
"null"
|
|
1073
|
+
],
|
|
1074
|
+
"format": "uint64",
|
|
1075
|
+
"minimum": 0
|
|
1076
|
+
},
|
|
1077
|
+
"commandKind": {
|
|
1078
|
+
"description": "Privacy-safe chosen-command shape: snake_case command kind only.",
|
|
1079
|
+
"type": "string"
|
|
1080
|
+
},
|
|
1081
|
+
"difficulty": {
|
|
1082
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/AiDifficulty"
|
|
1083
|
+
},
|
|
1084
|
+
"elapsedMs": {
|
|
1085
|
+
"type": "integer",
|
|
1086
|
+
"format": "uint64",
|
|
1087
|
+
"minimum": 0
|
|
1088
|
+
},
|
|
1089
|
+
"eventsApplied": {
|
|
1090
|
+
"description": "Engine event counter of the searched state; exact cross-check key.",
|
|
1091
|
+
"type": "integer",
|
|
1092
|
+
"format": "uint64",
|
|
1093
|
+
"minimum": 0
|
|
1094
|
+
},
|
|
1095
|
+
"frameIndex": {
|
|
1096
|
+
"description": "Index of the replay frame this decision was made on (the state BEFORE\nthe chosen command applied). `None` when no frame was recorded yet.",
|
|
1097
|
+
"type": [
|
|
1098
|
+
"integer",
|
|
1099
|
+
"null"
|
|
1100
|
+
],
|
|
1101
|
+
"format": "uint32",
|
|
1102
|
+
"minimum": 0
|
|
1103
|
+
},
|
|
1104
|
+
"hardFloorOverrun": {
|
|
1105
|
+
"description": "Whether the minimum-iteration floor pushed past the wall-clock budget.",
|
|
1106
|
+
"type": "boolean"
|
|
1107
|
+
},
|
|
1108
|
+
"iterationCeiling": {
|
|
1109
|
+
"description": "Idle-stretch ceiling granted for this decision, when one was.",
|
|
1110
|
+
"type": [
|
|
1111
|
+
"integer",
|
|
1112
|
+
"null"
|
|
1113
|
+
],
|
|
1114
|
+
"format": "uint32",
|
|
1115
|
+
"minimum": 0
|
|
1116
|
+
},
|
|
1117
|
+
"iterationsBudget": {
|
|
1118
|
+
"type": "integer",
|
|
1119
|
+
"format": "uint32",
|
|
1120
|
+
"minimum": 0
|
|
1121
|
+
},
|
|
1122
|
+
"iterationsDone": {
|
|
1123
|
+
"type": "integer",
|
|
1124
|
+
"format": "uint32",
|
|
1125
|
+
"minimum": 0
|
|
1126
|
+
},
|
|
1127
|
+
"legalCount": {
|
|
1128
|
+
"type": "integer",
|
|
1129
|
+
"format": "uint32",
|
|
1130
|
+
"minimum": 0
|
|
1131
|
+
},
|
|
1132
|
+
"minIterations": {
|
|
1133
|
+
"description": "Minimum-iteration floor the search guarantees past the wall clock.",
|
|
1134
|
+
"type": "integer",
|
|
1135
|
+
"format": "uint32",
|
|
1136
|
+
"minimum": 0
|
|
1137
|
+
},
|
|
1138
|
+
"queueMs": {
|
|
1139
|
+
"description": "Time spent waiting for scheduler admission before the search started.",
|
|
1140
|
+
"type": "integer",
|
|
1141
|
+
"format": "uint64",
|
|
1142
|
+
"minimum": 0
|
|
1143
|
+
},
|
|
1144
|
+
"schedulerIdle": {
|
|
1145
|
+
"description": "Whether the AI scheduler was idle when this decision was admitted.",
|
|
1146
|
+
"type": "boolean"
|
|
1147
|
+
},
|
|
1148
|
+
"searchMode": {
|
|
1149
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/AiDecisionSearchMode"
|
|
1150
|
+
},
|
|
1151
|
+
"seat": {
|
|
1152
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
|
|
1153
|
+
},
|
|
1154
|
+
"snapshotRevision": {
|
|
1155
|
+
"description": "Gameplay snapshot marker the searched state carried. An undo between\nsearch and record makes this disagree with the frame at `frame_index`.",
|
|
1156
|
+
"type": "integer",
|
|
1157
|
+
"format": "uint64",
|
|
1158
|
+
"minimum": 0
|
|
1159
|
+
},
|
|
1160
|
+
"sourceCardId": {
|
|
1161
|
+
"description": "Public source card of that pending ability, when applicable.",
|
|
1162
|
+
"type": [
|
|
1163
|
+
"integer",
|
|
1164
|
+
"null"
|
|
1165
|
+
],
|
|
1166
|
+
"format": "uint32",
|
|
1167
|
+
"minimum": 0
|
|
1168
|
+
},
|
|
1169
|
+
"starvationFallback": {
|
|
1170
|
+
"description": "The starved-search guard discarded the search result entirely and\nanswered from a one-ply heuristic ranking instead.",
|
|
1171
|
+
"type": "boolean"
|
|
1172
|
+
},
|
|
1173
|
+
"starved": {
|
|
1174
|
+
"description": "Starved search: the wall clock cut the decision at (or below) its\nminimum-iteration floor, so the move rests on noise-level visit\ncounts. Any blunder on a starved decision is explained first by this\nflag, not by enumeration or evaluation defects.",
|
|
1175
|
+
"type": "boolean"
|
|
1176
|
+
},
|
|
1177
|
+
"timeBudgetMs": {
|
|
1178
|
+
"type": [
|
|
1179
|
+
"integer",
|
|
1180
|
+
"null"
|
|
1181
|
+
],
|
|
1182
|
+
"format": "uint32",
|
|
1183
|
+
"minimum": 0
|
|
1184
|
+
},
|
|
1185
|
+
"timeLimited": {
|
|
1186
|
+
"description": "Whether the wall clock cut the search before its iteration budget.",
|
|
1187
|
+
"type": "boolean"
|
|
1188
|
+
},
|
|
1189
|
+
"workersCompleted": {
|
|
1190
|
+
"type": "integer",
|
|
1191
|
+
"format": "uint32",
|
|
1192
|
+
"minimum": 0
|
|
1193
|
+
},
|
|
1194
|
+
"workersRequested": {
|
|
1195
|
+
"type": "integer",
|
|
1196
|
+
"format": "uint32",
|
|
1197
|
+
"minimum": 0
|
|
1198
|
+
}
|
|
1199
|
+
},
|
|
1200
|
+
"required": [
|
|
1201
|
+
"seat",
|
|
1202
|
+
"difficulty",
|
|
1203
|
+
"snapshotRevision",
|
|
1204
|
+
"eventsApplied",
|
|
1205
|
+
"searchMode",
|
|
1206
|
+
"commandKind",
|
|
1207
|
+
"queueMs",
|
|
1208
|
+
"elapsedMs",
|
|
1209
|
+
"iterationsDone",
|
|
1210
|
+
"iterationsBudget",
|
|
1211
|
+
"minIterations",
|
|
1212
|
+
"workersRequested",
|
|
1213
|
+
"workersCompleted",
|
|
1214
|
+
"schedulerIdle",
|
|
1215
|
+
"legalCount",
|
|
1216
|
+
"timeLimited",
|
|
1217
|
+
"hardFloorOverrun",
|
|
1218
|
+
"starved",
|
|
1219
|
+
"starvationFallback"
|
|
1220
|
+
]
|
|
1221
|
+
},
|
|
1222
|
+
"AiDecisionSearchMode": {
|
|
1223
|
+
"description": "Decision algorithm that produced one recorded AI choice.",
|
|
1224
|
+
"oneOf": [
|
|
1225
|
+
{
|
|
1226
|
+
"description": "Normal MCTS root search.",
|
|
1227
|
+
"type": "string",
|
|
1228
|
+
"const": "mcts"
|
|
1229
|
+
},
|
|
1230
|
+
{
|
|
1231
|
+
"description": "One-ply evaluation of every legal setup choice.",
|
|
1232
|
+
"type": "string",
|
|
1233
|
+
"const": "setupEvaluator"
|
|
1234
|
+
},
|
|
1235
|
+
{
|
|
1236
|
+
"description": "A single legal action or another constant-time guard selected the move.",
|
|
1237
|
+
"type": "string",
|
|
1238
|
+
"const": "fastPath"
|
|
1239
|
+
}
|
|
1240
|
+
]
|
|
1241
|
+
},
|
|
1064
1242
|
"AiDifficulty": {
|
|
1065
1243
|
"description": "Public difficulty presets. Internal tuning (iteration counts, time\nbudgets) lives in `crate::r#match::registry::ai_factory` so it can be\nadjusted without changing the SDK surface.",
|
|
1066
1244
|
"oneOf": [
|
|
@@ -1152,6 +1330,9 @@
|
|
|
1152
1330
|
"AiSeatStatusPayload": {
|
|
1153
1331
|
"type": "object",
|
|
1154
1332
|
"properties": {
|
|
1333
|
+
"difficulty": {
|
|
1334
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/AiDifficulty"
|
|
1335
|
+
},
|
|
1155
1336
|
"paused": {
|
|
1156
1337
|
"type": "boolean"
|
|
1157
1338
|
},
|
|
@@ -1165,6 +1346,7 @@
|
|
|
1165
1346
|
"required": [
|
|
1166
1347
|
"seat",
|
|
1167
1348
|
"paused",
|
|
1349
|
+
"difficulty",
|
|
1168
1350
|
"trilogyFormatMode"
|
|
1169
1351
|
]
|
|
1170
1352
|
},
|
|
@@ -4038,6 +4220,26 @@
|
|
|
4038
4220
|
"concede"
|
|
4039
4221
|
]
|
|
4040
4222
|
},
|
|
4223
|
+
{
|
|
4224
|
+
"type": "object",
|
|
4225
|
+
"properties": {
|
|
4226
|
+
"playground": {
|
|
4227
|
+
"type": "object",
|
|
4228
|
+
"properties": {
|
|
4229
|
+
"command": {
|
|
4230
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/PlaygroundCommand"
|
|
4231
|
+
}
|
|
4232
|
+
},
|
|
4233
|
+
"required": [
|
|
4234
|
+
"command"
|
|
4235
|
+
]
|
|
4236
|
+
}
|
|
4237
|
+
},
|
|
4238
|
+
"additionalProperties": false,
|
|
4239
|
+
"required": [
|
|
4240
|
+
"playground"
|
|
4241
|
+
]
|
|
4242
|
+
},
|
|
4041
4243
|
{
|
|
4042
4244
|
"type": "object",
|
|
4043
4245
|
"properties": {
|
|
@@ -7031,6 +7233,21 @@
|
|
|
7031
7233
|
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/SeatState"
|
|
7032
7234
|
}
|
|
7033
7235
|
},
|
|
7236
|
+
"playground": {
|
|
7237
|
+
"description": "Whether this snapshot belongs to a server-authorized Playground match.",
|
|
7238
|
+
"type": "boolean",
|
|
7239
|
+
"default": false
|
|
7240
|
+
},
|
|
7241
|
+
"playgroundDeckCardIds": {
|
|
7242
|
+
"description": "Printed cards supplied by every configured Playground deck.",
|
|
7243
|
+
"type": "array",
|
|
7244
|
+
"default": [],
|
|
7245
|
+
"items": {
|
|
7246
|
+
"type": "integer",
|
|
7247
|
+
"format": "uint32",
|
|
7248
|
+
"minimum": 0
|
|
7249
|
+
}
|
|
7250
|
+
},
|
|
7034
7251
|
"prompt": {
|
|
7035
7252
|
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/PromptState"
|
|
7036
7253
|
},
|
|
@@ -9596,6 +9813,14 @@
|
|
|
9596
9813
|
"description": "Safe completed-series replay archive. `frames` never contains private zones;\n`revealed_frames` is returned only after both completion and ownership checks.",
|
|
9597
9814
|
"type": "object",
|
|
9598
9815
|
"properties": {
|
|
9816
|
+
"aiDecisions": {
|
|
9817
|
+
"description": "Per-AI-decision search diagnostics (budget, workers, starvation), in\ndecision order. Additive: older archives decode with an empty list.",
|
|
9818
|
+
"type": "array",
|
|
9819
|
+
"default": [],
|
|
9820
|
+
"items": {
|
|
9821
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/AiDecisionDiagnostic"
|
|
9822
|
+
}
|
|
9823
|
+
},
|
|
9599
9824
|
"frameEvents": {
|
|
9600
9825
|
"description": "Events folded into each matching replay frame. Older archives decode\nwithout this additive field and remain playable without captions.",
|
|
9601
9826
|
"type": "array",
|
|
@@ -9711,6 +9936,14 @@
|
|
|
9711
9936
|
"description": "Whether AI was manually paused when this snapshot was captured.",
|
|
9712
9937
|
"type": "boolean"
|
|
9713
9938
|
},
|
|
9939
|
+
"aiPausedSeats": {
|
|
9940
|
+
"description": "Exact manually paused AI seats. Empty payloads from older clients use\n`ai_paused` as the all-seat compatibility fallback.",
|
|
9941
|
+
"type": "array",
|
|
9942
|
+
"default": [],
|
|
9943
|
+
"items": {
|
|
9944
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
|
|
9945
|
+
}
|
|
9946
|
+
},
|
|
9714
9947
|
"copiedCards": {
|
|
9715
9948
|
"description": "Wire mirror of the [`UnitState::copied_card`] Arcs that the inner\nstate could not embed. Keyed by `unit.instance_id`. Empty when no\nactive unit has a copied card.",
|
|
9716
9949
|
"type": "array",
|
|
@@ -11206,6 +11439,244 @@
|
|
|
11206
11439
|
}
|
|
11207
11440
|
]
|
|
11208
11441
|
},
|
|
11442
|
+
"PlaygroundCommand": {
|
|
11443
|
+
"description": "Host-authorized raw scenario mutation for a Playground match.",
|
|
11444
|
+
"oneOf": [
|
|
11445
|
+
{
|
|
11446
|
+
"type": "object",
|
|
11447
|
+
"properties": {
|
|
11448
|
+
"card_ids": {
|
|
11449
|
+
"type": "array",
|
|
11450
|
+
"items": {
|
|
11451
|
+
"type": "integer",
|
|
11452
|
+
"format": "uint32",
|
|
11453
|
+
"minimum": 0
|
|
11454
|
+
}
|
|
11455
|
+
},
|
|
11456
|
+
"seat": {
|
|
11457
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
|
|
11458
|
+
},
|
|
11459
|
+
"type": {
|
|
11460
|
+
"type": "string",
|
|
11461
|
+
"const": "setDrawQueue"
|
|
11462
|
+
}
|
|
11463
|
+
},
|
|
11464
|
+
"required": [
|
|
11465
|
+
"type",
|
|
11466
|
+
"seat",
|
|
11467
|
+
"card_ids"
|
|
11468
|
+
]
|
|
11469
|
+
},
|
|
11470
|
+
{
|
|
11471
|
+
"type": "object",
|
|
11472
|
+
"properties": {
|
|
11473
|
+
"attachedToUnitId": {
|
|
11474
|
+
"type": [
|
|
11475
|
+
"integer",
|
|
11476
|
+
"null"
|
|
11477
|
+
],
|
|
11478
|
+
"format": "uint64",
|
|
11479
|
+
"minimum": 0
|
|
11480
|
+
},
|
|
11481
|
+
"cardId": {
|
|
11482
|
+
"type": "integer",
|
|
11483
|
+
"format": "uint32",
|
|
11484
|
+
"minimum": 0
|
|
11485
|
+
},
|
|
11486
|
+
"seat": {
|
|
11487
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
|
|
11488
|
+
},
|
|
11489
|
+
"type": {
|
|
11490
|
+
"type": "string",
|
|
11491
|
+
"const": "putCardInPlay"
|
|
11492
|
+
}
|
|
11493
|
+
},
|
|
11494
|
+
"required": [
|
|
11495
|
+
"type",
|
|
11496
|
+
"seat",
|
|
11497
|
+
"cardId"
|
|
11498
|
+
]
|
|
11499
|
+
},
|
|
11500
|
+
{
|
|
11501
|
+
"description": "Plays a minted hand card without paying its resource cost, preserving\nnormal play triggers and restrictions.",
|
|
11502
|
+
"type": "object",
|
|
11503
|
+
"properties": {
|
|
11504
|
+
"attachedToUnitId": {
|
|
11505
|
+
"type": [
|
|
11506
|
+
"integer",
|
|
11507
|
+
"null"
|
|
11508
|
+
],
|
|
11509
|
+
"format": "uint64",
|
|
11510
|
+
"minimum": 0
|
|
11511
|
+
},
|
|
11512
|
+
"cardId": {
|
|
11513
|
+
"type": "integer",
|
|
11514
|
+
"format": "uint32",
|
|
11515
|
+
"minimum": 0
|
|
11516
|
+
},
|
|
11517
|
+
"seat": {
|
|
11518
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
|
|
11519
|
+
},
|
|
11520
|
+
"type": {
|
|
11521
|
+
"type": "string",
|
|
11522
|
+
"const": "playCardForFree"
|
|
11523
|
+
}
|
|
11524
|
+
},
|
|
11525
|
+
"required": [
|
|
11526
|
+
"type",
|
|
11527
|
+
"seat",
|
|
11528
|
+
"cardId"
|
|
11529
|
+
]
|
|
11530
|
+
},
|
|
11531
|
+
{
|
|
11532
|
+
"type": "object",
|
|
11533
|
+
"properties": {
|
|
11534
|
+
"amount": {
|
|
11535
|
+
"type": "integer",
|
|
11536
|
+
"format": "int16",
|
|
11537
|
+
"maximum": 32767,
|
|
11538
|
+
"minimum": -32768
|
|
11539
|
+
},
|
|
11540
|
+
"target": {
|
|
11541
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/PlaygroundDamageTarget"
|
|
11542
|
+
},
|
|
11543
|
+
"type": {
|
|
11544
|
+
"type": "string",
|
|
11545
|
+
"const": "setDamage"
|
|
11546
|
+
}
|
|
11547
|
+
},
|
|
11548
|
+
"required": [
|
|
11549
|
+
"type",
|
|
11550
|
+
"target",
|
|
11551
|
+
"amount"
|
|
11552
|
+
]
|
|
11553
|
+
},
|
|
11554
|
+
{
|
|
11555
|
+
"type": "object",
|
|
11556
|
+
"properties": {
|
|
11557
|
+
"target": {
|
|
11558
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/PlaygroundDefeatTarget"
|
|
11559
|
+
},
|
|
11560
|
+
"type": {
|
|
11561
|
+
"type": "string",
|
|
11562
|
+
"const": "defeatCard"
|
|
11563
|
+
}
|
|
11564
|
+
},
|
|
11565
|
+
"required": [
|
|
11566
|
+
"type",
|
|
11567
|
+
"target"
|
|
11568
|
+
]
|
|
11569
|
+
},
|
|
11570
|
+
{
|
|
11571
|
+
"type": "object",
|
|
11572
|
+
"properties": {
|
|
11573
|
+
"captorUnitId": {
|
|
11574
|
+
"type": "integer",
|
|
11575
|
+
"format": "uint64",
|
|
11576
|
+
"minimum": 0
|
|
11577
|
+
},
|
|
11578
|
+
"cardId": {
|
|
11579
|
+
"type": "integer",
|
|
11580
|
+
"format": "uint32",
|
|
11581
|
+
"minimum": 0
|
|
11582
|
+
},
|
|
11583
|
+
"ownerSeat": {
|
|
11584
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
|
|
11585
|
+
},
|
|
11586
|
+
"type": {
|
|
11587
|
+
"type": "string",
|
|
11588
|
+
"const": "captureCard"
|
|
11589
|
+
}
|
|
11590
|
+
},
|
|
11591
|
+
"required": [
|
|
11592
|
+
"type",
|
|
11593
|
+
"ownerSeat",
|
|
11594
|
+
"cardId",
|
|
11595
|
+
"captorUnitId"
|
|
11596
|
+
]
|
|
11597
|
+
}
|
|
11598
|
+
]
|
|
11599
|
+
},
|
|
11600
|
+
"PlaygroundDamageTarget": {
|
|
11601
|
+
"description": "One board target whose damage counter Playground may set exactly.",
|
|
11602
|
+
"oneOf": [
|
|
11603
|
+
{
|
|
11604
|
+
"type": "object",
|
|
11605
|
+
"properties": {
|
|
11606
|
+
"seat": {
|
|
11607
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
|
|
11608
|
+
},
|
|
11609
|
+
"type": {
|
|
11610
|
+
"type": "string",
|
|
11611
|
+
"const": "base"
|
|
11612
|
+
}
|
|
11613
|
+
},
|
|
11614
|
+
"required": [
|
|
11615
|
+
"type",
|
|
11616
|
+
"seat"
|
|
11617
|
+
]
|
|
11618
|
+
},
|
|
11619
|
+
{
|
|
11620
|
+
"type": "object",
|
|
11621
|
+
"properties": {
|
|
11622
|
+
"type": {
|
|
11623
|
+
"type": "string",
|
|
11624
|
+
"const": "unit"
|
|
11625
|
+
},
|
|
11626
|
+
"unit_id": {
|
|
11627
|
+
"type": "integer",
|
|
11628
|
+
"format": "uint64",
|
|
11629
|
+
"minimum": 0
|
|
11630
|
+
}
|
|
11631
|
+
},
|
|
11632
|
+
"required": [
|
|
11633
|
+
"type",
|
|
11634
|
+
"unit_id"
|
|
11635
|
+
]
|
|
11636
|
+
}
|
|
11637
|
+
]
|
|
11638
|
+
},
|
|
11639
|
+
"PlaygroundDefeatTarget": {
|
|
11640
|
+
"description": "One in-play card Playground may defeat through normal leave-play handling.",
|
|
11641
|
+
"oneOf": [
|
|
11642
|
+
{
|
|
11643
|
+
"type": "object",
|
|
11644
|
+
"properties": {
|
|
11645
|
+
"type": {
|
|
11646
|
+
"type": "string",
|
|
11647
|
+
"const": "unit"
|
|
11648
|
+
},
|
|
11649
|
+
"unit_id": {
|
|
11650
|
+
"type": "integer",
|
|
11651
|
+
"format": "uint64",
|
|
11652
|
+
"minimum": 0
|
|
11653
|
+
}
|
|
11654
|
+
},
|
|
11655
|
+
"required": [
|
|
11656
|
+
"type",
|
|
11657
|
+
"unit_id"
|
|
11658
|
+
]
|
|
11659
|
+
},
|
|
11660
|
+
{
|
|
11661
|
+
"type": "object",
|
|
11662
|
+
"properties": {
|
|
11663
|
+
"type": {
|
|
11664
|
+
"type": "string",
|
|
11665
|
+
"const": "upgrade"
|
|
11666
|
+
},
|
|
11667
|
+
"upgrade_id": {
|
|
11668
|
+
"type": "integer",
|
|
11669
|
+
"format": "uint64",
|
|
11670
|
+
"minimum": 0
|
|
11671
|
+
}
|
|
11672
|
+
},
|
|
11673
|
+
"required": [
|
|
11674
|
+
"type",
|
|
11675
|
+
"upgrade_id"
|
|
11676
|
+
]
|
|
11677
|
+
}
|
|
11678
|
+
]
|
|
11679
|
+
},
|
|
11209
11680
|
"PresenceFilter": {
|
|
11210
11681
|
"type": "string",
|
|
11211
11682
|
"enum": [
|
|
@@ -13102,6 +13573,26 @@
|
|
|
13102
13573
|
"kind"
|
|
13103
13574
|
]
|
|
13104
13575
|
},
|
|
13576
|
+
{
|
|
13577
|
+
"description": "Pay the stated number of resources for each selected unit instead of\napplying the accompanying exhaustion instruction.",
|
|
13578
|
+
"type": "object",
|
|
13579
|
+
"properties": {
|
|
13580
|
+
"amount": {
|
|
13581
|
+
"type": "integer",
|
|
13582
|
+
"format": "uint8",
|
|
13583
|
+
"maximum": 255,
|
|
13584
|
+
"minimum": 0
|
|
13585
|
+
},
|
|
13586
|
+
"kind": {
|
|
13587
|
+
"type": "string",
|
|
13588
|
+
"const": "payToAvoidExhaust"
|
|
13589
|
+
}
|
|
13590
|
+
},
|
|
13591
|
+
"required": [
|
|
13592
|
+
"kind",
|
|
13593
|
+
"amount"
|
|
13594
|
+
]
|
|
13595
|
+
},
|
|
13105
13596
|
{
|
|
13106
13597
|
"description": "Ready the selected unit(s).",
|
|
13107
13598
|
"type": "object",
|
|
@@ -90,6 +90,11 @@
|
|
|
90
90
|
"maximum": 255,
|
|
91
91
|
"minimum": 0
|
|
92
92
|
},
|
|
93
|
+
"playground": {
|
|
94
|
+
"description": "Enables the server-owned scenario Playground runtime. Normal matches\nretain the default and never accept Playground mutations.",
|
|
95
|
+
"type": "boolean",
|
|
96
|
+
"default": false
|
|
97
|
+
},
|
|
93
98
|
"scenario": {
|
|
94
99
|
"description": "Optional authored scenario selector for direct Learn match creation.",
|
|
95
100
|
"anyOf": [
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"title": "CreatePlaygroundShareResponse",
|
|
4
|
+
"description": "Opaque 30-day Playground share capability.",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"expiresAtMs": {
|
|
8
|
+
"type": "integer",
|
|
9
|
+
"format": "uint64",
|
|
10
|
+
"minimum": 0
|
|
11
|
+
},
|
|
12
|
+
"shareToken": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"format": "uuid"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"additionalProperties": false,
|
|
18
|
+
"required": [
|
|
19
|
+
"shareToken",
|
|
20
|
+
"expiresAtMs"
|
|
21
|
+
]
|
|
22
|
+
}
|
|
@@ -11,6 +11,26 @@
|
|
|
11
11
|
"concede"
|
|
12
12
|
]
|
|
13
13
|
},
|
|
14
|
+
{
|
|
15
|
+
"type": "object",
|
|
16
|
+
"properties": {
|
|
17
|
+
"playground": {
|
|
18
|
+
"type": "object",
|
|
19
|
+
"properties": {
|
|
20
|
+
"command": {
|
|
21
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/PlaygroundCommand"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"required": [
|
|
25
|
+
"command"
|
|
26
|
+
]
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"additionalProperties": false,
|
|
30
|
+
"required": [
|
|
31
|
+
"playground"
|
|
32
|
+
]
|
|
33
|
+
},
|
|
14
34
|
{
|
|
15
35
|
"type": "object",
|
|
16
36
|
"properties": {
|
|
@@ -165,6 +165,21 @@
|
|
|
165
165
|
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/SeatState"
|
|
166
166
|
}
|
|
167
167
|
},
|
|
168
|
+
"playground": {
|
|
169
|
+
"description": "Whether this snapshot belongs to a server-authorized Playground match.",
|
|
170
|
+
"type": "boolean",
|
|
171
|
+
"default": false
|
|
172
|
+
},
|
|
173
|
+
"playgroundDeckCardIds": {
|
|
174
|
+
"description": "Printed cards supplied by every configured Playground deck.",
|
|
175
|
+
"type": "array",
|
|
176
|
+
"default": [],
|
|
177
|
+
"items": {
|
|
178
|
+
"type": "integer",
|
|
179
|
+
"format": "uint32",
|
|
180
|
+
"minimum": 0
|
|
181
|
+
}
|
|
182
|
+
},
|
|
168
183
|
"prompt": {
|
|
169
184
|
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/PromptState"
|
|
170
185
|
},
|
package/schema/manifest.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "
|
|
2
|
+
"version": "0ae978dcaa4b3cbec5778eb3174a0126f642b3d441a76d97dc48044416d4ae06",
|
|
3
3
|
"files": [
|
|
4
4
|
"admin-match-list-response.schema.json",
|
|
5
5
|
"admin-match-debug-bundle.schema.json",
|
|
@@ -96,6 +96,9 @@
|
|
|
96
96
|
"rematch-match-response.schema.json",
|
|
97
97
|
"set-ai-paused-request.schema.json",
|
|
98
98
|
"set-ai-paused-response.schema.json",
|
|
99
|
+
"set-playground-ai-seat-request.schema.json",
|
|
100
|
+
"playground-export-payload.schema.json",
|
|
101
|
+
"create-playground-share-response.schema.json",
|
|
99
102
|
"get-match-response.schema.json",
|
|
100
103
|
"match-history-list-request.schema.json",
|
|
101
104
|
"match-history-list-response.schema.json",
|
|
@@ -15,6 +15,14 @@
|
|
|
15
15
|
"description": "Whether AI was manually paused when this snapshot was captured.",
|
|
16
16
|
"type": "boolean"
|
|
17
17
|
},
|
|
18
|
+
"aiPausedSeats": {
|
|
19
|
+
"description": "Exact manually paused AI seats. Empty payloads from older clients use\n`ai_paused` as the all-seat compatibility fallback.",
|
|
20
|
+
"type": "array",
|
|
21
|
+
"default": [],
|
|
22
|
+
"items": {
|
|
23
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
|
|
24
|
+
}
|
|
25
|
+
},
|
|
18
26
|
"copiedCards": {
|
|
19
27
|
"description": "Wire mirror of the [`UnitState::copied_card`] Arcs that the inner\nstate could not embed. Keyed by `unit.instance_id`. Empty when no\nactive unit has a copied card.",
|
|
20
28
|
"type": "array",
|