@my-swu/simulator-client 0.1.5 → 0.1.7
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/README.md +29 -0
- package/dist/client.js +6 -1
- package/dist/connection/url.d.ts +2 -0
- package/dist/connection/url.js +4 -0
- package/dist/generated/index.d.ts +4 -0
- package/dist/generated/schemas.d.ts +1 -1
- package/dist/generated/schemas.js +2412 -1434
- package/dist/generated/types/admin-match-debug-bundle.d.ts +1 -1
- package/dist/generated/types/admin-match-list-response.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 +524 -260
- package/dist/generated/types/create-limited-event-request.d.ts +1 -1
- package/dist/generated/types/format-event-response.d.ts +1 -1
- package/dist/generated/types/game-command.d.ts +1 -1
- package/dist/generated/types/game-event.d.ts +1 -1
- package/dist/generated/types/game-state.d.ts +1 -1
- package/dist/generated/types/get-match-response.d.ts +1 -1
- package/dist/generated/types/leave-limited-event-request.d.ts +1 -0
- package/dist/generated/types/leave-limited-event-request.js +2 -0
- package/dist/generated/types/limited-event-server-message.d.ts +1 -0
- package/dist/generated/types/limited-event-server-message.js +2 -0
- package/dist/generated/types/list-active-ai-matches-response.d.ts +1 -1
- package/dist/generated/types/lobby-access-response.d.ts +1 -1
- package/dist/generated/types/lobby-chat-response.d.ts +1 -1
- package/dist/generated/types/lobby-response.d.ts +1 -1
- package/dist/generated/types/lobby-server-message.d.ts +1 -1
- package/dist/generated/types/match-access-recovery-response.d.ts +1 -1
- package/dist/generated/types/match-access-response.d.ts +1 -1
- package/dist/generated/types/match-history-replay-response.d.ts +1 -1
- package/dist/generated/types/match-recovery-response.d.ts +1 -1
- package/dist/generated/types/match-spectator-access-response.d.ts +1 -1
- package/dist/generated/types/rematch-match-response.d.ts +1 -1
- package/dist/generated/types/restore-history-response.d.ts +1 -1
- package/dist/generated/types/restore-match-save-response.d.ts +1 -1
- package/dist/generated/types/server-message.d.ts +1 -1
- package/dist/generated/types/shared-match-history-replay-response.d.ts +1 -1
- package/dist/generated/types/submit-ai-game-feedback-request.d.ts +1 -0
- package/dist/generated/types/submit-ai-game-feedback-request.js +2 -0
- package/dist/generated/types/submit-ai-game-feedback-response.d.ts +1 -0
- package/dist/generated/types/submit-ai-game-feedback-response.js +2 -0
- package/dist/generated/types/submit-match-deck-response.d.ts +1 -1
- package/dist/generated/types/tournament-room-access-response.d.ts +1 -1
- package/dist/generated/types/tournament-room-server-message.d.ts +1 -1
- package/dist/generated/types/undo-match-response.d.ts +1 -1
- package/dist/generated/types/update-lobby-settings-request.d.ts +1 -1
- package/dist/generated/version.d.ts +1 -1
- package/dist/generated/version.js +1 -1
- package/dist/http/request.d.ts +2 -0
- package/dist/http/request.js +9 -1
- package/dist/i18n/card-print-catalog.d.ts +9 -0
- package/dist/i18n/card-print-catalog.js +260 -0
- package/dist/i18n/catalog.d.ts +8 -0
- package/dist/i18n/catalog.js +195 -0
- package/dist/i18n/diagnostics.d.ts +6 -0
- package/dist/i18n/diagnostics.js +19 -0
- package/dist/i18n/fallback.d.ts +3 -0
- package/dist/i18n/fallback.js +40 -0
- package/dist/i18n/format.d.ts +8 -0
- package/dist/i18n/format.js +29 -0
- package/dist/i18n/generated/message-types.d.ts +91 -0
- package/dist/i18n/generated/message-types.js +3 -0
- package/dist/i18n/icu.d.ts +12 -0
- package/dist/i18n/icu.js +75 -0
- package/dist/i18n/index.d.ts +9 -0
- package/dist/i18n/index.js +5 -0
- package/dist/i18n/locale.d.ts +9 -0
- package/dist/i18n/locale.js +19 -0
- package/dist/i18n/types.d.ts +151 -0
- package/dist/i18n/types.js +1 -0
- package/dist/index.d.ts +5 -4
- package/dist/internal/authenticated-socket-session.d.ts +2 -0
- package/dist/internal/authenticated-socket-session.js +3 -1
- package/dist/local/client.js +7 -2
- package/dist/local/server/http-router.js +18 -0
- package/dist/resources/admin.d.ts +8 -0
- package/dist/resources/admin.js +2 -0
- package/dist/resources/limited-event-session.d.ts +10 -0
- package/dist/resources/limited-event-session.js +35 -0
- package/dist/resources/limited-event-types.d.ts +34 -1
- package/dist/resources/limited-events.d.ts +8 -1
- package/dist/resources/limited-events.js +18 -1
- package/dist/resources/lobbies.d.ts +1 -1
- package/dist/resources/lobbies.js +1 -1
- package/dist/resources/lobby-types.d.ts +15 -2
- package/dist/resources/match-history.d.ts +8 -1
- package/dist/resources/match-history.js +10 -0
- package/dist/resources/tournament-rooms.d.ts +1 -1
- package/dist/resources/tournament-rooms.js +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/validators.d.ts +5 -1
- package/i18n/cards/de.json +121 -0
- package/i18n/cards/en.json +121 -0
- package/i18n/cards/es.json +121 -0
- package/i18n/cards/fr.json +121 -0
- package/i18n/cards/it.json +121 -0
- package/i18n/cards/manifest.json +2715 -0
- package/i18n/de.json +11 -0
- package/i18n/en.json +11 -0
- package/i18n/es.json +11 -0
- package/i18n/fr.json +11 -0
- package/i18n/it.json +11 -0
- package/i18n/messages.schema.json +28 -0
- package/package.json +12 -2
- package/schema/common.schema.json +1684 -1005
- package/schema/create-limited-event-request.schema.json +11 -0
- package/schema/game-event.schema.json +76 -0
- package/schema/game-state.schema.json +8 -0
- package/schema/leave-limited-event-request.schema.json +15 -0
- package/schema/limited-event-server-message.schema.json +63 -0
- package/schema/manifest.json +5 -1
- package/schema/match-save-payload.schema.json +1 -1
- package/schema/route-manifest.json +54 -0
- package/schema/submit-ai-game-feedback-request.schema.json +36 -0
- package/schema/submit-ai-game-feedback-response.schema.json +19 -0
- package/schema/update-lobby-settings-request.schema.json +67 -0
|
@@ -81,6 +81,32 @@
|
|
|
81
81
|
"seat"
|
|
82
82
|
]
|
|
83
83
|
},
|
|
84
|
+
{
|
|
85
|
+
"description": "One physical leader slot; legacy `Leader` continues to identify slot zero.",
|
|
86
|
+
"type": "object",
|
|
87
|
+
"properties": {
|
|
88
|
+
"leaderIndex": {
|
|
89
|
+
"description": "Zero-based position in that player's leader list.",
|
|
90
|
+
"type": "integer",
|
|
91
|
+
"format": "uint8",
|
|
92
|
+
"maximum": 255,
|
|
93
|
+
"minimum": 0
|
|
94
|
+
},
|
|
95
|
+
"seat": {
|
|
96
|
+
"description": "Player who owns the leader slot.",
|
|
97
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
|
|
98
|
+
},
|
|
99
|
+
"type": {
|
|
100
|
+
"type": "string",
|
|
101
|
+
"const": "leaderByIndex"
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
"required": [
|
|
105
|
+
"type",
|
|
106
|
+
"seat",
|
|
107
|
+
"leaderIndex"
|
|
108
|
+
]
|
|
109
|
+
},
|
|
84
110
|
{
|
|
85
111
|
"type": "object",
|
|
86
112
|
"properties": {
|
|
@@ -116,7 +142,7 @@
|
|
|
116
142
|
]
|
|
117
143
|
},
|
|
118
144
|
"AbilityWindow": {
|
|
119
|
-
"description": "Trigger window for a parsed ability. Identifies WHEN the ability\nfires; the WHAT is carried by `TriggeredEffect
|
|
145
|
+
"description": "Trigger window for a parsed ability. Identifies WHEN the ability\nfires; the WHAT is carried by `TriggeredEffect`.\n\nThis type is on the public SDK schema — it reaches `GameState` through\n`PendingAbilityView.window` and `GameEvent` — but only ever server to\nclient: no `GameCommand` carries one, so a consumer reads it and never\nconstructs it. The two variants that carry a [`crate::effect::UnitFilter`]\nare therefore exported opaquely, the way `MatchSavePayload::state` is: the\nvariant discriminant stays on the wire so a UI can still switch on the\nwindow, while the engine filter behind it does not pin ~60 internal fields\nand their whole reference closure into the SDK type surface.",
|
|
120
146
|
"oneOf": [
|
|
121
147
|
{
|
|
122
148
|
"type": "string",
|
|
@@ -183,12 +209,10 @@
|
|
|
183
209
|
"const": "WhenFriendlyUnitDealtDamageAndSurvives"
|
|
184
210
|
},
|
|
185
211
|
{
|
|
186
|
-
"description": "Fires when a friendly Unit matching the typed filter takes combat damage\nand remains in play.",
|
|
212
|
+
"description": "Fires when a friendly Unit matching the typed filter takes combat damage\nand remains in play.\n\nOpaque to the public schema — see the type doc.",
|
|
187
213
|
"type": "object",
|
|
188
214
|
"properties": {
|
|
189
|
-
"WhenFriendlyUnitDealtCombatDamageAndSurvives":
|
|
190
|
-
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/UnitFilter"
|
|
191
|
-
}
|
|
215
|
+
"WhenFriendlyUnitDealtCombatDamageAndSurvives": true
|
|
192
216
|
},
|
|
193
217
|
"additionalProperties": false,
|
|
194
218
|
"required": [
|
|
@@ -263,12 +287,10 @@
|
|
|
263
287
|
"const": "WhenThisUnitWouldBeCaptured"
|
|
264
288
|
},
|
|
265
289
|
{
|
|
266
|
-
"description": "Fires when a Unit matching the typed filter is defeated.",
|
|
290
|
+
"description": "Fires when a Unit matching the typed filter is defeated.\n\nOpaque to the public schema — see the type doc.",
|
|
267
291
|
"type": "object",
|
|
268
292
|
"properties": {
|
|
269
|
-
"WhenUnitDefeated":
|
|
270
|
-
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/UnitFilter"
|
|
271
|
-
}
|
|
293
|
+
"WhenUnitDefeated": true
|
|
272
294
|
},
|
|
273
295
|
"additionalProperties": false,
|
|
274
296
|
"required": [
|
|
@@ -348,6 +370,7 @@
|
|
|
348
370
|
"ActionAbilitySource": {
|
|
349
371
|
"oneOf": [
|
|
350
372
|
{
|
|
373
|
+
"description": "Legacy primary-leader action source.\n\nKept for wire compatibility with saved commands and older clients.",
|
|
351
374
|
"type": "object",
|
|
352
375
|
"properties": {
|
|
353
376
|
"type": {
|
|
@@ -359,6 +382,27 @@
|
|
|
359
382
|
"type"
|
|
360
383
|
]
|
|
361
384
|
},
|
|
385
|
+
{
|
|
386
|
+
"description": "One non-primary undeployed leader's printed action.\n\nTwin Suns players can have multiple leader cards. The primary source\nremains `Leader` for backwards compatibility, while every extra slot\ncarries its stable zero-based placement index.",
|
|
387
|
+
"type": "object",
|
|
388
|
+
"properties": {
|
|
389
|
+
"leaderIndex": {
|
|
390
|
+
"description": "Non-primary leader slots start at one; slot zero uses legacy `Leader`.",
|
|
391
|
+
"type": "integer",
|
|
392
|
+
"format": "uint8",
|
|
393
|
+
"maximum": 255,
|
|
394
|
+
"minimum": 1
|
|
395
|
+
},
|
|
396
|
+
"type": {
|
|
397
|
+
"type": "string",
|
|
398
|
+
"const": "leaderByIndex"
|
|
399
|
+
}
|
|
400
|
+
},
|
|
401
|
+
"required": [
|
|
402
|
+
"type",
|
|
403
|
+
"leaderIndex"
|
|
404
|
+
]
|
|
405
|
+
},
|
|
362
406
|
{
|
|
363
407
|
"type": "object",
|
|
364
408
|
"properties": {
|
|
@@ -461,6 +505,16 @@
|
|
|
461
505
|
"label": {
|
|
462
506
|
"type": "string"
|
|
463
507
|
},
|
|
508
|
+
"modeChoice": {
|
|
509
|
+
"anyOf": [
|
|
510
|
+
{
|
|
511
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/ModeChoiceView"
|
|
512
|
+
},
|
|
513
|
+
{
|
|
514
|
+
"type": "null"
|
|
515
|
+
}
|
|
516
|
+
]
|
|
517
|
+
},
|
|
464
518
|
"source": {
|
|
465
519
|
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/ActionAbilitySource"
|
|
466
520
|
},
|
|
@@ -469,6 +523,17 @@
|
|
|
469
523
|
"items": {
|
|
470
524
|
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/TargetSelectionGroup"
|
|
471
525
|
}
|
|
526
|
+
},
|
|
527
|
+
"text": {
|
|
528
|
+
"description": "Exact public Action or Epic Action declaration when migrated.",
|
|
529
|
+
"anyOf": [
|
|
530
|
+
{
|
|
531
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
|
|
532
|
+
},
|
|
533
|
+
{
|
|
534
|
+
"type": "null"
|
|
535
|
+
}
|
|
536
|
+
]
|
|
472
537
|
}
|
|
473
538
|
},
|
|
474
539
|
"required": [
|
|
@@ -988,6 +1053,17 @@
|
|
|
988
1053
|
"items": {
|
|
989
1054
|
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTargetView"
|
|
990
1055
|
}
|
|
1056
|
+
},
|
|
1057
|
+
"text": {
|
|
1058
|
+
"description": "Reviewed card-text and shared-message provenance when this public row\nwas created by a resolving instruction. Absence means this registry\ndoes not retain a display declaration, never that text was inferred.",
|
|
1059
|
+
"anyOf": [
|
|
1060
|
+
{
|
|
1061
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
|
|
1062
|
+
},
|
|
1063
|
+
{
|
|
1064
|
+
"type": "null"
|
|
1065
|
+
}
|
|
1066
|
+
]
|
|
991
1067
|
}
|
|
992
1068
|
},
|
|
993
1069
|
"required": [
|
|
@@ -1001,6 +1077,13 @@
|
|
|
1001
1077
|
"description": "Compact durable match data safe for an administrator list view.",
|
|
1002
1078
|
"type": "object",
|
|
1003
1079
|
"properties": {
|
|
1080
|
+
"aiFeedback": {
|
|
1081
|
+
"description": "Feedback collected for individual completed AI games in this match.",
|
|
1082
|
+
"type": "array",
|
|
1083
|
+
"items": {
|
|
1084
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/AiGameFeedback"
|
|
1085
|
+
}
|
|
1086
|
+
},
|
|
1004
1087
|
"completedAtMs": {
|
|
1005
1088
|
"type": [
|
|
1006
1089
|
"integer",
|
|
@@ -1058,7 +1141,8 @@
|
|
|
1058
1141
|
"series",
|
|
1059
1142
|
"createdAtMs",
|
|
1060
1143
|
"updatedAtMs",
|
|
1061
|
-
"replayAvailable"
|
|
1144
|
+
"replayAvailable",
|
|
1145
|
+
"aiFeedback"
|
|
1062
1146
|
]
|
|
1063
1147
|
},
|
|
1064
1148
|
"AiDecisionDiagnostic": {
|
|
@@ -1264,6 +1348,46 @@
|
|
|
1264
1348
|
}
|
|
1265
1349
|
]
|
|
1266
1350
|
},
|
|
1351
|
+
"AiGameFeedback": {
|
|
1352
|
+
"description": "One immutable player assessment of an AI opponent for a completed game.",
|
|
1353
|
+
"type": "object",
|
|
1354
|
+
"properties": {
|
|
1355
|
+
"comments": {
|
|
1356
|
+
"type": [
|
|
1357
|
+
"string",
|
|
1358
|
+
"null"
|
|
1359
|
+
]
|
|
1360
|
+
},
|
|
1361
|
+
"gameNumber": {
|
|
1362
|
+
"type": "integer",
|
|
1363
|
+
"format": "uint8",
|
|
1364
|
+
"maximum": 255,
|
|
1365
|
+
"minimum": 0
|
|
1366
|
+
},
|
|
1367
|
+
"rating": {
|
|
1368
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/AiGameFeedbackRating"
|
|
1369
|
+
},
|
|
1370
|
+
"submittedAtMs": {
|
|
1371
|
+
"type": "integer",
|
|
1372
|
+
"format": "uint64",
|
|
1373
|
+
"minimum": 0
|
|
1374
|
+
}
|
|
1375
|
+
},
|
|
1376
|
+
"required": [
|
|
1377
|
+
"gameNumber",
|
|
1378
|
+
"rating",
|
|
1379
|
+
"submittedAtMs"
|
|
1380
|
+
]
|
|
1381
|
+
},
|
|
1382
|
+
"AiGameFeedbackRating": {
|
|
1383
|
+
"description": "Rating submitted by a player after completing one Solo-versus-AI game.",
|
|
1384
|
+
"type": "string",
|
|
1385
|
+
"enum": [
|
|
1386
|
+
"poorly",
|
|
1387
|
+
"okay",
|
|
1388
|
+
"good"
|
|
1389
|
+
]
|
|
1390
|
+
},
|
|
1267
1391
|
"AiOpponentConfig": {
|
|
1268
1392
|
"description": "Explicit AI seat configuration.",
|
|
1269
1393
|
"type": "object",
|
|
@@ -1955,6 +2079,32 @@
|
|
|
1955
2079
|
"title"
|
|
1956
2080
|
]
|
|
1957
2081
|
},
|
|
2082
|
+
"CardTextRef": {
|
|
2083
|
+
"type": "object",
|
|
2084
|
+
"properties": {
|
|
2085
|
+
"cardId": {
|
|
2086
|
+
"description": "Canonical card identity that owns this reviewed printed slot.",
|
|
2087
|
+
"type": "integer",
|
|
2088
|
+
"format": "uint32",
|
|
2089
|
+
"minimum": 0
|
|
2090
|
+
},
|
|
2091
|
+
"contractFingerprint": {
|
|
2092
|
+
"description": "Full semantic-contract fingerprint pinning this reference to reviewed text.",
|
|
2093
|
+
"type": "string",
|
|
2094
|
+
"pattern": "^[0-9A-Fa-f]{64}$"
|
|
2095
|
+
},
|
|
2096
|
+
"slot": {
|
|
2097
|
+
"description": "Durable reviewed slot identifier within the canonical card contract.",
|
|
2098
|
+
"type": "string",
|
|
2099
|
+
"minLength": 1
|
|
2100
|
+
}
|
|
2101
|
+
},
|
|
2102
|
+
"required": [
|
|
2103
|
+
"cardId",
|
|
2104
|
+
"slot",
|
|
2105
|
+
"contractFingerprint"
|
|
2106
|
+
]
|
|
2107
|
+
},
|
|
1958
2108
|
"CardType": {
|
|
1959
2109
|
"description": "Canonical card families from production card data.",
|
|
1960
2110
|
"type": "string",
|
|
@@ -2680,6 +2830,17 @@
|
|
|
2680
2830
|
],
|
|
2681
2831
|
"format": "uint32",
|
|
2682
2832
|
"minimum": 0
|
|
2833
|
+
},
|
|
2834
|
+
"text": {
|
|
2835
|
+
"description": "Reviewed text retained by the delayed follow-up when it was created.",
|
|
2836
|
+
"anyOf": [
|
|
2837
|
+
{
|
|
2838
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
|
|
2839
|
+
},
|
|
2840
|
+
{
|
|
2841
|
+
"type": "null"
|
|
2842
|
+
}
|
|
2843
|
+
]
|
|
2683
2844
|
}
|
|
2684
2845
|
},
|
|
2685
2846
|
"required": [
|
|
@@ -2830,6 +2991,17 @@
|
|
|
2830
2991
|
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTargetView"
|
|
2831
2992
|
}
|
|
2832
2993
|
},
|
|
2994
|
+
"text": {
|
|
2995
|
+
"description": "Reviewed card-text and shared-message provenance for this public row.",
|
|
2996
|
+
"anyOf": [
|
|
2997
|
+
{
|
|
2998
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
|
|
2999
|
+
},
|
|
3000
|
+
{
|
|
3001
|
+
"type": "null"
|
|
3002
|
+
}
|
|
3003
|
+
]
|
|
3004
|
+
},
|
|
2833
3005
|
"timing": {
|
|
2834
3006
|
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/DelayedEffectTimingView"
|
|
2835
3007
|
}
|
|
@@ -2984,6 +3156,44 @@
|
|
|
2984
3156
|
"advantage"
|
|
2985
3157
|
]
|
|
2986
3158
|
},
|
|
3159
|
+
"DraftLobbyTimerSettings": {
|
|
3160
|
+
"description": "Draft pick schedule. Vectors are ordered by remaining choices: leader\nvalues cover 2 through 8, pack values cover 2 through 14.",
|
|
3161
|
+
"type": "object",
|
|
3162
|
+
"properties": {
|
|
3163
|
+
"leaderPickSeconds": {
|
|
3164
|
+
"description": "Leader-pick duration in seconds for 2 through 8 leaders remaining.",
|
|
3165
|
+
"type": "array",
|
|
3166
|
+
"items": {
|
|
3167
|
+
"type": "integer",
|
|
3168
|
+
"format": "uint16",
|
|
3169
|
+
"maximum": 65535,
|
|
3170
|
+
"minimum": 0
|
|
3171
|
+
}
|
|
3172
|
+
},
|
|
3173
|
+
"packPickSeconds": {
|
|
3174
|
+
"description": "Pack-pick duration in seconds for 2 through 14 cards remaining.",
|
|
3175
|
+
"type": "array",
|
|
3176
|
+
"items": {
|
|
3177
|
+
"type": "integer",
|
|
3178
|
+
"format": "uint16",
|
|
3179
|
+
"maximum": 65535,
|
|
3180
|
+
"minimum": 0
|
|
3181
|
+
}
|
|
3182
|
+
},
|
|
3183
|
+
"reviewSeconds": {
|
|
3184
|
+
"description": "Review duration between booster packs in seconds.",
|
|
3185
|
+
"type": "integer",
|
|
3186
|
+
"format": "uint16",
|
|
3187
|
+
"maximum": 65535,
|
|
3188
|
+
"minimum": 0
|
|
3189
|
+
}
|
|
3190
|
+
},
|
|
3191
|
+
"required": [
|
|
3192
|
+
"leaderPickSeconds",
|
|
3193
|
+
"packPickSeconds",
|
|
3194
|
+
"reviewSeconds"
|
|
3195
|
+
]
|
|
3196
|
+
},
|
|
2987
3197
|
"DraftRoundConfig": {
|
|
2988
3198
|
"description": "One configured booster round for a chaos draft.",
|
|
2989
3199
|
"type": "object",
|
|
@@ -2997,32 +3207,6 @@
|
|
|
2997
3207
|
"setCode"
|
|
2998
3208
|
]
|
|
2999
3209
|
},
|
|
3000
|
-
"DynamicPowerLimit": {
|
|
3001
|
-
"description": "Typed game-state source for a dynamic Unit power ceiling.",
|
|
3002
|
-
"oneOf": [
|
|
3003
|
-
{
|
|
3004
|
-
"description": "Number of upgrades attached across units with this controller relation.",
|
|
3005
|
-
"type": "object",
|
|
3006
|
-
"properties": {
|
|
3007
|
-
"UpgradesOnUnits": {
|
|
3008
|
-
"type": "object",
|
|
3009
|
-
"properties": {
|
|
3010
|
-
"relation": {
|
|
3011
|
-
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/RelationFilter"
|
|
3012
|
-
}
|
|
3013
|
-
},
|
|
3014
|
-
"required": [
|
|
3015
|
-
"relation"
|
|
3016
|
-
]
|
|
3017
|
-
}
|
|
3018
|
-
},
|
|
3019
|
-
"additionalProperties": false,
|
|
3020
|
-
"required": [
|
|
3021
|
-
"UpgradesOnUnits"
|
|
3022
|
-
]
|
|
3023
|
-
}
|
|
3024
|
-
]
|
|
3025
|
-
},
|
|
3026
3210
|
"EffectCardScopeView": {
|
|
3027
3211
|
"description": "Public card subset affected by a play or cost modifier.",
|
|
3028
3212
|
"oneOf": [
|
|
@@ -3158,6 +3342,16 @@
|
|
|
3158
3342
|
},
|
|
3159
3343
|
"stepId": {
|
|
3160
3344
|
"type": "string"
|
|
3345
|
+
},
|
|
3346
|
+
"text": {
|
|
3347
|
+
"anyOf": [
|
|
3348
|
+
{
|
|
3349
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
|
|
3350
|
+
},
|
|
3351
|
+
{
|
|
3352
|
+
"type": "null"
|
|
3353
|
+
}
|
|
3354
|
+
]
|
|
3161
3355
|
}
|
|
3162
3356
|
},
|
|
3163
3357
|
"required": [
|
|
@@ -3190,6 +3384,16 @@
|
|
|
3190
3384
|
},
|
|
3191
3385
|
"stepId": {
|
|
3192
3386
|
"type": "string"
|
|
3387
|
+
},
|
|
3388
|
+
"text": {
|
|
3389
|
+
"anyOf": [
|
|
3390
|
+
{
|
|
3391
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
|
|
3392
|
+
},
|
|
3393
|
+
{
|
|
3394
|
+
"type": "null"
|
|
3395
|
+
}
|
|
3396
|
+
]
|
|
3193
3397
|
}
|
|
3194
3398
|
},
|
|
3195
3399
|
"required": [
|
|
@@ -3213,6 +3417,20 @@
|
|
|
3213
3417
|
"label": {
|
|
3214
3418
|
"type": "string"
|
|
3215
3419
|
},
|
|
3420
|
+
"modeTextReferences": {
|
|
3421
|
+
"description": "Exact reviewed Mode wrappers for every selected executable option.",
|
|
3422
|
+
"type": "array",
|
|
3423
|
+
"items": {
|
|
3424
|
+
"anyOf": [
|
|
3425
|
+
{
|
|
3426
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/CardTextRef"
|
|
3427
|
+
},
|
|
3428
|
+
{
|
|
3429
|
+
"type": "null"
|
|
3430
|
+
}
|
|
3431
|
+
]
|
|
3432
|
+
}
|
|
3433
|
+
},
|
|
3216
3434
|
"selected": {
|
|
3217
3435
|
"type": "array",
|
|
3218
3436
|
"items": {
|
|
@@ -3223,6 +3441,16 @@
|
|
|
3223
3441
|
},
|
|
3224
3442
|
"stepId": {
|
|
3225
3443
|
"type": "string"
|
|
3444
|
+
},
|
|
3445
|
+
"text": {
|
|
3446
|
+
"anyOf": [
|
|
3447
|
+
{
|
|
3448
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
|
|
3449
|
+
},
|
|
3450
|
+
{
|
|
3451
|
+
"type": "null"
|
|
3452
|
+
}
|
|
3453
|
+
]
|
|
3226
3454
|
}
|
|
3227
3455
|
},
|
|
3228
3456
|
"required": [
|
|
@@ -3256,6 +3484,16 @@
|
|
|
3256
3484
|
},
|
|
3257
3485
|
"stepId": {
|
|
3258
3486
|
"type": "string"
|
|
3487
|
+
},
|
|
3488
|
+
"text": {
|
|
3489
|
+
"anyOf": [
|
|
3490
|
+
{
|
|
3491
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
|
|
3492
|
+
},
|
|
3493
|
+
{
|
|
3494
|
+
"type": "null"
|
|
3495
|
+
}
|
|
3496
|
+
]
|
|
3259
3497
|
}
|
|
3260
3498
|
},
|
|
3261
3499
|
"required": [
|
|
@@ -3284,6 +3522,16 @@
|
|
|
3284
3522
|
},
|
|
3285
3523
|
"stepId": {
|
|
3286
3524
|
"type": "string"
|
|
3525
|
+
},
|
|
3526
|
+
"text": {
|
|
3527
|
+
"anyOf": [
|
|
3528
|
+
{
|
|
3529
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
|
|
3530
|
+
},
|
|
3531
|
+
{
|
|
3532
|
+
"type": "null"
|
|
3533
|
+
}
|
|
3534
|
+
]
|
|
3287
3535
|
}
|
|
3288
3536
|
},
|
|
3289
3537
|
"required": [
|
|
@@ -3312,6 +3560,16 @@
|
|
|
3312
3560
|
},
|
|
3313
3561
|
"stepId": {
|
|
3314
3562
|
"type": "string"
|
|
3563
|
+
},
|
|
3564
|
+
"text": {
|
|
3565
|
+
"anyOf": [
|
|
3566
|
+
{
|
|
3567
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
|
|
3568
|
+
},
|
|
3569
|
+
{
|
|
3570
|
+
"type": "null"
|
|
3571
|
+
}
|
|
3572
|
+
]
|
|
3315
3573
|
}
|
|
3316
3574
|
},
|
|
3317
3575
|
"required": [
|
|
@@ -3345,6 +3603,16 @@
|
|
|
3345
3603
|
},
|
|
3346
3604
|
"target": {
|
|
3347
3605
|
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/AttackTarget"
|
|
3606
|
+
},
|
|
3607
|
+
"text": {
|
|
3608
|
+
"anyOf": [
|
|
3609
|
+
{
|
|
3610
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
|
|
3611
|
+
},
|
|
3612
|
+
{
|
|
3613
|
+
"type": "null"
|
|
3614
|
+
}
|
|
3615
|
+
]
|
|
3348
3616
|
}
|
|
3349
3617
|
},
|
|
3350
3618
|
"required": [
|
|
@@ -3377,6 +3645,16 @@
|
|
|
3377
3645
|
},
|
|
3378
3646
|
"stepId": {
|
|
3379
3647
|
"type": "string"
|
|
3648
|
+
},
|
|
3649
|
+
"text": {
|
|
3650
|
+
"anyOf": [
|
|
3651
|
+
{
|
|
3652
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
|
|
3653
|
+
},
|
|
3654
|
+
{
|
|
3655
|
+
"type": "null"
|
|
3656
|
+
}
|
|
3657
|
+
]
|
|
3380
3658
|
}
|
|
3381
3659
|
},
|
|
3382
3660
|
"required": [
|
|
@@ -3413,6 +3691,17 @@
|
|
|
3413
3691
|
"description": "Printed label of originating effect, retained for descendants.",
|
|
3414
3692
|
"type": "string"
|
|
3415
3693
|
},
|
|
3694
|
+
"originText": {
|
|
3695
|
+
"description": "Exact reviewed text owner for the originating command.",
|
|
3696
|
+
"anyOf": [
|
|
3697
|
+
{
|
|
3698
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
|
|
3699
|
+
},
|
|
3700
|
+
{
|
|
3701
|
+
"type": "null"
|
|
3702
|
+
}
|
|
3703
|
+
]
|
|
3704
|
+
},
|
|
3416
3705
|
"sourceCardId": {
|
|
3417
3706
|
"type": "integer",
|
|
3418
3707
|
"format": "uint32",
|
|
@@ -3574,11 +3863,35 @@
|
|
|
3574
3863
|
]
|
|
3575
3864
|
},
|
|
3576
3865
|
{
|
|
3866
|
+
"description": "Exact physical leader slot affected by this effect.",
|
|
3577
3867
|
"type": "object",
|
|
3578
3868
|
"properties": {
|
|
3579
|
-
"
|
|
3580
|
-
"
|
|
3581
|
-
|
|
3869
|
+
"leaderIndex": {
|
|
3870
|
+
"type": "integer",
|
|
3871
|
+
"format": "uint8",
|
|
3872
|
+
"maximum": 255,
|
|
3873
|
+
"minimum": 0
|
|
3874
|
+
},
|
|
3875
|
+
"seat": {
|
|
3876
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
|
|
3877
|
+
},
|
|
3878
|
+
"type": {
|
|
3879
|
+
"type": "string",
|
|
3880
|
+
"const": "leaderByIndex"
|
|
3881
|
+
}
|
|
3882
|
+
},
|
|
3883
|
+
"required": [
|
|
3884
|
+
"type",
|
|
3885
|
+
"seat",
|
|
3886
|
+
"leaderIndex"
|
|
3887
|
+
]
|
|
3888
|
+
},
|
|
3889
|
+
{
|
|
3890
|
+
"type": "object",
|
|
3891
|
+
"properties": {
|
|
3892
|
+
"seat": {
|
|
3893
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
|
|
3894
|
+
},
|
|
3582
3895
|
"type": {
|
|
3583
3896
|
"type": "string",
|
|
3584
3897
|
"const": "base"
|
|
@@ -3626,6 +3939,48 @@
|
|
|
3626
3939
|
}
|
|
3627
3940
|
]
|
|
3628
3941
|
},
|
|
3942
|
+
"EffectTextRefsView": {
|
|
3943
|
+
"description": "Locale-neutral reviewed text that owns visible effect work.\n\nClients resolve these catalog references in their selected locale. Empty\nfields mean runtime work came from an unmigrated declaration; they never\nauthorize reconstructing English from a label. Explicit system messages\nremain present in `shared_messages` instead of being mistaken for absence.",
|
|
3944
|
+
"type": "object",
|
|
3945
|
+
"properties": {
|
|
3946
|
+
"ability": {
|
|
3947
|
+
"description": "Printed ability that created this resolution.",
|
|
3948
|
+
"anyOf": [
|
|
3949
|
+
{
|
|
3950
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/CardTextRef"
|
|
3951
|
+
},
|
|
3952
|
+
{
|
|
3953
|
+
"type": "null"
|
|
3954
|
+
}
|
|
3955
|
+
]
|
|
3956
|
+
},
|
|
3957
|
+
"effects": {
|
|
3958
|
+
"description": "Nested printed effects enclosing this visible work, outermost first.",
|
|
3959
|
+
"type": "array",
|
|
3960
|
+
"items": {
|
|
3961
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/CardTextRef"
|
|
3962
|
+
}
|
|
3963
|
+
},
|
|
3964
|
+
"selectedMode": {
|
|
3965
|
+
"description": "Printed mode selected before the current continuation, if any.",
|
|
3966
|
+
"anyOf": [
|
|
3967
|
+
{
|
|
3968
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/CardTextRef"
|
|
3969
|
+
},
|
|
3970
|
+
{
|
|
3971
|
+
"type": "null"
|
|
3972
|
+
}
|
|
3973
|
+
]
|
|
3974
|
+
},
|
|
3975
|
+
"sharedMessages": {
|
|
3976
|
+
"description": "Finite SDK messages explicitly declared for this outcome.",
|
|
3977
|
+
"type": "array",
|
|
3978
|
+
"items": {
|
|
3979
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/SimulatorMessage"
|
|
3980
|
+
}
|
|
3981
|
+
}
|
|
3982
|
+
}
|
|
3983
|
+
},
|
|
3629
3984
|
"ErrorPayload": {
|
|
3630
3985
|
"type": "object",
|
|
3631
3986
|
"properties": {
|
|
@@ -3658,6 +4013,51 @@
|
|
|
3658
4013
|
"message"
|
|
3659
4014
|
]
|
|
3660
4015
|
},
|
|
4016
|
+
"EventPlayInputProvenance": {
|
|
4017
|
+
"description": "Reviewed printed ownership for inputs accepted by one event-play command.\n\nTarget groups retain their native ownership/order. Mode references stay\nposition-aligned with submitted mode indexes, including legacy `None`\nentries, so sparse bindings never shift a selected option's identity.",
|
|
4018
|
+
"type": "object",
|
|
4019
|
+
"properties": {
|
|
4020
|
+
"modeTextReferences": {
|
|
4021
|
+
"description": "One explicit Mode reference per submitted mode index, in command order.",
|
|
4022
|
+
"type": "array",
|
|
4023
|
+
"items": {
|
|
4024
|
+
"anyOf": [
|
|
4025
|
+
{
|
|
4026
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/CardTextRef"
|
|
4027
|
+
},
|
|
4028
|
+
{
|
|
4029
|
+
"type": "null"
|
|
4030
|
+
}
|
|
4031
|
+
]
|
|
4032
|
+
}
|
|
4033
|
+
},
|
|
4034
|
+
"targetInputs": {
|
|
4035
|
+
"description": "One compact ownership record per submitted target or capture pair, in\ncommand order.\n\nThis intentionally excludes target candidates and the selected target\nitself. Event history needs printed ownership, while candidate lists can\nreveal hidden resources and live board information.",
|
|
4036
|
+
"type": "array",
|
|
4037
|
+
"items": {
|
|
4038
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EventPlayTargetInputProvenance"
|
|
4039
|
+
}
|
|
4040
|
+
}
|
|
4041
|
+
}
|
|
4042
|
+
},
|
|
4043
|
+
"EventPlayTargetInputProvenance": {
|
|
4044
|
+
"description": "Printed ownership for one submitted event target.",
|
|
4045
|
+
"type": "object",
|
|
4046
|
+
"properties": {
|
|
4047
|
+
"purpose": {
|
|
4048
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/TargetGroupPurpose"
|
|
4049
|
+
},
|
|
4050
|
+
"textReferences": {
|
|
4051
|
+
"type": "array",
|
|
4052
|
+
"items": {
|
|
4053
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/CardTextRef"
|
|
4054
|
+
}
|
|
4055
|
+
}
|
|
4056
|
+
},
|
|
4057
|
+
"required": [
|
|
4058
|
+
"purpose"
|
|
4059
|
+
]
|
|
4060
|
+
},
|
|
3661
4061
|
"ExploitOptionsView": {
|
|
3662
4062
|
"type": "object",
|
|
3663
4063
|
"properties": {
|
|
@@ -5286,11 +5686,33 @@
|
|
|
5286
5686
|
"format": "uint32",
|
|
5287
5687
|
"minimum": 0
|
|
5288
5688
|
},
|
|
5689
|
+
"inputProvenance": {
|
|
5690
|
+
"description": "Exact reviewed owners for inputs supplied while playing this event.\n\nThis is emitted only for migrated declarations. It captures the\nplay command before later event clauses can replace the active\nprompt, which lets draft/history consumers retain the source input\nrather than borrowing a descendant's text.",
|
|
5691
|
+
"anyOf": [
|
|
5692
|
+
{
|
|
5693
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EventPlayInputProvenance"
|
|
5694
|
+
},
|
|
5695
|
+
{
|
|
5696
|
+
"type": "null"
|
|
5697
|
+
}
|
|
5698
|
+
]
|
|
5699
|
+
},
|
|
5289
5700
|
"playedWithSmuggle": {
|
|
5290
5701
|
"type": "boolean"
|
|
5291
5702
|
},
|
|
5292
5703
|
"seat": {
|
|
5293
5704
|
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
|
|
5705
|
+
},
|
|
5706
|
+
"text": {
|
|
5707
|
+
"description": "Exact printed event declaration exposed when this public event was played.",
|
|
5708
|
+
"anyOf": [
|
|
5709
|
+
{
|
|
5710
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
|
|
5711
|
+
},
|
|
5712
|
+
{
|
|
5713
|
+
"type": "null"
|
|
5714
|
+
}
|
|
5715
|
+
]
|
|
5294
5716
|
}
|
|
5295
5717
|
},
|
|
5296
5718
|
"required": [
|
|
@@ -5757,6 +6179,38 @@
|
|
|
5757
6179
|
"cardsRevealed"
|
|
5758
6180
|
]
|
|
5759
6181
|
},
|
|
6182
|
+
{
|
|
6183
|
+
"description": "Public cards explicitly selected from a discard pile during ability resolution.",
|
|
6184
|
+
"type": "object",
|
|
6185
|
+
"properties": {
|
|
6186
|
+
"cardsChosenFromDiscard": {
|
|
6187
|
+
"type": "object",
|
|
6188
|
+
"properties": {
|
|
6189
|
+
"cardIds": {
|
|
6190
|
+
"description": "Printed card identities in command order; duplicates represent distinct copies.",
|
|
6191
|
+
"type": "array",
|
|
6192
|
+
"items": {
|
|
6193
|
+
"type": "integer",
|
|
6194
|
+
"format": "uint32",
|
|
6195
|
+
"minimum": 0
|
|
6196
|
+
}
|
|
6197
|
+
},
|
|
6198
|
+
"seat": {
|
|
6199
|
+
"description": "Player who made the selection, which may differ from the discard-pile owner.",
|
|
6200
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
|
|
6201
|
+
}
|
|
6202
|
+
},
|
|
6203
|
+
"required": [
|
|
6204
|
+
"seat",
|
|
6205
|
+
"cardIds"
|
|
6206
|
+
]
|
|
6207
|
+
}
|
|
6208
|
+
},
|
|
6209
|
+
"additionalProperties": false,
|
|
6210
|
+
"required": [
|
|
6211
|
+
"cardsChosenFromDiscard"
|
|
6212
|
+
]
|
|
6213
|
+
},
|
|
5760
6214
|
{
|
|
5761
6215
|
"type": "object",
|
|
5762
6216
|
"properties": {
|
|
@@ -5949,6 +6403,17 @@
|
|
|
5949
6403
|
"items": {
|
|
5950
6404
|
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/AbilityTarget"
|
|
5951
6405
|
}
|
|
6406
|
+
},
|
|
6407
|
+
"text": {
|
|
6408
|
+
"description": "Exact public Action or Epic Action declaration that was used.",
|
|
6409
|
+
"anyOf": [
|
|
6410
|
+
{
|
|
6411
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
|
|
6412
|
+
},
|
|
6413
|
+
{
|
|
6414
|
+
"type": "null"
|
|
6415
|
+
}
|
|
6416
|
+
]
|
|
5952
6417
|
}
|
|
5953
6418
|
},
|
|
5954
6419
|
"required": [
|
|
@@ -5988,6 +6453,17 @@
|
|
|
5988
6453
|
"format": "uint64",
|
|
5989
6454
|
"minimum": 0
|
|
5990
6455
|
},
|
|
6456
|
+
"text": {
|
|
6457
|
+
"description": "Exact public trigger declaration and currently resolved effect.",
|
|
6458
|
+
"anyOf": [
|
|
6459
|
+
{
|
|
6460
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
|
|
6461
|
+
},
|
|
6462
|
+
{
|
|
6463
|
+
"type": "null"
|
|
6464
|
+
}
|
|
6465
|
+
]
|
|
6466
|
+
},
|
|
5991
6467
|
"window": {
|
|
5992
6468
|
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/AbilityWindow"
|
|
5993
6469
|
}
|
|
@@ -7238,6 +7714,14 @@
|
|
|
7238
7714
|
"type": "boolean",
|
|
7239
7715
|
"default": false
|
|
7240
7716
|
},
|
|
7717
|
+
"playgroundActionAbilities": {
|
|
7718
|
+
"description": "Host-only Playground ability projection. Empty for normal matches and\nwhile a resolution owns the command boundary.",
|
|
7719
|
+
"type": "array",
|
|
7720
|
+
"default": [],
|
|
7721
|
+
"items": {
|
|
7722
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/PlaygroundActionAbilityView"
|
|
7723
|
+
}
|
|
7724
|
+
},
|
|
7241
7725
|
"playgroundDeckCardIds": {
|
|
7242
7726
|
"description": "Printed cards supplied by every configured Playground deck.",
|
|
7243
7727
|
"type": "array",
|
|
@@ -7726,11 +8210,32 @@
|
|
|
7726
8210
|
"label": {
|
|
7727
8211
|
"type": "string"
|
|
7728
8212
|
},
|
|
8213
|
+
"modeChoice": {
|
|
8214
|
+
"anyOf": [
|
|
8215
|
+
{
|
|
8216
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/ModeChoiceView"
|
|
8217
|
+
},
|
|
8218
|
+
{
|
|
8219
|
+
"type": "null"
|
|
8220
|
+
}
|
|
8221
|
+
]
|
|
8222
|
+
},
|
|
7729
8223
|
"targetGroups": {
|
|
7730
8224
|
"type": "array",
|
|
7731
8225
|
"items": {
|
|
7732
8226
|
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/TargetSelectionGroup"
|
|
7733
8227
|
}
|
|
8228
|
+
},
|
|
8229
|
+
"text": {
|
|
8230
|
+
"description": "Reviewed declaration text for a migrated leader action.",
|
|
8231
|
+
"anyOf": [
|
|
8232
|
+
{
|
|
8233
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
|
|
8234
|
+
},
|
|
8235
|
+
{
|
|
8236
|
+
"type": "null"
|
|
8237
|
+
}
|
|
8238
|
+
]
|
|
7734
8239
|
}
|
|
7735
8240
|
},
|
|
7736
8241
|
"required": [
|
|
@@ -8510,6 +9015,38 @@
|
|
|
8510
9015
|
"draftedCardCount"
|
|
8511
9016
|
]
|
|
8512
9017
|
},
|
|
9018
|
+
"LimitedLobbyTimerSettings": {
|
|
9019
|
+
"description": "Limited-event timing controls owned by a lobby host.",
|
|
9020
|
+
"type": "object",
|
|
9021
|
+
"properties": {
|
|
9022
|
+
"deckBuildingSeconds": {
|
|
9023
|
+
"description": "Deck construction duration in seconds.",
|
|
9024
|
+
"type": "integer",
|
|
9025
|
+
"format": "uint16",
|
|
9026
|
+
"maximum": 65535,
|
|
9027
|
+
"minimum": 0
|
|
9028
|
+
},
|
|
9029
|
+
"deckBuildingTimerEnabled": {
|
|
9030
|
+
"description": "Enables informational deck construction deadline displays.",
|
|
9031
|
+
"type": "boolean"
|
|
9032
|
+
},
|
|
9033
|
+
"draft": {
|
|
9034
|
+
"description": "Draft-only pick and review schedule. Sealed lobbies omit it.",
|
|
9035
|
+
"anyOf": [
|
|
9036
|
+
{
|
|
9037
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/DraftLobbyTimerSettings"
|
|
9038
|
+
},
|
|
9039
|
+
{
|
|
9040
|
+
"type": "null"
|
|
9041
|
+
}
|
|
9042
|
+
]
|
|
9043
|
+
}
|
|
9044
|
+
},
|
|
9045
|
+
"required": [
|
|
9046
|
+
"deckBuildingTimerEnabled",
|
|
9047
|
+
"deckBuildingSeconds"
|
|
9048
|
+
]
|
|
9049
|
+
},
|
|
8513
9050
|
"LimitedPackCardView": {
|
|
8514
9051
|
"description": "One generated pack card plus collation metadata.",
|
|
8515
9052
|
"type": "object",
|
|
@@ -8817,6 +9354,30 @@
|
|
|
8817
9354
|
}
|
|
8818
9355
|
}
|
|
8819
9356
|
},
|
|
9357
|
+
"LobbyGameTimerSettings": {
|
|
9358
|
+
"description": "Per-game clock values shared by constructed and Limited lobbies.",
|
|
9359
|
+
"type": "object",
|
|
9360
|
+
"properties": {
|
|
9361
|
+
"reserveSeconds": {
|
|
9362
|
+
"description": "Seconds of reserve time granted to each player.",
|
|
9363
|
+
"type": "integer",
|
|
9364
|
+
"format": "uint16",
|
|
9365
|
+
"maximum": 65535,
|
|
9366
|
+
"minimum": 0
|
|
9367
|
+
},
|
|
9368
|
+
"turnSeconds": {
|
|
9369
|
+
"description": "Seconds allocated to each normal turn before reserve is used.",
|
|
9370
|
+
"type": "integer",
|
|
9371
|
+
"format": "uint16",
|
|
9372
|
+
"maximum": 65535,
|
|
9373
|
+
"minimum": 0
|
|
9374
|
+
}
|
|
9375
|
+
},
|
|
9376
|
+
"required": [
|
|
9377
|
+
"turnSeconds",
|
|
9378
|
+
"reserveSeconds"
|
|
9379
|
+
]
|
|
9380
|
+
},
|
|
8820
9381
|
"LobbyKickedPayload": {
|
|
8821
9382
|
"type": "object",
|
|
8822
9383
|
"properties": {
|
|
@@ -9226,6 +9787,17 @@
|
|
|
9226
9787
|
"status": {
|
|
9227
9788
|
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/LobbyStatus"
|
|
9228
9789
|
},
|
|
9790
|
+
"timerSettings": {
|
|
9791
|
+
"description": "Host-selected timer schedule for this lobby. Missing values identify\nrecords created before configurable timers were introduced.",
|
|
9792
|
+
"anyOf": [
|
|
9793
|
+
{
|
|
9794
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/LobbyTimerSettings"
|
|
9795
|
+
},
|
|
9796
|
+
{
|
|
9797
|
+
"type": "null"
|
|
9798
|
+
}
|
|
9799
|
+
]
|
|
9800
|
+
},
|
|
9229
9801
|
"visibility": {
|
|
9230
9802
|
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/LobbyVisibility"
|
|
9231
9803
|
}
|
|
@@ -9347,6 +9919,30 @@
|
|
|
9347
9919
|
"closed"
|
|
9348
9920
|
]
|
|
9349
9921
|
},
|
|
9922
|
+
"LobbyTimerSettings": {
|
|
9923
|
+
"description": "Host-selected timing rules for a lobby and its started event or match.",
|
|
9924
|
+
"type": "object",
|
|
9925
|
+
"properties": {
|
|
9926
|
+
"game": {
|
|
9927
|
+
"description": "Per-turn and reserve-bank settings for the final game.",
|
|
9928
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/LobbyGameTimerSettings"
|
|
9929
|
+
},
|
|
9930
|
+
"limited": {
|
|
9931
|
+
"description": "Limited-only draft and deck-construction settings.",
|
|
9932
|
+
"anyOf": [
|
|
9933
|
+
{
|
|
9934
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/LimitedLobbyTimerSettings"
|
|
9935
|
+
},
|
|
9936
|
+
{
|
|
9937
|
+
"type": "null"
|
|
9938
|
+
}
|
|
9939
|
+
]
|
|
9940
|
+
}
|
|
9941
|
+
},
|
|
9942
|
+
"required": [
|
|
9943
|
+
"game"
|
|
9944
|
+
]
|
|
9945
|
+
},
|
|
9350
9946
|
"LobbyVisibility": {
|
|
9351
9947
|
"type": "string",
|
|
9352
9948
|
"enum": [
|
|
@@ -9981,7 +10577,7 @@
|
|
|
9981
10577
|
"description": "The serialized engine state. Catalog `Arc`s are skip-default here\nand grafted on by the restore path before the state goes live.\n\nOpaque to the public schema — SDK consumers should treat this as an\nimplementation-defined object that round-trips byte-for-byte. Pinning\nevery engine sub-struct into the schema would couple the SDK type\nsurface to the entire engine, which we explicitly do not want."
|
|
9982
10578
|
},
|
|
9983
10579
|
"version": {
|
|
9984
|
-
"description": "Wire-format version. Always [`MATCH_SAVE_VERSION`] for newly minted\npayloads; restore
|
|
10580
|
+
"description": "Wire-format version. Always [`MATCH_SAVE_VERSION`] for newly minted\npayloads; restore accepts every [`SUPPORTED_SAVE_VERSIONS`] entry and\nrejects anything else.",
|
|
9985
10581
|
"type": "integer",
|
|
9986
10582
|
"format": "uint8",
|
|
9987
10583
|
"maximum": 255,
|
|
@@ -10447,6 +11043,17 @@
|
|
|
10447
11043
|
"type": "integer",
|
|
10448
11044
|
"format": "uint32",
|
|
10449
11045
|
"minimum": 0
|
|
11046
|
+
},
|
|
11047
|
+
"text": {
|
|
11048
|
+
"description": "Reviewed printed text owning this chooser payload.",
|
|
11049
|
+
"anyOf": [
|
|
11050
|
+
{
|
|
11051
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
|
|
11052
|
+
},
|
|
11053
|
+
{
|
|
11054
|
+
"type": "null"
|
|
11055
|
+
}
|
|
11056
|
+
]
|
|
10450
11057
|
}
|
|
10451
11058
|
},
|
|
10452
11059
|
"required": [
|
|
@@ -10527,6 +11134,17 @@
|
|
|
10527
11134
|
"type": "integer",
|
|
10528
11135
|
"format": "uint32",
|
|
10529
11136
|
"minimum": 0
|
|
11137
|
+
},
|
|
11138
|
+
"text": {
|
|
11139
|
+
"description": "Reviewed printed text owning this chooser payload.",
|
|
11140
|
+
"anyOf": [
|
|
11141
|
+
{
|
|
11142
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
|
|
11143
|
+
},
|
|
11144
|
+
{
|
|
11145
|
+
"type": "null"
|
|
11146
|
+
}
|
|
11147
|
+
]
|
|
10530
11148
|
}
|
|
10531
11149
|
},
|
|
10532
11150
|
"required": [
|
|
@@ -10632,6 +11250,17 @@
|
|
|
10632
11250
|
"type": "integer",
|
|
10633
11251
|
"format": "uint32",
|
|
10634
11252
|
"minimum": 0
|
|
11253
|
+
},
|
|
11254
|
+
"text": {
|
|
11255
|
+
"description": "Reviewed printed text owning this private chooser payload.",
|
|
11256
|
+
"anyOf": [
|
|
11257
|
+
{
|
|
11258
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
|
|
11259
|
+
},
|
|
11260
|
+
{
|
|
11261
|
+
"type": "null"
|
|
11262
|
+
}
|
|
11263
|
+
]
|
|
10635
11264
|
}
|
|
10636
11265
|
},
|
|
10637
11266
|
"required": [
|
|
@@ -10746,11 +11375,25 @@
|
|
|
10746
11375
|
"type": "string"
|
|
10747
11376
|
}
|
|
10748
11377
|
},
|
|
10749
|
-
"
|
|
10750
|
-
"description": "
|
|
10751
|
-
"
|
|
10752
|
-
|
|
10753
|
-
|
|
11378
|
+
"optionTextReferences": {
|
|
11379
|
+
"description": "Reviewed printed text for each matching mode option.\n\nIndex aligns with `option_labels`; `None` denotes an engine/system\noption rather than inferred prose.",
|
|
11380
|
+
"type": "array",
|
|
11381
|
+
"items": {
|
|
11382
|
+
"anyOf": [
|
|
11383
|
+
{
|
|
11384
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/CardTextRef"
|
|
11385
|
+
},
|
|
11386
|
+
{
|
|
11387
|
+
"type": "null"
|
|
11388
|
+
}
|
|
11389
|
+
]
|
|
11390
|
+
}
|
|
11391
|
+
},
|
|
11392
|
+
"promptProvenance": {
|
|
11393
|
+
"description": "Parent/stage identity and interaction policy inherited from resolution.",
|
|
11394
|
+
"anyOf": [
|
|
11395
|
+
{
|
|
11396
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/PromptProvenanceView"
|
|
10754
11397
|
},
|
|
10755
11398
|
{
|
|
10756
11399
|
"type": "null"
|
|
@@ -10761,6 +11404,17 @@
|
|
|
10761
11404
|
"type": "integer",
|
|
10762
11405
|
"format": "uint32",
|
|
10763
11406
|
"minimum": 0
|
|
11407
|
+
},
|
|
11408
|
+
"text": {
|
|
11409
|
+
"description": "Reviewed printed text owning this chooser payload.",
|
|
11410
|
+
"anyOf": [
|
|
11411
|
+
{
|
|
11412
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
|
|
11413
|
+
},
|
|
11414
|
+
{
|
|
11415
|
+
"type": "null"
|
|
11416
|
+
}
|
|
11417
|
+
]
|
|
10764
11418
|
}
|
|
10765
11419
|
},
|
|
10766
11420
|
"required": [
|
|
@@ -10811,6 +11465,17 @@
|
|
|
10811
11465
|
"type": "integer",
|
|
10812
11466
|
"format": "uint32",
|
|
10813
11467
|
"minimum": 0
|
|
11468
|
+
},
|
|
11469
|
+
"text": {
|
|
11470
|
+
"description": "Reviewed printed text owning this chooser payload.",
|
|
11471
|
+
"anyOf": [
|
|
11472
|
+
{
|
|
11473
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
|
|
11474
|
+
},
|
|
11475
|
+
{
|
|
11476
|
+
"type": "null"
|
|
11477
|
+
}
|
|
11478
|
+
]
|
|
10814
11479
|
}
|
|
10815
11480
|
},
|
|
10816
11481
|
"required": [
|
|
@@ -10836,6 +11501,17 @@
|
|
|
10836
11501
|
"type": "integer",
|
|
10837
11502
|
"format": "uint32",
|
|
10838
11503
|
"minimum": 0
|
|
11504
|
+
},
|
|
11505
|
+
"text": {
|
|
11506
|
+
"description": "Reviewed text retained by the queued ability when its producer made it\npublic. The order prompt does not infer ownership from source cards.",
|
|
11507
|
+
"anyOf": [
|
|
11508
|
+
{
|
|
11509
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
|
|
11510
|
+
},
|
|
11511
|
+
{
|
|
11512
|
+
"type": "null"
|
|
11513
|
+
}
|
|
11514
|
+
]
|
|
10839
11515
|
}
|
|
10840
11516
|
},
|
|
10841
11517
|
"required": [
|
|
@@ -10987,6 +11663,17 @@
|
|
|
10987
11663
|
"description": "Complete target-selection contract for this pending ability.\n\nGroups retain ordering, bounds, and structural purpose together.",
|
|
10988
11664
|
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/TargetSelectionPlanView"
|
|
10989
11665
|
},
|
|
11666
|
+
"text": {
|
|
11667
|
+
"description": "Reviewed printed ability, selected mode, and current effect ownership.",
|
|
11668
|
+
"anyOf": [
|
|
11669
|
+
{
|
|
11670
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
|
|
11671
|
+
},
|
|
11672
|
+
{
|
|
11673
|
+
"type": "null"
|
|
11674
|
+
}
|
|
11675
|
+
]
|
|
11676
|
+
},
|
|
10990
11677
|
"window": {
|
|
10991
11678
|
"description": "Trigger window this ability was collected in.\n\nPart of the ability's stable identity: with `source_card_id`,\n`source_unit_id`, `clause_id`, and `family` it addresses one queued\nability without depending on queue position.",
|
|
10992
11679
|
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/AbilityWindow"
|
|
@@ -11180,6 +11867,17 @@
|
|
|
11180
11867
|
"format": "uint32",
|
|
11181
11868
|
"minimum": 0
|
|
11182
11869
|
},
|
|
11870
|
+
"text": {
|
|
11871
|
+
"description": "Reviewed printed text owning this chooser payload.",
|
|
11872
|
+
"anyOf": [
|
|
11873
|
+
{
|
|
11874
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
|
|
11875
|
+
},
|
|
11876
|
+
{
|
|
11877
|
+
"type": "null"
|
|
11878
|
+
}
|
|
11879
|
+
]
|
|
11880
|
+
},
|
|
11183
11881
|
"title": {
|
|
11184
11882
|
"type": "string"
|
|
11185
11883
|
},
|
|
@@ -11388,60 +12086,171 @@
|
|
|
11388
12086
|
"left"
|
|
11389
12087
|
]
|
|
11390
12088
|
},
|
|
11391
|
-
"
|
|
11392
|
-
"
|
|
11393
|
-
|
|
11394
|
-
|
|
11395
|
-
|
|
11396
|
-
|
|
11397
|
-
|
|
11398
|
-
|
|
11399
|
-
|
|
11400
|
-
|
|
11401
|
-
|
|
11402
|
-
|
|
11403
|
-
|
|
11404
|
-
|
|
12089
|
+
"PlaygroundActionAbilityView": {
|
|
12090
|
+
"description": "Playground-only action ability that may be executed without normal action\ntiming, usage, condition, or cost gates.",
|
|
12091
|
+
"type": "object",
|
|
12092
|
+
"properties": {
|
|
12093
|
+
"label": {
|
|
12094
|
+
"type": "string"
|
|
12095
|
+
},
|
|
12096
|
+
"modeChoice": {
|
|
12097
|
+
"anyOf": [
|
|
12098
|
+
{
|
|
12099
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/ModeChoiceView"
|
|
12100
|
+
},
|
|
12101
|
+
{
|
|
12102
|
+
"type": "null"
|
|
12103
|
+
}
|
|
11405
12104
|
]
|
|
11406
12105
|
},
|
|
11407
|
-
{
|
|
11408
|
-
"
|
|
11409
|
-
"type": "string",
|
|
11410
|
-
"const": "EachOpponent"
|
|
12106
|
+
"seat": {
|
|
12107
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
|
|
11411
12108
|
},
|
|
11412
|
-
{
|
|
11413
|
-
"
|
|
11414
|
-
"type": "string",
|
|
11415
|
-
"const": "EachOpponentWhoseBaseDamagedBySourceThisPhase"
|
|
12109
|
+
"source": {
|
|
12110
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/ActionAbilitySource"
|
|
11416
12111
|
},
|
|
11417
|
-
{
|
|
11418
|
-
"
|
|
11419
|
-
"
|
|
11420
|
-
|
|
12112
|
+
"targetGroups": {
|
|
12113
|
+
"type": "array",
|
|
12114
|
+
"items": {
|
|
12115
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/TargetSelectionGroup"
|
|
12116
|
+
}
|
|
11421
12117
|
},
|
|
12118
|
+
"text": {
|
|
12119
|
+
"description": "Exact public Action or Epic Action declaration when migrated.",
|
|
12120
|
+
"anyOf": [
|
|
12121
|
+
{
|
|
12122
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
|
|
12123
|
+
},
|
|
12124
|
+
{
|
|
12125
|
+
"type": "null"
|
|
12126
|
+
}
|
|
12127
|
+
]
|
|
12128
|
+
}
|
|
12129
|
+
},
|
|
12130
|
+
"required": [
|
|
12131
|
+
"seat",
|
|
12132
|
+
"source",
|
|
12133
|
+
"label",
|
|
12134
|
+
"targetGroups"
|
|
12135
|
+
]
|
|
12136
|
+
},
|
|
12137
|
+
"PlaygroundCardStateChange": {
|
|
12138
|
+
"description": "One in-play card whose Playground-editable state may be set exactly.\n\nEvery field is a target value rather than a delta, so a client that shows\ncurrent counts can submit what the board should look like instead of\nreconstructing the sequence of adjustments that gets there. Anything the\nengine derives — keywords, clone identity, controller, arena, card text —\nstays out of this patch and remains read-only.",
|
|
12139
|
+
"oneOf": [
|
|
11422
12140
|
{
|
|
11423
|
-
"description": "
|
|
12141
|
+
"description": "Forces unit state directly, bypassing normal gameplay restrictions.\n\nAbsent fields are left untouched; at least one must be present.",
|
|
11424
12142
|
"type": "object",
|
|
11425
12143
|
"properties": {
|
|
11426
|
-
"
|
|
11427
|
-
"
|
|
12144
|
+
"advantageTokens": {
|
|
12145
|
+
"type": [
|
|
12146
|
+
"integer",
|
|
12147
|
+
"null"
|
|
12148
|
+
],
|
|
12149
|
+
"format": "uint8",
|
|
12150
|
+
"maximum": 255,
|
|
12151
|
+
"minimum": 0
|
|
12152
|
+
},
|
|
12153
|
+
"damage": {
|
|
12154
|
+
"type": [
|
|
12155
|
+
"integer",
|
|
12156
|
+
"null"
|
|
12157
|
+
],
|
|
12158
|
+
"format": "int16",
|
|
12159
|
+
"maximum": 32767,
|
|
12160
|
+
"minimum": -32768
|
|
12161
|
+
},
|
|
12162
|
+
"experienceTokens": {
|
|
12163
|
+
"type": [
|
|
12164
|
+
"integer",
|
|
12165
|
+
"null"
|
|
12166
|
+
],
|
|
12167
|
+
"format": "uint8",
|
|
12168
|
+
"maximum": 255,
|
|
12169
|
+
"minimum": 0
|
|
12170
|
+
},
|
|
12171
|
+
"ready": {
|
|
12172
|
+
"description": "`true` readies the unit even while an effect forbids readying.",
|
|
12173
|
+
"type": [
|
|
12174
|
+
"boolean",
|
|
12175
|
+
"null"
|
|
12176
|
+
]
|
|
12177
|
+
},
|
|
12178
|
+
"shieldTokens": {
|
|
12179
|
+
"type": [
|
|
12180
|
+
"integer",
|
|
12181
|
+
"null"
|
|
12182
|
+
],
|
|
12183
|
+
"format": "uint8",
|
|
12184
|
+
"maximum": 255,
|
|
12185
|
+
"minimum": 0
|
|
12186
|
+
},
|
|
12187
|
+
"type": {
|
|
12188
|
+
"type": "string",
|
|
12189
|
+
"const": "unit"
|
|
12190
|
+
},
|
|
12191
|
+
"unitId": {
|
|
12192
|
+
"type": "integer",
|
|
12193
|
+
"format": "uint64",
|
|
12194
|
+
"minimum": 0
|
|
11428
12195
|
}
|
|
11429
12196
|
},
|
|
11430
|
-
"additionalProperties": false,
|
|
11431
12197
|
"required": [
|
|
11432
|
-
"
|
|
12198
|
+
"type",
|
|
12199
|
+
"unitId"
|
|
11433
12200
|
]
|
|
11434
12201
|
},
|
|
11435
12202
|
{
|
|
11436
|
-
"description": "
|
|
11437
|
-
"type": "
|
|
11438
|
-
"
|
|
12203
|
+
"description": "Sets exact base damage; a base carries no other editable state.",
|
|
12204
|
+
"type": "object",
|
|
12205
|
+
"properties": {
|
|
12206
|
+
"damage": {
|
|
12207
|
+
"type": "integer",
|
|
12208
|
+
"format": "int16",
|
|
12209
|
+
"maximum": 32767,
|
|
12210
|
+
"minimum": -32768
|
|
12211
|
+
},
|
|
12212
|
+
"seat": {
|
|
12213
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
|
|
12214
|
+
},
|
|
12215
|
+
"type": {
|
|
12216
|
+
"type": "string",
|
|
12217
|
+
"const": "base"
|
|
12218
|
+
}
|
|
12219
|
+
},
|
|
12220
|
+
"required": [
|
|
12221
|
+
"type",
|
|
12222
|
+
"seat",
|
|
12223
|
+
"damage"
|
|
12224
|
+
]
|
|
11439
12225
|
}
|
|
11440
12226
|
]
|
|
11441
12227
|
},
|
|
11442
12228
|
"PlaygroundCommand": {
|
|
11443
12229
|
"description": "Host-authorized raw scenario mutation for a Playground match.",
|
|
11444
12230
|
"oneOf": [
|
|
12231
|
+
{
|
|
12232
|
+
"description": "Adds a fresh, ready physical card to a player's resource row.",
|
|
12233
|
+
"type": "object",
|
|
12234
|
+
"properties": {
|
|
12235
|
+
"cardId": {
|
|
12236
|
+
"type": "integer",
|
|
12237
|
+
"format": "uint32",
|
|
12238
|
+
"minimum": 0
|
|
12239
|
+
},
|
|
12240
|
+
"seat": {
|
|
12241
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
|
|
12242
|
+
},
|
|
12243
|
+
"type": {
|
|
12244
|
+
"type": "string",
|
|
12245
|
+
"const": "addResource"
|
|
12246
|
+
}
|
|
12247
|
+
},
|
|
12248
|
+
"required": [
|
|
12249
|
+
"type",
|
|
12250
|
+
"seat",
|
|
12251
|
+
"cardId"
|
|
12252
|
+
]
|
|
12253
|
+
},
|
|
11445
12254
|
{
|
|
11446
12255
|
"type": "object",
|
|
11447
12256
|
"properties": {
|
|
@@ -11528,6 +12337,53 @@
|
|
|
11528
12337
|
"cardId"
|
|
11529
12338
|
]
|
|
11530
12339
|
},
|
|
12340
|
+
{
|
|
12341
|
+
"description": "Resolves an action ability without its normal activation gates or costs.",
|
|
12342
|
+
"type": "object",
|
|
12343
|
+
"properties": {
|
|
12344
|
+
"modeIndices": {
|
|
12345
|
+
"type": "array",
|
|
12346
|
+
"items": {
|
|
12347
|
+
"type": "integer",
|
|
12348
|
+
"format": "uint",
|
|
12349
|
+
"minimum": 0
|
|
12350
|
+
}
|
|
12351
|
+
},
|
|
12352
|
+
"seat": {
|
|
12353
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
|
|
12354
|
+
},
|
|
12355
|
+
"source": {
|
|
12356
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/ActionAbilitySource"
|
|
12357
|
+
},
|
|
12358
|
+
"target": {
|
|
12359
|
+
"anyOf": [
|
|
12360
|
+
{
|
|
12361
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/AbilityTarget"
|
|
12362
|
+
},
|
|
12363
|
+
{
|
|
12364
|
+
"type": "null"
|
|
12365
|
+
}
|
|
12366
|
+
]
|
|
12367
|
+
},
|
|
12368
|
+
"targets": {
|
|
12369
|
+
"type": "array",
|
|
12370
|
+
"items": {
|
|
12371
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/AbilityTarget"
|
|
12372
|
+
}
|
|
12373
|
+
},
|
|
12374
|
+
"type": {
|
|
12375
|
+
"type": "string",
|
|
12376
|
+
"const": "executeActionAbility"
|
|
12377
|
+
}
|
|
12378
|
+
},
|
|
12379
|
+
"required": [
|
|
12380
|
+
"type",
|
|
12381
|
+
"seat",
|
|
12382
|
+
"source",
|
|
12383
|
+
"targets",
|
|
12384
|
+
"modeIndices"
|
|
12385
|
+
]
|
|
12386
|
+
},
|
|
11531
12387
|
{
|
|
11532
12388
|
"type": "object",
|
|
11533
12389
|
"properties": {
|
|
@@ -11551,6 +12407,23 @@
|
|
|
11551
12407
|
"amount"
|
|
11552
12408
|
]
|
|
11553
12409
|
},
|
|
12410
|
+
{
|
|
12411
|
+
"description": "Sets several editable fields of one in-play card in a single atomic edit.",
|
|
12412
|
+
"type": "object",
|
|
12413
|
+
"properties": {
|
|
12414
|
+
"change": {
|
|
12415
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/PlaygroundCardStateChange"
|
|
12416
|
+
},
|
|
12417
|
+
"type": {
|
|
12418
|
+
"type": "string",
|
|
12419
|
+
"const": "changeCardState"
|
|
12420
|
+
}
|
|
12421
|
+
},
|
|
12422
|
+
"required": [
|
|
12423
|
+
"type",
|
|
12424
|
+
"change"
|
|
12425
|
+
]
|
|
12426
|
+
},
|
|
11554
12427
|
{
|
|
11555
12428
|
"type": "object",
|
|
11556
12429
|
"properties": {
|
|
@@ -11594,17 +12467,67 @@
|
|
|
11594
12467
|
"cardId",
|
|
11595
12468
|
"captorUnitId"
|
|
11596
12469
|
]
|
|
11597
|
-
}
|
|
11598
|
-
]
|
|
11599
|
-
},
|
|
11600
|
-
"PlaygroundDamageTarget": {
|
|
11601
|
-
"description": "One board target whose damage counter Playground may set exactly.",
|
|
11602
|
-
"oneOf": [
|
|
12470
|
+
},
|
|
11603
12471
|
{
|
|
11604
12472
|
"type": "object",
|
|
11605
12473
|
"properties": {
|
|
11606
|
-
"
|
|
11607
|
-
"
|
|
12474
|
+
"cardId": {
|
|
12475
|
+
"type": "integer",
|
|
12476
|
+
"format": "uint32",
|
|
12477
|
+
"minimum": 0
|
|
12478
|
+
},
|
|
12479
|
+
"leaderIndex": {
|
|
12480
|
+
"type": "integer",
|
|
12481
|
+
"format": "uint",
|
|
12482
|
+
"minimum": 0
|
|
12483
|
+
},
|
|
12484
|
+
"seat": {
|
|
12485
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
|
|
12486
|
+
},
|
|
12487
|
+
"type": {
|
|
12488
|
+
"type": "string",
|
|
12489
|
+
"const": "swapLeader"
|
|
12490
|
+
}
|
|
12491
|
+
},
|
|
12492
|
+
"required": [
|
|
12493
|
+
"type",
|
|
12494
|
+
"seat",
|
|
12495
|
+
"leaderIndex",
|
|
12496
|
+
"cardId"
|
|
12497
|
+
]
|
|
12498
|
+
},
|
|
12499
|
+
{
|
|
12500
|
+
"type": "object",
|
|
12501
|
+
"properties": {
|
|
12502
|
+
"cardId": {
|
|
12503
|
+
"type": "integer",
|
|
12504
|
+
"format": "uint32",
|
|
12505
|
+
"minimum": 0
|
|
12506
|
+
},
|
|
12507
|
+
"seat": {
|
|
12508
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
|
|
12509
|
+
},
|
|
12510
|
+
"type": {
|
|
12511
|
+
"type": "string",
|
|
12512
|
+
"const": "swapBase"
|
|
12513
|
+
}
|
|
12514
|
+
},
|
|
12515
|
+
"required": [
|
|
12516
|
+
"type",
|
|
12517
|
+
"seat",
|
|
12518
|
+
"cardId"
|
|
12519
|
+
]
|
|
12520
|
+
}
|
|
12521
|
+
]
|
|
12522
|
+
},
|
|
12523
|
+
"PlaygroundDamageTarget": {
|
|
12524
|
+
"description": "One board target whose damage counter Playground may set exactly.",
|
|
12525
|
+
"oneOf": [
|
|
12526
|
+
{
|
|
12527
|
+
"type": "object",
|
|
12528
|
+
"properties": {
|
|
12529
|
+
"seat": {
|
|
12530
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
|
|
11608
12531
|
},
|
|
11609
12532
|
"type": {
|
|
11610
12533
|
"type": "string",
|
|
@@ -11677,14 +12600,6 @@
|
|
|
11677
12600
|
}
|
|
11678
12601
|
]
|
|
11679
12602
|
},
|
|
11680
|
-
"PresenceFilter": {
|
|
11681
|
-
"type": "string",
|
|
11682
|
-
"enum": [
|
|
11683
|
-
"Any",
|
|
11684
|
-
"Required",
|
|
11685
|
-
"Forbidden"
|
|
11686
|
-
]
|
|
11687
|
-
},
|
|
11688
12603
|
"PromptProvenanceView": {
|
|
11689
12604
|
"description": "Stable parent/stage identity shared by every prompt opened during an effect.",
|
|
11690
12605
|
"type": "object",
|
|
@@ -12539,6 +13454,7 @@
|
|
|
12539
13454
|
]
|
|
12540
13455
|
},
|
|
12541
13456
|
"RelationFilter": {
|
|
13457
|
+
"description": "Restricts a target by controller relation to the effect source.",
|
|
12542
13458
|
"type": "string",
|
|
12543
13459
|
"enum": [
|
|
12544
13460
|
"Any",
|
|
@@ -12649,14 +13565,6 @@
|
|
|
12649
13565
|
"four"
|
|
12650
13566
|
]
|
|
12651
13567
|
},
|
|
12652
|
-
"SeatDirection": {
|
|
12653
|
-
"description": "Relative multiplayer seat direction.",
|
|
12654
|
-
"type": "string",
|
|
12655
|
-
"enum": [
|
|
12656
|
-
"Left",
|
|
12657
|
-
"Right"
|
|
12658
|
-
]
|
|
12659
|
-
},
|
|
12660
13568
|
"SeatOfferIntent": {
|
|
12661
13569
|
"description": "Per-seat stance on a two-sided post-game offer.\n\nBoth post-game offers (extending a finished single game into a series, and\nstarting a rematch) need the same three-state answer from every seat, and a\nseat that answers twice must overwrite its previous answer rather than\nstack a second one — hence one shared enum instead of a pair of booleans.",
|
|
12662
13570
|
"oneOf": [
|
|
@@ -12911,21 +13819,6 @@
|
|
|
12911
13819
|
"mulliganTaken"
|
|
12912
13820
|
]
|
|
12913
13821
|
},
|
|
12914
|
-
"SelectionScope": {
|
|
12915
|
-
"description": "How far back an `exclude_previously_selected` filter looks.",
|
|
12916
|
-
"oneOf": [
|
|
12917
|
-
{
|
|
12918
|
-
"description": "Every selection recorded since the resolving effect began.\n\nThis is what printed \"another\" / \"a third\" mean: the choices are\ndistinct across the whole ability, not merely against the last one.",
|
|
12919
|
-
"type": "string",
|
|
12920
|
-
"const": "ThisEffect"
|
|
12921
|
-
},
|
|
12922
|
-
{
|
|
12923
|
-
"description": "Only the selections recorded by the clause currently resolving.\n\nA later clause of the same effect starts a new clause id, so its choices\nmay legally repeat a target an earlier clause used.",
|
|
12924
|
-
"type": "string",
|
|
12925
|
-
"const": "ThisClause"
|
|
12926
|
-
}
|
|
12927
|
-
]
|
|
12928
|
-
},
|
|
12929
13822
|
"SeriesEndReason": {
|
|
12930
13823
|
"description": "Public reason a match series ended.",
|
|
12931
13824
|
"oneOf": [
|
|
@@ -13036,245 +13929,156 @@
|
|
|
13036
13929
|
"available"
|
|
13037
13930
|
]
|
|
13038
13931
|
},
|
|
13039
|
-
"
|
|
13040
|
-
"description": "
|
|
13041
|
-
"
|
|
13042
|
-
|
|
13043
|
-
|
|
13044
|
-
|
|
13045
|
-
|
|
13046
|
-
|
|
13047
|
-
|
|
13048
|
-
|
|
13049
|
-
|
|
13050
|
-
|
|
13051
|
-
|
|
13052
|
-
|
|
13053
|
-
"minimum": 0
|
|
13054
|
-
},
|
|
13055
|
-
"matchId": {
|
|
13056
|
-
"type": "string",
|
|
13057
|
-
"format": "uuid"
|
|
13058
|
-
},
|
|
13059
|
-
"message": {
|
|
13060
|
-
"type": "string"
|
|
13932
|
+
"SimulatorMessage": {
|
|
13933
|
+
"description": "Typed engine-origin simulator copy with a stable SDK message id.",
|
|
13934
|
+
"oneOf": [
|
|
13935
|
+
{
|
|
13936
|
+
"type": "object",
|
|
13937
|
+
"properties": {
|
|
13938
|
+
"kind": {
|
|
13939
|
+
"type": "string",
|
|
13940
|
+
"const": "abilityUnavailable"
|
|
13941
|
+
}
|
|
13942
|
+
},
|
|
13943
|
+
"required": [
|
|
13944
|
+
"kind"
|
|
13945
|
+
]
|
|
13061
13946
|
},
|
|
13062
|
-
|
|
13063
|
-
"type": "
|
|
13064
|
-
"
|
|
13065
|
-
|
|
13947
|
+
{
|
|
13948
|
+
"type": "object",
|
|
13949
|
+
"properties": {
|
|
13950
|
+
"kind": {
|
|
13951
|
+
"type": "string",
|
|
13952
|
+
"const": "action.exhaust"
|
|
13953
|
+
}
|
|
13954
|
+
},
|
|
13955
|
+
"required": [
|
|
13956
|
+
"kind"
|
|
13957
|
+
]
|
|
13066
13958
|
},
|
|
13067
|
-
|
|
13068
|
-
"type": "
|
|
13069
|
-
"
|
|
13070
|
-
|
|
13959
|
+
{
|
|
13960
|
+
"type": "object",
|
|
13961
|
+
"properties": {
|
|
13962
|
+
"count": {
|
|
13963
|
+
"type": "integer",
|
|
13964
|
+
"format": "int64",
|
|
13965
|
+
"maximum": 9007199254740991,
|
|
13966
|
+
"minimum": -9007199254740991
|
|
13967
|
+
},
|
|
13968
|
+
"kind": {
|
|
13969
|
+
"type": "string",
|
|
13970
|
+
"const": "amount.resources"
|
|
13971
|
+
}
|
|
13972
|
+
},
|
|
13973
|
+
"required": [
|
|
13974
|
+
"kind",
|
|
13975
|
+
"count"
|
|
13976
|
+
]
|
|
13071
13977
|
},
|
|
13072
|
-
|
|
13073
|
-
"type": "
|
|
13978
|
+
{
|
|
13979
|
+
"type": "object",
|
|
13980
|
+
"properties": {
|
|
13981
|
+
"kind": {
|
|
13982
|
+
"type": "string",
|
|
13983
|
+
"const": "choice.none"
|
|
13984
|
+
}
|
|
13985
|
+
},
|
|
13986
|
+
"required": [
|
|
13987
|
+
"kind"
|
|
13988
|
+
]
|
|
13074
13989
|
},
|
|
13075
|
-
|
|
13076
|
-
"type": "
|
|
13077
|
-
"
|
|
13990
|
+
{
|
|
13991
|
+
"type": "object",
|
|
13992
|
+
"properties": {
|
|
13993
|
+
"kind": {
|
|
13994
|
+
"type": "string",
|
|
13995
|
+
"const": "chooseTarget"
|
|
13996
|
+
}
|
|
13997
|
+
},
|
|
13998
|
+
"required": [
|
|
13999
|
+
"kind"
|
|
14000
|
+
]
|
|
13078
14001
|
},
|
|
13079
|
-
|
|
13080
|
-
"
|
|
13081
|
-
|
|
13082
|
-
|
|
14002
|
+
{
|
|
14003
|
+
"type": "object",
|
|
14004
|
+
"properties": {
|
|
14005
|
+
"kind": {
|
|
14006
|
+
"type": "string",
|
|
14007
|
+
"const": "chooseTargets"
|
|
13083
14008
|
},
|
|
13084
|
-
{
|
|
13085
|
-
"type": "
|
|
14009
|
+
"max": {
|
|
14010
|
+
"type": "integer",
|
|
14011
|
+
"format": "int64",
|
|
14012
|
+
"maximum": 9007199254740991,
|
|
14013
|
+
"minimum": -9007199254740991
|
|
14014
|
+
},
|
|
14015
|
+
"min": {
|
|
14016
|
+
"type": "integer",
|
|
14017
|
+
"format": "int64",
|
|
14018
|
+
"maximum": 9007199254740991,
|
|
14019
|
+
"minimum": -9007199254740991
|
|
13086
14020
|
}
|
|
14021
|
+
},
|
|
14022
|
+
"required": [
|
|
14023
|
+
"kind",
|
|
14024
|
+
"min",
|
|
14025
|
+
"max"
|
|
13087
14026
|
]
|
|
13088
14027
|
},
|
|
13089
|
-
|
|
13090
|
-
"type":
|
|
13091
|
-
|
|
13092
|
-
"
|
|
13093
|
-
|
|
13094
|
-
|
|
13095
|
-
|
|
13096
|
-
|
|
13097
|
-
|
|
13098
|
-
|
|
13099
|
-
|
|
13100
|
-
},
|
|
13101
|
-
"required": [
|
|
13102
|
-
"reportId",
|
|
13103
|
-
"firstOccurredAtMs",
|
|
13104
|
-
"occurredAtMs",
|
|
13105
|
-
"occurrenceCount",
|
|
13106
|
-
"matchId",
|
|
13107
|
-
"source",
|
|
13108
|
-
"operation",
|
|
13109
|
-
"failureKind",
|
|
13110
|
-
"bundleAvailable",
|
|
13111
|
-
"message"
|
|
13112
|
-
]
|
|
13113
|
-
},
|
|
13114
|
-
"SimulatorReportSummary": {
|
|
13115
|
-
"description": "Metadata safe to return in administrator report lists.",
|
|
13116
|
-
"type": "object",
|
|
13117
|
-
"properties": {
|
|
13118
|
-
"bundleAvailable": {
|
|
13119
|
-
"type": "boolean"
|
|
14028
|
+
{
|
|
14029
|
+
"type": "object",
|
|
14030
|
+
"properties": {
|
|
14031
|
+
"kind": {
|
|
14032
|
+
"type": "string",
|
|
14033
|
+
"const": "controls.cancel"
|
|
14034
|
+
}
|
|
14035
|
+
},
|
|
14036
|
+
"required": [
|
|
14037
|
+
"kind"
|
|
14038
|
+
]
|
|
13120
14039
|
},
|
|
13121
|
-
|
|
13122
|
-
"type": "
|
|
14040
|
+
{
|
|
14041
|
+
"type": "object",
|
|
14042
|
+
"properties": {
|
|
14043
|
+
"kind": {
|
|
14044
|
+
"type": "string",
|
|
14045
|
+
"const": "controls.confirm"
|
|
14046
|
+
}
|
|
14047
|
+
},
|
|
14048
|
+
"required": [
|
|
14049
|
+
"kind"
|
|
14050
|
+
]
|
|
13123
14051
|
},
|
|
13124
|
-
|
|
13125
|
-
"type": "
|
|
13126
|
-
"
|
|
13127
|
-
|
|
14052
|
+
{
|
|
14053
|
+
"type": "object",
|
|
14054
|
+
"properties": {
|
|
14055
|
+
"kind": {
|
|
14056
|
+
"type": "string",
|
|
14057
|
+
"const": "controls.decline"
|
|
14058
|
+
}
|
|
14059
|
+
},
|
|
14060
|
+
"required": [
|
|
14061
|
+
"kind"
|
|
14062
|
+
]
|
|
13128
14063
|
},
|
|
13129
|
-
|
|
13130
|
-
"type": "
|
|
13131
|
-
"
|
|
14064
|
+
{
|
|
14065
|
+
"type": "object",
|
|
14066
|
+
"properties": {
|
|
14067
|
+
"kind": {
|
|
14068
|
+
"type": "string",
|
|
14069
|
+
"const": "controls.done"
|
|
14070
|
+
}
|
|
14071
|
+
},
|
|
14072
|
+
"required": [
|
|
14073
|
+
"kind"
|
|
14074
|
+
]
|
|
13132
14075
|
},
|
|
13133
|
-
"occurredAtMs": {
|
|
13134
|
-
"type": "integer",
|
|
13135
|
-
"format": "uint64",
|
|
13136
|
-
"minimum": 0
|
|
13137
|
-
},
|
|
13138
|
-
"occurrenceCount": {
|
|
13139
|
-
"type": "integer",
|
|
13140
|
-
"format": "uint32",
|
|
13141
|
-
"minimum": 0
|
|
13142
|
-
},
|
|
13143
|
-
"operation": {
|
|
13144
|
-
"type": "string"
|
|
13145
|
-
},
|
|
13146
|
-
"reportId": {
|
|
13147
|
-
"type": "string",
|
|
13148
|
-
"format": "uuid"
|
|
13149
|
-
},
|
|
13150
|
-
"seat": {
|
|
13151
|
-
"anyOf": [
|
|
13152
|
-
{
|
|
13153
|
-
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
|
|
13154
|
-
},
|
|
13155
|
-
{
|
|
13156
|
-
"type": "null"
|
|
13157
|
-
}
|
|
13158
|
-
]
|
|
13159
|
-
},
|
|
13160
|
-
"snapshotRevision": {
|
|
13161
|
-
"type": [
|
|
13162
|
-
"integer",
|
|
13163
|
-
"null"
|
|
13164
|
-
],
|
|
13165
|
-
"format": "uint64",
|
|
13166
|
-
"minimum": 0
|
|
13167
|
-
},
|
|
13168
|
-
"source": {
|
|
13169
|
-
"type": "string"
|
|
13170
|
-
}
|
|
13171
|
-
},
|
|
13172
|
-
"required": [
|
|
13173
|
-
"reportId",
|
|
13174
|
-
"firstOccurredAtMs",
|
|
13175
|
-
"occurredAtMs",
|
|
13176
|
-
"occurrenceCount",
|
|
13177
|
-
"matchId",
|
|
13178
|
-
"source",
|
|
13179
|
-
"operation",
|
|
13180
|
-
"failureKind",
|
|
13181
|
-
"bundleAvailable"
|
|
13182
|
-
]
|
|
13183
|
-
},
|
|
13184
|
-
"SimulatorRuntimeStats": {
|
|
13185
|
-
"description": "Admin-visible operational counters for the simulator engine.",
|
|
13186
|
-
"type": "object",
|
|
13187
|
-
"properties": {
|
|
13188
|
-
"activeLimitedEvents": {
|
|
13189
|
-
"description": "Limited Event records still retained by the limited runtime.",
|
|
13190
|
-
"type": "integer",
|
|
13191
|
-
"format": "uint64",
|
|
13192
|
-
"minimum": 0
|
|
13193
|
-
},
|
|
13194
|
-
"activeMatches": {
|
|
13195
|
-
"description": "Live sessions that have not completed their series.",
|
|
13196
|
-
"type": "integer",
|
|
13197
|
-
"format": "uint64",
|
|
13198
|
-
"minimum": 0
|
|
13199
|
-
},
|
|
13200
|
-
"retainedFinishedMatches": {
|
|
13201
|
-
"description": "Completed sessions still retained until cleanup.",
|
|
13202
|
-
"type": "integer",
|
|
13203
|
-
"format": "uint64",
|
|
13204
|
-
"minimum": 0
|
|
13205
|
-
},
|
|
13206
|
-
"tournamentRooms": {
|
|
13207
|
-
"description": "Tournament room records still retained by the tournament runtime.",
|
|
13208
|
-
"type": "integer",
|
|
13209
|
-
"format": "uint64",
|
|
13210
|
-
"minimum": 0
|
|
13211
|
-
},
|
|
13212
|
-
"waitingLobbies": {
|
|
13213
|
-
"description": "Waiting or started lobby records still retained by the lobby runtime.",
|
|
13214
|
-
"type": "integer",
|
|
13215
|
-
"format": "uint64",
|
|
13216
|
-
"minimum": 0
|
|
13217
|
-
}
|
|
13218
|
-
},
|
|
13219
|
-
"required": [
|
|
13220
|
-
"activeMatches",
|
|
13221
|
-
"retainedFinishedMatches",
|
|
13222
|
-
"waitingLobbies",
|
|
13223
|
-
"activeLimitedEvents",
|
|
13224
|
-
"tournamentRooms"
|
|
13225
|
-
]
|
|
13226
|
-
},
|
|
13227
|
-
"SmuggleActionView": {
|
|
13228
|
-
"type": "object",
|
|
13229
|
-
"properties": {
|
|
13230
|
-
"kind": {
|
|
13231
|
-
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/SmuggleKind"
|
|
13232
|
-
},
|
|
13233
|
-
"resourceCost": {
|
|
13234
|
-
"type": "integer",
|
|
13235
|
-
"format": "uint",
|
|
13236
|
-
"minimum": 0
|
|
13237
|
-
},
|
|
13238
|
-
"validCostTargets": {
|
|
13239
|
-
"type": "array",
|
|
13240
|
-
"items": {
|
|
13241
|
-
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/AbilityTarget"
|
|
13242
|
-
}
|
|
13243
|
-
}
|
|
13244
|
-
},
|
|
13245
|
-
"required": [
|
|
13246
|
-
"kind",
|
|
13247
|
-
"resourceCost",
|
|
13248
|
-
"validCostTargets"
|
|
13249
|
-
]
|
|
13250
|
-
},
|
|
13251
|
-
"SmuggleKind": {
|
|
13252
|
-
"description": "Distinguishes printed-Smuggle keyword usage from runtime-granted\nSmuggle (via card hooks). Stored in the parsed effect AST so the\nresolver can dispatch the correct play path.",
|
|
13253
|
-
"type": "string",
|
|
13254
|
-
"enum": [
|
|
13255
|
-
"printed",
|
|
13256
|
-
"granted"
|
|
13257
|
-
]
|
|
13258
|
-
},
|
|
13259
|
-
"TargetGroupPurpose": {
|
|
13260
|
-
"description": "Structural, localization-friendly description of *what a target-selection\ngroup is for*.\n\nThe engine builds target groups positionally from typed effect variants. The\n`purpose` carries the rules-meaning of each group so a UI can render a\nlocalized per-clause label (e.g. \"Choose a unit to deal 2 damage to\") without\nregex-parsing printed card text.\n\nOne variant exists for each meaningful targeting action a triggered effect\ncan request. Useful structural parameters are carried where they are known at\ngroup-construction time (e.g. the fixed damage `amount`). Dynamic amounts\n(e.g. \"damage equal to this unit's power\") carry `None`. [`Self::Other`] is\nreserved for genuinely unclassifiable targeting and is intentionally rare.",
|
|
13261
|
-
"oneOf": [
|
|
13262
14076
|
{
|
|
13263
|
-
"description": "Deal damage to the selected target(s). `amount` is the fixed damage when\nstatically known, `None` for dynamic/derived amounts.",
|
|
13264
14077
|
"type": "object",
|
|
13265
14078
|
"properties": {
|
|
13266
|
-
"amount": {
|
|
13267
|
-
"type": [
|
|
13268
|
-
"integer",
|
|
13269
|
-
"null"
|
|
13270
|
-
],
|
|
13271
|
-
"format": "int16",
|
|
13272
|
-
"maximum": 32767,
|
|
13273
|
-
"minimum": -32768
|
|
13274
|
-
},
|
|
13275
14079
|
"kind": {
|
|
13276
14080
|
"type": "string",
|
|
13277
|
-
"const": "
|
|
14081
|
+
"const": "duration.phase"
|
|
13278
14082
|
}
|
|
13279
14083
|
},
|
|
13280
14084
|
"required": [
|
|
@@ -13282,56 +14086,46 @@
|
|
|
13282
14086
|
]
|
|
13283
14087
|
},
|
|
13284
14088
|
{
|
|
13285
|
-
"description": "Heal damage from the selected unit(s) or base(s).",
|
|
13286
14089
|
"type": "object",
|
|
13287
14090
|
"properties": {
|
|
13288
|
-
"
|
|
13289
|
-
"type":
|
|
13290
|
-
|
|
13291
|
-
|
|
13292
|
-
|
|
13293
|
-
"format": "int16",
|
|
13294
|
-
"maximum": 32767,
|
|
13295
|
-
"minimum": -32768
|
|
14091
|
+
"count": {
|
|
14092
|
+
"type": "integer",
|
|
14093
|
+
"format": "int64",
|
|
14094
|
+
"maximum": 9007199254740991,
|
|
14095
|
+
"minimum": -9007199254740991
|
|
13296
14096
|
},
|
|
13297
14097
|
"kind": {
|
|
13298
14098
|
"type": "string",
|
|
13299
|
-
"const": "
|
|
14099
|
+
"const": "duration.rounds"
|
|
13300
14100
|
}
|
|
13301
14101
|
},
|
|
13302
14102
|
"required": [
|
|
13303
|
-
"kind"
|
|
14103
|
+
"kind",
|
|
14104
|
+
"count"
|
|
13304
14105
|
]
|
|
13305
14106
|
},
|
|
13306
14107
|
{
|
|
13307
|
-
"description": "Give Shield token(s) to the selected unit(s).",
|
|
13308
14108
|
"type": "object",
|
|
13309
14109
|
"properties": {
|
|
13310
|
-
"
|
|
13311
|
-
"type":
|
|
13312
|
-
"integer",
|
|
13313
|
-
"null"
|
|
13314
|
-
],
|
|
13315
|
-
"format": "uint8",
|
|
13316
|
-
"maximum": 255,
|
|
13317
|
-
"minimum": 0
|
|
14110
|
+
"keyword": {
|
|
14111
|
+
"type": "string"
|
|
13318
14112
|
},
|
|
13319
14113
|
"kind": {
|
|
13320
14114
|
"type": "string",
|
|
13321
|
-
"const": "
|
|
14115
|
+
"const": "keyword.name"
|
|
13322
14116
|
}
|
|
13323
14117
|
},
|
|
13324
14118
|
"required": [
|
|
13325
|
-
"kind"
|
|
14119
|
+
"kind",
|
|
14120
|
+
"keyword"
|
|
13326
14121
|
]
|
|
13327
14122
|
},
|
|
13328
14123
|
{
|
|
13329
|
-
"description": "Remove Shield token(s) from the selected unit(s).",
|
|
13330
14124
|
"type": "object",
|
|
13331
14125
|
"properties": {
|
|
13332
14126
|
"kind": {
|
|
13333
14127
|
"type": "string",
|
|
13334
|
-
"const": "
|
|
14128
|
+
"const": "keyword.overwhelm"
|
|
13335
14129
|
}
|
|
13336
14130
|
},
|
|
13337
14131
|
"required": [
|
|
@@ -13339,21 +14133,11 @@
|
|
|
13339
14133
|
]
|
|
13340
14134
|
},
|
|
13341
14135
|
{
|
|
13342
|
-
"description": "Give Experience token(s) to the selected unit(s).",
|
|
13343
14136
|
"type": "object",
|
|
13344
14137
|
"properties": {
|
|
13345
|
-
"count": {
|
|
13346
|
-
"type": [
|
|
13347
|
-
"integer",
|
|
13348
|
-
"null"
|
|
13349
|
-
],
|
|
13350
|
-
"format": "uint8",
|
|
13351
|
-
"maximum": 255,
|
|
13352
|
-
"minimum": 0
|
|
13353
|
-
},
|
|
13354
14138
|
"kind": {
|
|
13355
14139
|
"type": "string",
|
|
13356
|
-
"const": "
|
|
14140
|
+
"const": "keyword.raid"
|
|
13357
14141
|
}
|
|
13358
14142
|
},
|
|
13359
14143
|
"required": [
|
|
@@ -13361,12 +14145,11 @@
|
|
|
13361
14145
|
]
|
|
13362
14146
|
},
|
|
13363
14147
|
{
|
|
13364
|
-
"description": "Move an Experience token from one unit to another: the first group picks\nthe unit losing the token, the second group picks the unit receiving it.",
|
|
13365
14148
|
"type": "object",
|
|
13366
14149
|
"properties": {
|
|
13367
14150
|
"kind": {
|
|
13368
14151
|
"type": "string",
|
|
13369
|
-
"const": "
|
|
14152
|
+
"const": "keyword.sentinel"
|
|
13370
14153
|
}
|
|
13371
14154
|
},
|
|
13372
14155
|
"required": [
|
|
@@ -13374,56 +14157,27 @@
|
|
|
13374
14157
|
]
|
|
13375
14158
|
},
|
|
13376
14159
|
{
|
|
13377
|
-
"description": "Give Advantage token(s) to the selected unit(s).",
|
|
13378
14160
|
"type": "object",
|
|
13379
14161
|
"properties": {
|
|
13380
|
-
"count": {
|
|
13381
|
-
"type": [
|
|
13382
|
-
"integer",
|
|
13383
|
-
"null"
|
|
13384
|
-
],
|
|
13385
|
-
"format": "uint8",
|
|
13386
|
-
"maximum": 255,
|
|
13387
|
-
"minimum": 0
|
|
13388
|
-
},
|
|
13389
14162
|
"kind": {
|
|
13390
14163
|
"type": "string",
|
|
13391
|
-
"const": "
|
|
13392
|
-
}
|
|
13393
|
-
},
|
|
13394
|
-
"required": [
|
|
13395
|
-
"kind"
|
|
13396
|
-
]
|
|
13397
|
-
},
|
|
13398
|
-
{
|
|
13399
|
-
"description": "Create token(s) for the selected player. `count` is `None` when the\namount is dynamic (for example per match count or remembered unit cost).",
|
|
13400
|
-
"type": "object",
|
|
13401
|
-
"properties": {
|
|
13402
|
-
"count": {
|
|
13403
|
-
"type": [
|
|
13404
|
-
"integer",
|
|
13405
|
-
"null"
|
|
13406
|
-
],
|
|
13407
|
-
"format": "uint8",
|
|
13408
|
-
"maximum": 255,
|
|
13409
|
-
"minimum": 0
|
|
14164
|
+
"const": "legacyText"
|
|
13410
14165
|
},
|
|
13411
|
-
"
|
|
13412
|
-
"type": "string"
|
|
13413
|
-
"const": "createToken"
|
|
14166
|
+
"text": {
|
|
14167
|
+
"type": "string"
|
|
13414
14168
|
}
|
|
13415
14169
|
},
|
|
13416
14170
|
"required": [
|
|
13417
|
-
"kind"
|
|
14171
|
+
"kind",
|
|
14172
|
+
"text"
|
|
13418
14173
|
]
|
|
13419
14174
|
},
|
|
13420
14175
|
{
|
|
13421
|
-
"description": "Modify the selected unit(s)' power/HP (buff or debuff).",
|
|
13422
14176
|
"type": "object",
|
|
13423
14177
|
"properties": {
|
|
13424
14178
|
"kind": {
|
|
13425
14179
|
"type": "string",
|
|
13426
|
-
"const": "
|
|
14180
|
+
"const": "targetPurpose.attachUpgrade"
|
|
13427
14181
|
}
|
|
13428
14182
|
},
|
|
13429
14183
|
"required": [
|
|
@@ -13431,12 +14185,11 @@
|
|
|
13431
14185
|
]
|
|
13432
14186
|
},
|
|
13433
14187
|
{
|
|
13434
|
-
"description": "Defeat the selected unit(s).",
|
|
13435
14188
|
"type": "object",
|
|
13436
14189
|
"properties": {
|
|
13437
14190
|
"kind": {
|
|
13438
14191
|
"type": "string",
|
|
13439
|
-
"const": "
|
|
14192
|
+
"const": "targetPurpose.chooseTarget"
|
|
13440
14193
|
}
|
|
13441
14194
|
},
|
|
13442
14195
|
"required": [
|
|
@@ -13444,77 +14197,315 @@
|
|
|
13444
14197
|
]
|
|
13445
14198
|
},
|
|
13446
14199
|
{
|
|
13447
|
-
"description": "Defeat the selected upgrade(s).",
|
|
13448
14200
|
"type": "object",
|
|
13449
14201
|
"properties": {
|
|
14202
|
+
"amount": {
|
|
14203
|
+
"type": "integer",
|
|
14204
|
+
"format": "int64",
|
|
14205
|
+
"maximum": 9007199254740991,
|
|
14206
|
+
"minimum": -9007199254740991
|
|
14207
|
+
},
|
|
13450
14208
|
"kind": {
|
|
13451
14209
|
"type": "string",
|
|
13452
|
-
"const": "
|
|
14210
|
+
"const": "targetPurpose.dealDamage"
|
|
13453
14211
|
}
|
|
13454
14212
|
},
|
|
13455
14213
|
"required": [
|
|
13456
|
-
"kind"
|
|
14214
|
+
"kind",
|
|
14215
|
+
"amount"
|
|
13457
14216
|
]
|
|
13458
14217
|
},
|
|
13459
14218
|
{
|
|
13460
|
-
"description": "Capture the selected unit(s).",
|
|
13461
14219
|
"type": "object",
|
|
13462
14220
|
"properties": {
|
|
14221
|
+
"amount": {
|
|
14222
|
+
"type": "integer",
|
|
14223
|
+
"format": "int64",
|
|
14224
|
+
"maximum": 9007199254740991,
|
|
14225
|
+
"minimum": -9007199254740991
|
|
14226
|
+
},
|
|
13463
14227
|
"kind": {
|
|
13464
14228
|
"type": "string",
|
|
13465
|
-
"const": "
|
|
14229
|
+
"const": "targetPurpose.giveShield"
|
|
13466
14230
|
}
|
|
13467
14231
|
},
|
|
13468
14232
|
"required": [
|
|
13469
|
-
"kind"
|
|
14233
|
+
"kind",
|
|
14234
|
+
"amount"
|
|
13470
14235
|
]
|
|
13471
14236
|
},
|
|
13472
14237
|
{
|
|
13473
|
-
"description": "Rescue the selected captured card into play under its owner.",
|
|
13474
14238
|
"type": "object",
|
|
13475
14239
|
"properties": {
|
|
14240
|
+
"amount": {
|
|
14241
|
+
"type": "integer",
|
|
14242
|
+
"format": "int64",
|
|
14243
|
+
"maximum": 9007199254740991,
|
|
14244
|
+
"minimum": -9007199254740991
|
|
14245
|
+
},
|
|
13476
14246
|
"kind": {
|
|
13477
14247
|
"type": "string",
|
|
13478
|
-
"const": "
|
|
14248
|
+
"const": "targetPurpose.heal"
|
|
13479
14249
|
}
|
|
13480
14250
|
},
|
|
13481
14251
|
"required": [
|
|
13482
|
-
"kind"
|
|
14252
|
+
"kind",
|
|
14253
|
+
"amount"
|
|
13483
14254
|
]
|
|
13484
14255
|
},
|
|
13485
14256
|
{
|
|
13486
|
-
"description": "Discard the selected captured card.",
|
|
13487
14257
|
"type": "object",
|
|
13488
14258
|
"properties": {
|
|
13489
14259
|
"kind": {
|
|
13490
14260
|
"type": "string",
|
|
13491
|
-
"const": "
|
|
14261
|
+
"const": "timing.onceEachRound"
|
|
13492
14262
|
}
|
|
13493
14263
|
},
|
|
13494
14264
|
"required": [
|
|
13495
14265
|
"kind"
|
|
13496
14266
|
]
|
|
13497
|
-
}
|
|
13498
|
-
|
|
13499
|
-
|
|
13500
|
-
|
|
13501
|
-
|
|
13502
|
-
|
|
13503
|
-
|
|
13504
|
-
|
|
14267
|
+
}
|
|
14268
|
+
]
|
|
14269
|
+
},
|
|
14270
|
+
"SimulatorReportResponse": {
|
|
14271
|
+
"description": "Full sanitized support bundle returned only by the simulator admin API.",
|
|
14272
|
+
"type": "object",
|
|
14273
|
+
"properties": {
|
|
14274
|
+
"bundle": true,
|
|
14275
|
+
"bundleAvailable": {
|
|
14276
|
+
"type": "boolean"
|
|
14277
|
+
},
|
|
14278
|
+
"failureKind": {
|
|
14279
|
+
"type": "string"
|
|
14280
|
+
},
|
|
14281
|
+
"firstOccurredAtMs": {
|
|
14282
|
+
"type": "integer",
|
|
14283
|
+
"format": "uint64",
|
|
14284
|
+
"minimum": 0
|
|
14285
|
+
},
|
|
14286
|
+
"matchId": {
|
|
14287
|
+
"type": "string",
|
|
14288
|
+
"format": "uuid"
|
|
14289
|
+
},
|
|
14290
|
+
"message": {
|
|
14291
|
+
"type": "string"
|
|
14292
|
+
},
|
|
14293
|
+
"occurredAtMs": {
|
|
14294
|
+
"type": "integer",
|
|
14295
|
+
"format": "uint64",
|
|
14296
|
+
"minimum": 0
|
|
14297
|
+
},
|
|
14298
|
+
"occurrenceCount": {
|
|
14299
|
+
"type": "integer",
|
|
14300
|
+
"format": "uint32",
|
|
14301
|
+
"minimum": 0
|
|
14302
|
+
},
|
|
14303
|
+
"operation": {
|
|
14304
|
+
"type": "string"
|
|
14305
|
+
},
|
|
14306
|
+
"reportId": {
|
|
14307
|
+
"type": "string",
|
|
14308
|
+
"format": "uuid"
|
|
14309
|
+
},
|
|
14310
|
+
"seat": {
|
|
14311
|
+
"anyOf": [
|
|
14312
|
+
{
|
|
14313
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
|
|
14314
|
+
},
|
|
14315
|
+
{
|
|
14316
|
+
"type": "null"
|
|
14317
|
+
}
|
|
14318
|
+
]
|
|
14319
|
+
},
|
|
14320
|
+
"snapshotRevision": {
|
|
14321
|
+
"type": [
|
|
14322
|
+
"integer",
|
|
14323
|
+
"null"
|
|
14324
|
+
],
|
|
14325
|
+
"format": "uint64",
|
|
14326
|
+
"minimum": 0
|
|
14327
|
+
},
|
|
14328
|
+
"source": {
|
|
14329
|
+
"type": "string"
|
|
14330
|
+
}
|
|
14331
|
+
},
|
|
14332
|
+
"required": [
|
|
14333
|
+
"reportId",
|
|
14334
|
+
"firstOccurredAtMs",
|
|
14335
|
+
"occurredAtMs",
|
|
14336
|
+
"occurrenceCount",
|
|
14337
|
+
"matchId",
|
|
14338
|
+
"source",
|
|
14339
|
+
"operation",
|
|
14340
|
+
"failureKind",
|
|
14341
|
+
"bundleAvailable",
|
|
14342
|
+
"message"
|
|
14343
|
+
]
|
|
14344
|
+
},
|
|
14345
|
+
"SimulatorReportSummary": {
|
|
14346
|
+
"description": "Metadata safe to return in administrator report lists.",
|
|
14347
|
+
"type": "object",
|
|
14348
|
+
"properties": {
|
|
14349
|
+
"bundleAvailable": {
|
|
14350
|
+
"type": "boolean"
|
|
14351
|
+
},
|
|
14352
|
+
"failureKind": {
|
|
14353
|
+
"type": "string"
|
|
14354
|
+
},
|
|
14355
|
+
"firstOccurredAtMs": {
|
|
14356
|
+
"type": "integer",
|
|
14357
|
+
"format": "uint64",
|
|
14358
|
+
"minimum": 0
|
|
14359
|
+
},
|
|
14360
|
+
"matchId": {
|
|
14361
|
+
"type": "string",
|
|
14362
|
+
"format": "uuid"
|
|
14363
|
+
},
|
|
14364
|
+
"occurredAtMs": {
|
|
14365
|
+
"type": "integer",
|
|
14366
|
+
"format": "uint64",
|
|
14367
|
+
"minimum": 0
|
|
14368
|
+
},
|
|
14369
|
+
"occurrenceCount": {
|
|
14370
|
+
"type": "integer",
|
|
14371
|
+
"format": "uint32",
|
|
14372
|
+
"minimum": 0
|
|
14373
|
+
},
|
|
14374
|
+
"operation": {
|
|
14375
|
+
"type": "string"
|
|
14376
|
+
},
|
|
14377
|
+
"reportId": {
|
|
14378
|
+
"type": "string",
|
|
14379
|
+
"format": "uuid"
|
|
14380
|
+
},
|
|
14381
|
+
"seat": {
|
|
14382
|
+
"anyOf": [
|
|
14383
|
+
{
|
|
14384
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
|
|
14385
|
+
},
|
|
14386
|
+
{
|
|
14387
|
+
"type": "null"
|
|
13505
14388
|
}
|
|
13506
|
-
},
|
|
13507
|
-
"required": [
|
|
13508
|
-
"kind"
|
|
13509
14389
|
]
|
|
13510
14390
|
},
|
|
14391
|
+
"snapshotRevision": {
|
|
14392
|
+
"type": [
|
|
14393
|
+
"integer",
|
|
14394
|
+
"null"
|
|
14395
|
+
],
|
|
14396
|
+
"format": "uint64",
|
|
14397
|
+
"minimum": 0
|
|
14398
|
+
},
|
|
14399
|
+
"source": {
|
|
14400
|
+
"type": "string"
|
|
14401
|
+
}
|
|
14402
|
+
},
|
|
14403
|
+
"required": [
|
|
14404
|
+
"reportId",
|
|
14405
|
+
"firstOccurredAtMs",
|
|
14406
|
+
"occurredAtMs",
|
|
14407
|
+
"occurrenceCount",
|
|
14408
|
+
"matchId",
|
|
14409
|
+
"source",
|
|
14410
|
+
"operation",
|
|
14411
|
+
"failureKind",
|
|
14412
|
+
"bundleAvailable"
|
|
14413
|
+
]
|
|
14414
|
+
},
|
|
14415
|
+
"SimulatorRuntimeStats": {
|
|
14416
|
+
"description": "Admin-visible operational counters for the simulator engine.",
|
|
14417
|
+
"type": "object",
|
|
14418
|
+
"properties": {
|
|
14419
|
+
"activeLimitedEvents": {
|
|
14420
|
+
"description": "Limited Event records still retained by the limited runtime.",
|
|
14421
|
+
"type": "integer",
|
|
14422
|
+
"format": "uint64",
|
|
14423
|
+
"minimum": 0
|
|
14424
|
+
},
|
|
14425
|
+
"activeMatches": {
|
|
14426
|
+
"description": "Live sessions that have not completed their series.",
|
|
14427
|
+
"type": "integer",
|
|
14428
|
+
"format": "uint64",
|
|
14429
|
+
"minimum": 0
|
|
14430
|
+
},
|
|
14431
|
+
"retainedFinishedMatches": {
|
|
14432
|
+
"description": "Completed sessions still retained until cleanup.",
|
|
14433
|
+
"type": "integer",
|
|
14434
|
+
"format": "uint64",
|
|
14435
|
+
"minimum": 0
|
|
14436
|
+
},
|
|
14437
|
+
"tournamentRooms": {
|
|
14438
|
+
"description": "Tournament room records still retained by the tournament runtime.",
|
|
14439
|
+
"type": "integer",
|
|
14440
|
+
"format": "uint64",
|
|
14441
|
+
"minimum": 0
|
|
14442
|
+
},
|
|
14443
|
+
"waitingLobbies": {
|
|
14444
|
+
"description": "Waiting or started lobby records still retained by the lobby runtime.",
|
|
14445
|
+
"type": "integer",
|
|
14446
|
+
"format": "uint64",
|
|
14447
|
+
"minimum": 0
|
|
14448
|
+
}
|
|
14449
|
+
},
|
|
14450
|
+
"required": [
|
|
14451
|
+
"activeMatches",
|
|
14452
|
+
"retainedFinishedMatches",
|
|
14453
|
+
"waitingLobbies",
|
|
14454
|
+
"activeLimitedEvents",
|
|
14455
|
+
"tournamentRooms"
|
|
14456
|
+
]
|
|
14457
|
+
},
|
|
14458
|
+
"SmuggleActionView": {
|
|
14459
|
+
"type": "object",
|
|
14460
|
+
"properties": {
|
|
14461
|
+
"kind": {
|
|
14462
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/SmuggleKind"
|
|
14463
|
+
},
|
|
14464
|
+
"resourceCost": {
|
|
14465
|
+
"type": "integer",
|
|
14466
|
+
"format": "uint",
|
|
14467
|
+
"minimum": 0
|
|
14468
|
+
},
|
|
14469
|
+
"validCostTargets": {
|
|
14470
|
+
"type": "array",
|
|
14471
|
+
"items": {
|
|
14472
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/AbilityTarget"
|
|
14473
|
+
}
|
|
14474
|
+
}
|
|
14475
|
+
},
|
|
14476
|
+
"required": [
|
|
14477
|
+
"kind",
|
|
14478
|
+
"resourceCost",
|
|
14479
|
+
"validCostTargets"
|
|
14480
|
+
]
|
|
14481
|
+
},
|
|
14482
|
+
"SmuggleKind": {
|
|
14483
|
+
"description": "Distinguishes printed-Smuggle keyword usage from runtime-granted\nSmuggle (via card hooks). Stored in the parsed effect AST so the\nresolver can dispatch the correct play path.",
|
|
14484
|
+
"type": "string",
|
|
14485
|
+
"enum": [
|
|
14486
|
+
"printed",
|
|
14487
|
+
"granted"
|
|
14488
|
+
]
|
|
14489
|
+
},
|
|
14490
|
+
"TargetGroupPurpose": {
|
|
14491
|
+
"description": "Structural, localization-friendly description of *what a target-selection\ngroup is for*.\n\nThe engine builds target groups positionally from typed effect variants. The\n`purpose` carries the rules-meaning of each group so a UI can render a\nlocalized per-clause label (e.g. \"Choose a unit to deal 2 damage to\") without\nregex-parsing printed card text.\n\nOne variant exists for each meaningful targeting action a triggered effect\ncan request. Useful structural parameters are carried where they are known at\ngroup-construction time (e.g. the fixed damage `amount`). Dynamic amounts\n(e.g. \"damage equal to this unit's power\") carry `None`. [`Self::Other`] is\nreserved for genuinely unclassifiable targeting and is intentionally rare.",
|
|
14492
|
+
"oneOf": [
|
|
13511
14493
|
{
|
|
13512
|
-
"description": "
|
|
14494
|
+
"description": "Deal damage to the selected target(s). `amount` is the fixed damage when\nstatically known, `None` for dynamic/derived amounts.",
|
|
13513
14495
|
"type": "object",
|
|
13514
14496
|
"properties": {
|
|
14497
|
+
"amount": {
|
|
14498
|
+
"type": [
|
|
14499
|
+
"integer",
|
|
14500
|
+
"null"
|
|
14501
|
+
],
|
|
14502
|
+
"format": "int16",
|
|
14503
|
+
"maximum": 32767,
|
|
14504
|
+
"minimum": -32768
|
|
14505
|
+
},
|
|
13515
14506
|
"kind": {
|
|
13516
14507
|
"type": "string",
|
|
13517
|
-
"const": "
|
|
14508
|
+
"const": "dealDamage"
|
|
13518
14509
|
}
|
|
13519
14510
|
},
|
|
13520
14511
|
"required": [
|
|
@@ -13522,12 +14513,21 @@
|
|
|
13522
14513
|
]
|
|
13523
14514
|
},
|
|
13524
14515
|
{
|
|
13525
|
-
"description": "
|
|
14516
|
+
"description": "Heal damage from the selected unit(s) or base(s).",
|
|
13526
14517
|
"type": "object",
|
|
13527
14518
|
"properties": {
|
|
14519
|
+
"amount": {
|
|
14520
|
+
"type": [
|
|
14521
|
+
"integer",
|
|
14522
|
+
"null"
|
|
14523
|
+
],
|
|
14524
|
+
"format": "int16",
|
|
14525
|
+
"maximum": 32767,
|
|
14526
|
+
"minimum": -32768
|
|
14527
|
+
},
|
|
13528
14528
|
"kind": {
|
|
13529
14529
|
"type": "string",
|
|
13530
|
-
"const": "
|
|
14530
|
+
"const": "heal"
|
|
13531
14531
|
}
|
|
13532
14532
|
},
|
|
13533
14533
|
"required": [
|
|
@@ -13535,10 +14535,241 @@
|
|
|
13535
14535
|
]
|
|
13536
14536
|
},
|
|
13537
14537
|
{
|
|
13538
|
-
"description": "
|
|
14538
|
+
"description": "Give Shield token(s) to the selected unit(s).",
|
|
13539
14539
|
"type": "object",
|
|
13540
14540
|
"properties": {
|
|
13541
|
-
"
|
|
14541
|
+
"amount": {
|
|
14542
|
+
"type": [
|
|
14543
|
+
"integer",
|
|
14544
|
+
"null"
|
|
14545
|
+
],
|
|
14546
|
+
"format": "uint8",
|
|
14547
|
+
"maximum": 255,
|
|
14548
|
+
"minimum": 0
|
|
14549
|
+
},
|
|
14550
|
+
"kind": {
|
|
14551
|
+
"type": "string",
|
|
14552
|
+
"const": "giveShield"
|
|
14553
|
+
}
|
|
14554
|
+
},
|
|
14555
|
+
"required": [
|
|
14556
|
+
"kind"
|
|
14557
|
+
]
|
|
14558
|
+
},
|
|
14559
|
+
{
|
|
14560
|
+
"description": "Remove Shield token(s) from the selected unit(s).",
|
|
14561
|
+
"type": "object",
|
|
14562
|
+
"properties": {
|
|
14563
|
+
"kind": {
|
|
14564
|
+
"type": "string",
|
|
14565
|
+
"const": "removeShield"
|
|
14566
|
+
}
|
|
14567
|
+
},
|
|
14568
|
+
"required": [
|
|
14569
|
+
"kind"
|
|
14570
|
+
]
|
|
14571
|
+
},
|
|
14572
|
+
{
|
|
14573
|
+
"description": "Give Experience token(s) to the selected unit(s).",
|
|
14574
|
+
"type": "object",
|
|
14575
|
+
"properties": {
|
|
14576
|
+
"count": {
|
|
14577
|
+
"type": [
|
|
14578
|
+
"integer",
|
|
14579
|
+
"null"
|
|
14580
|
+
],
|
|
14581
|
+
"format": "uint8",
|
|
14582
|
+
"maximum": 255,
|
|
14583
|
+
"minimum": 0
|
|
14584
|
+
},
|
|
14585
|
+
"kind": {
|
|
14586
|
+
"type": "string",
|
|
14587
|
+
"const": "giveExperience"
|
|
14588
|
+
}
|
|
14589
|
+
},
|
|
14590
|
+
"required": [
|
|
14591
|
+
"kind"
|
|
14592
|
+
]
|
|
14593
|
+
},
|
|
14594
|
+
{
|
|
14595
|
+
"description": "Move an Experience token from one unit to another: the first group picks\nthe unit losing the token, the second group picks the unit receiving it.",
|
|
14596
|
+
"type": "object",
|
|
14597
|
+
"properties": {
|
|
14598
|
+
"kind": {
|
|
14599
|
+
"type": "string",
|
|
14600
|
+
"const": "moveExperience"
|
|
14601
|
+
}
|
|
14602
|
+
},
|
|
14603
|
+
"required": [
|
|
14604
|
+
"kind"
|
|
14605
|
+
]
|
|
14606
|
+
},
|
|
14607
|
+
{
|
|
14608
|
+
"description": "Give Advantage token(s) to the selected unit(s).",
|
|
14609
|
+
"type": "object",
|
|
14610
|
+
"properties": {
|
|
14611
|
+
"count": {
|
|
14612
|
+
"type": [
|
|
14613
|
+
"integer",
|
|
14614
|
+
"null"
|
|
14615
|
+
],
|
|
14616
|
+
"format": "uint8",
|
|
14617
|
+
"maximum": 255,
|
|
14618
|
+
"minimum": 0
|
|
14619
|
+
},
|
|
14620
|
+
"kind": {
|
|
14621
|
+
"type": "string",
|
|
14622
|
+
"const": "giveAdvantage"
|
|
14623
|
+
}
|
|
14624
|
+
},
|
|
14625
|
+
"required": [
|
|
14626
|
+
"kind"
|
|
14627
|
+
]
|
|
14628
|
+
},
|
|
14629
|
+
{
|
|
14630
|
+
"description": "Create token(s) for the selected player. `count` is `None` when the\namount is dynamic (for example per match count or remembered unit cost).",
|
|
14631
|
+
"type": "object",
|
|
14632
|
+
"properties": {
|
|
14633
|
+
"count": {
|
|
14634
|
+
"type": [
|
|
14635
|
+
"integer",
|
|
14636
|
+
"null"
|
|
14637
|
+
],
|
|
14638
|
+
"format": "uint8",
|
|
14639
|
+
"maximum": 255,
|
|
14640
|
+
"minimum": 0
|
|
14641
|
+
},
|
|
14642
|
+
"kind": {
|
|
14643
|
+
"type": "string",
|
|
14644
|
+
"const": "createToken"
|
|
14645
|
+
}
|
|
14646
|
+
},
|
|
14647
|
+
"required": [
|
|
14648
|
+
"kind"
|
|
14649
|
+
]
|
|
14650
|
+
},
|
|
14651
|
+
{
|
|
14652
|
+
"description": "Modify the selected unit(s)' power/HP (buff or debuff).",
|
|
14653
|
+
"type": "object",
|
|
14654
|
+
"properties": {
|
|
14655
|
+
"kind": {
|
|
14656
|
+
"type": "string",
|
|
14657
|
+
"const": "modifyStats"
|
|
14658
|
+
}
|
|
14659
|
+
},
|
|
14660
|
+
"required": [
|
|
14661
|
+
"kind"
|
|
14662
|
+
]
|
|
14663
|
+
},
|
|
14664
|
+
{
|
|
14665
|
+
"description": "Defeat the selected unit(s).",
|
|
14666
|
+
"type": "object",
|
|
14667
|
+
"properties": {
|
|
14668
|
+
"kind": {
|
|
14669
|
+
"type": "string",
|
|
14670
|
+
"const": "defeat"
|
|
14671
|
+
}
|
|
14672
|
+
},
|
|
14673
|
+
"required": [
|
|
14674
|
+
"kind"
|
|
14675
|
+
]
|
|
14676
|
+
},
|
|
14677
|
+
{
|
|
14678
|
+
"description": "Defeat the selected upgrade(s).",
|
|
14679
|
+
"type": "object",
|
|
14680
|
+
"properties": {
|
|
14681
|
+
"kind": {
|
|
14682
|
+
"type": "string",
|
|
14683
|
+
"const": "defeatUpgrade"
|
|
14684
|
+
}
|
|
14685
|
+
},
|
|
14686
|
+
"required": [
|
|
14687
|
+
"kind"
|
|
14688
|
+
]
|
|
14689
|
+
},
|
|
14690
|
+
{
|
|
14691
|
+
"description": "Capture the selected unit(s).",
|
|
14692
|
+
"type": "object",
|
|
14693
|
+
"properties": {
|
|
14694
|
+
"kind": {
|
|
14695
|
+
"type": "string",
|
|
14696
|
+
"const": "capture"
|
|
14697
|
+
}
|
|
14698
|
+
},
|
|
14699
|
+
"required": [
|
|
14700
|
+
"kind"
|
|
14701
|
+
]
|
|
14702
|
+
},
|
|
14703
|
+
{
|
|
14704
|
+
"description": "Rescue the selected captured card into play under its owner.",
|
|
14705
|
+
"type": "object",
|
|
14706
|
+
"properties": {
|
|
14707
|
+
"kind": {
|
|
14708
|
+
"type": "string",
|
|
14709
|
+
"const": "rescueCaptured"
|
|
14710
|
+
}
|
|
14711
|
+
},
|
|
14712
|
+
"required": [
|
|
14713
|
+
"kind"
|
|
14714
|
+
]
|
|
14715
|
+
},
|
|
14716
|
+
{
|
|
14717
|
+
"description": "Discard the selected captured card.",
|
|
14718
|
+
"type": "object",
|
|
14719
|
+
"properties": {
|
|
14720
|
+
"kind": {
|
|
14721
|
+
"type": "string",
|
|
14722
|
+
"const": "discardCaptured"
|
|
14723
|
+
}
|
|
14724
|
+
},
|
|
14725
|
+
"required": [
|
|
14726
|
+
"kind"
|
|
14727
|
+
]
|
|
14728
|
+
},
|
|
14729
|
+
{
|
|
14730
|
+
"description": "Play the selected captured card.",
|
|
14731
|
+
"type": "object",
|
|
14732
|
+
"properties": {
|
|
14733
|
+
"kind": {
|
|
14734
|
+
"type": "string",
|
|
14735
|
+
"const": "playCaptured"
|
|
14736
|
+
}
|
|
14737
|
+
},
|
|
14738
|
+
"required": [
|
|
14739
|
+
"kind"
|
|
14740
|
+
]
|
|
14741
|
+
},
|
|
14742
|
+
{
|
|
14743
|
+
"description": "Return the selected card/unit to its owner's hand.",
|
|
14744
|
+
"type": "object",
|
|
14745
|
+
"properties": {
|
|
14746
|
+
"kind": {
|
|
14747
|
+
"type": "string",
|
|
14748
|
+
"const": "returnToHand"
|
|
14749
|
+
}
|
|
14750
|
+
},
|
|
14751
|
+
"required": [
|
|
14752
|
+
"kind"
|
|
14753
|
+
]
|
|
14754
|
+
},
|
|
14755
|
+
{
|
|
14756
|
+
"description": "Return the selected upgrade to its owner's hand.",
|
|
14757
|
+
"type": "object",
|
|
14758
|
+
"properties": {
|
|
14759
|
+
"kind": {
|
|
14760
|
+
"type": "string",
|
|
14761
|
+
"const": "returnUpgradeToHand"
|
|
14762
|
+
}
|
|
14763
|
+
},
|
|
14764
|
+
"required": [
|
|
14765
|
+
"kind"
|
|
14766
|
+
]
|
|
14767
|
+
},
|
|
14768
|
+
{
|
|
14769
|
+
"description": "Return the selected card/unit to the top or bottom of its owner's deck.",
|
|
14770
|
+
"type": "object",
|
|
14771
|
+
"properties": {
|
|
14772
|
+
"kind": {
|
|
13542
14773
|
"type": "string",
|
|
13543
14774
|
"const": "returnToDeck"
|
|
13544
14775
|
}
|
|
@@ -13919,6 +15150,13 @@
|
|
|
13919
15150
|
}
|
|
13920
15151
|
]
|
|
13921
15152
|
},
|
|
15153
|
+
"textReferences": {
|
|
15154
|
+
"description": "Reviewed printed text that produced this exact group.\n\nReferences are locale-neutral and preserve nested printed-effect\nownership without placing card prose in public match state.",
|
|
15155
|
+
"type": "array",
|
|
15156
|
+
"items": {
|
|
15157
|
+
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/CardTextRef"
|
|
15158
|
+
}
|
|
15159
|
+
},
|
|
13922
15160
|
"validTargets": {
|
|
13923
15161
|
"type": "array",
|
|
13924
15162
|
"items": {
|
|
@@ -14005,6 +15243,11 @@
|
|
|
14005
15243
|
"host": {
|
|
14006
15244
|
"type": "boolean"
|
|
14007
15245
|
},
|
|
15246
|
+
"isAi": {
|
|
15247
|
+
"description": "Whether server automation permanently controls this participant.",
|
|
15248
|
+
"type": "boolean",
|
|
15249
|
+
"default": false
|
|
15250
|
+
},
|
|
14008
15251
|
"joinedAtMs": {
|
|
14009
15252
|
"type": "integer",
|
|
14010
15253
|
"format": "uint64",
|
|
@@ -14369,14 +15612,6 @@
|
|
|
14369
15612
|
}
|
|
14370
15613
|
]
|
|
14371
15614
|
},
|
|
14372
|
-
"UniquenessFilter": {
|
|
14373
|
-
"type": "string",
|
|
14374
|
-
"enum": [
|
|
14375
|
-
"Any",
|
|
14376
|
-
"Unique",
|
|
14377
|
-
"NonUnique"
|
|
14378
|
-
]
|
|
14379
|
-
},
|
|
14380
15615
|
"UnitAbilitySuppressionView": {
|
|
14381
15616
|
"type": "string",
|
|
14382
15617
|
"enum": [
|
|
@@ -14414,562 +15649,6 @@
|
|
|
14414
15649
|
"damage"
|
|
14415
15650
|
]
|
|
14416
15651
|
},
|
|
14417
|
-
"UnitExtremum": {
|
|
14418
|
-
"oneOf": [
|
|
14419
|
-
{
|
|
14420
|
-
"type": "string",
|
|
14421
|
-
"enum": [
|
|
14422
|
-
"LeastRemainingHp"
|
|
14423
|
-
]
|
|
14424
|
-
},
|
|
14425
|
-
{
|
|
14426
|
-
"description": "Selects the unit(s) with the highest effective power.",
|
|
14427
|
-
"type": "string",
|
|
14428
|
-
"const": "MostPower"
|
|
14429
|
-
},
|
|
14430
|
-
{
|
|
14431
|
-
"description": "Selects every unit tied for highest printed cost in filtered set.",
|
|
14432
|
-
"type": "string",
|
|
14433
|
-
"const": "HighestPrintedCost"
|
|
14434
|
-
}
|
|
14435
|
-
]
|
|
14436
|
-
},
|
|
14437
|
-
"UnitFilter": {
|
|
14438
|
-
"type": "object",
|
|
14439
|
-
"properties": {
|
|
14440
|
-
"alternatives": {
|
|
14441
|
-
"description": "Matches when any complete alternative filter matches.\n\nThis keeps `one_of((unit_selector_a, unit_selector_b))` orthogonal\nwithout flattening distinct restrictions into one lossy filter.",
|
|
14442
|
-
"type": "array",
|
|
14443
|
-
"default": [],
|
|
14444
|
-
"items": {
|
|
14445
|
-
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/UnitFilter"
|
|
14446
|
-
}
|
|
14447
|
-
},
|
|
14448
|
-
"arena": {
|
|
14449
|
-
"anyOf": [
|
|
14450
|
-
{
|
|
14451
|
-
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/CardArena"
|
|
14452
|
-
},
|
|
14453
|
-
{
|
|
14454
|
-
"type": "null"
|
|
14455
|
-
}
|
|
14456
|
-
]
|
|
14457
|
-
},
|
|
14458
|
-
"attacked_base_this_phase": {
|
|
14459
|
-
"type": "boolean"
|
|
14460
|
-
},
|
|
14461
|
-
"controller": {
|
|
14462
|
-
"description": "Requires current control by one typed player independently from the\nbroad source-relative relation.",
|
|
14463
|
-
"anyOf": [
|
|
14464
|
-
{
|
|
14465
|
-
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/PlayerTargetPattern"
|
|
14466
|
-
},
|
|
14467
|
-
{
|
|
14468
|
-
"type": "null"
|
|
14469
|
-
}
|
|
14470
|
-
],
|
|
14471
|
-
"default": null
|
|
14472
|
-
},
|
|
14473
|
-
"controller_is_another_player": {
|
|
14474
|
-
"description": "Marks a count whose Units must all be controlled by one other player.\n\nThis is consumed by `Condition::AnotherPlayerControlsUnitsAtLeast`\nbefore the filter reaches ordinary target matching.",
|
|
14475
|
-
"type": "boolean",
|
|
14476
|
-
"default": false
|
|
14477
|
-
},
|
|
14478
|
-
"controller_is_remembered_player": {
|
|
14479
|
-
"type": "boolean"
|
|
14480
|
-
},
|
|
14481
|
-
"dealt_base_damage_this_phase": {
|
|
14482
|
-
"type": "boolean"
|
|
14483
|
-
},
|
|
14484
|
-
"different_arena_from_source": {
|
|
14485
|
-
"description": "Matches a Unit in the arena opposite the resolving source Unit.",
|
|
14486
|
-
"type": "boolean",
|
|
14487
|
-
"default": false
|
|
14488
|
-
},
|
|
14489
|
-
"different_aspect_from_remembered_card": {
|
|
14490
|
-
"type": "boolean"
|
|
14491
|
-
},
|
|
14492
|
-
"eligible_for_remembered_upgrade": {
|
|
14493
|
-
"description": "Requires legal attachment for Upgrade retained by preceding choice.",
|
|
14494
|
-
"type": "boolean",
|
|
14495
|
-
"default": false
|
|
14496
|
-
},
|
|
14497
|
-
"exact_cost": {
|
|
14498
|
-
"type": [
|
|
14499
|
-
"integer",
|
|
14500
|
-
"null"
|
|
14501
|
-
],
|
|
14502
|
-
"format": "uint8",
|
|
14503
|
-
"maximum": 255,
|
|
14504
|
-
"minimum": 0
|
|
14505
|
-
},
|
|
14506
|
-
"exact_cost_same_as_remembered_cost": {
|
|
14507
|
-
"description": "Only matches units whose cost equals context.remembered_unit_cost.",
|
|
14508
|
-
"type": "boolean",
|
|
14509
|
-
"default": false
|
|
14510
|
-
},
|
|
14511
|
-
"exact_power_equal_ready_resources": {
|
|
14512
|
-
"type": "boolean"
|
|
14513
|
-
},
|
|
14514
|
-
"exact_remaining_hp_equal_ready_resources": {
|
|
14515
|
-
"type": "boolean"
|
|
14516
|
-
},
|
|
14517
|
-
"exact_title": {
|
|
14518
|
-
"type": [
|
|
14519
|
-
"string",
|
|
14520
|
-
"null"
|
|
14521
|
-
]
|
|
14522
|
-
},
|
|
14523
|
-
"exact_titles_any": {
|
|
14524
|
-
"description": "Matches any unit whose title is in this list. When combined with\nrequired_traits_any, either a matching title or trait satisfies the\nname/trait requirement.",
|
|
14525
|
-
"type": "array",
|
|
14526
|
-
"items": {
|
|
14527
|
-
"type": "string"
|
|
14528
|
-
}
|
|
14529
|
-
},
|
|
14530
|
-
"exclude_attached_unit": {
|
|
14531
|
-
"description": "Excludes Unit hosting resolving source Upgrade.",
|
|
14532
|
-
"type": "boolean",
|
|
14533
|
-
"default": false
|
|
14534
|
-
},
|
|
14535
|
-
"exclude_previous_damage_dealer": {
|
|
14536
|
-
"description": "Excludes only the Unit that dealt the immediately preceding damage.",
|
|
14537
|
-
"type": "boolean",
|
|
14538
|
-
"default": false
|
|
14539
|
-
},
|
|
14540
|
-
"exclude_previously_selected": {
|
|
14541
|
-
"description": "Excludes every Unit already selected earlier in the resolving effect.\n\nDistinct from `require_other`, which only knows the source Unit and the\nsingle most recent selection: a third sequential choice (\"Give a third\nfriendly unit +1/+1\") has to exclude both earlier picks.",
|
|
14542
|
-
"anyOf": [
|
|
14543
|
-
{
|
|
14544
|
-
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/SelectionScope"
|
|
14545
|
-
},
|
|
14546
|
-
{
|
|
14547
|
-
"type": "null"
|
|
14548
|
-
}
|
|
14549
|
-
],
|
|
14550
|
-
"default": null
|
|
14551
|
-
},
|
|
14552
|
-
"exclude_remembered_units": {
|
|
14553
|
-
"description": "Excludes units retained by a preceding multi-target choice.",
|
|
14554
|
-
"type": "boolean",
|
|
14555
|
-
"default": false
|
|
14556
|
-
},
|
|
14557
|
-
"excluded_aspects": {
|
|
14558
|
-
"type": "array",
|
|
14559
|
-
"items": {
|
|
14560
|
-
"type": "string"
|
|
14561
|
-
}
|
|
14562
|
-
},
|
|
14563
|
-
"excluded_controller": {
|
|
14564
|
-
"description": "Excludes units currently controlled by one typed player.",
|
|
14565
|
-
"anyOf": [
|
|
14566
|
-
{
|
|
14567
|
-
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/PlayerTargetPattern"
|
|
14568
|
-
},
|
|
14569
|
-
{
|
|
14570
|
-
"type": "null"
|
|
14571
|
-
}
|
|
14572
|
-
],
|
|
14573
|
-
"default": null
|
|
14574
|
-
},
|
|
14575
|
-
"excluded_titles": {
|
|
14576
|
-
"description": "Excludes units with any listed canonical title.",
|
|
14577
|
-
"type": "array",
|
|
14578
|
-
"default": [],
|
|
14579
|
-
"items": {
|
|
14580
|
-
"type": "string"
|
|
14581
|
-
}
|
|
14582
|
-
},
|
|
14583
|
-
"excluded_traits": {
|
|
14584
|
-
"type": "array",
|
|
14585
|
-
"items": {
|
|
14586
|
-
"type": "string"
|
|
14587
|
-
}
|
|
14588
|
-
},
|
|
14589
|
-
"exploited_to_play_source": {
|
|
14590
|
-
"description": "Restricts iteration to Units exploited while playing resolving source card.",
|
|
14591
|
-
"type": "boolean",
|
|
14592
|
-
"default": false
|
|
14593
|
-
},
|
|
14594
|
-
"extremum": {
|
|
14595
|
-
"anyOf": [
|
|
14596
|
-
{
|
|
14597
|
-
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/UnitExtremum"
|
|
14598
|
-
},
|
|
14599
|
-
{
|
|
14600
|
-
"type": "null"
|
|
14601
|
-
}
|
|
14602
|
-
]
|
|
14603
|
-
},
|
|
14604
|
-
"max_cost": {
|
|
14605
|
-
"type": [
|
|
14606
|
-
"integer",
|
|
14607
|
-
"null"
|
|
14608
|
-
],
|
|
14609
|
-
"format": "uint8",
|
|
14610
|
-
"maximum": 255,
|
|
14611
|
-
"minimum": 0
|
|
14612
|
-
},
|
|
14613
|
-
"max_cost_less_than_combat_damage_to_base": {
|
|
14614
|
-
"description": "Only matches units whose printed cost is strictly less than the amount of\ncombat damage dealt to a base this attack\n(`context.combat_damage_dealt_to_base`). Shin Hati ASH 51762.",
|
|
14615
|
-
"type": "boolean",
|
|
14616
|
-
"default": false
|
|
14617
|
-
},
|
|
14618
|
-
"max_cost_same_or_less_than_remembered_cost": {
|
|
14619
|
-
"description": "Filters out units whose cost exceeds the cost stored in context.remembered_unit_cost.",
|
|
14620
|
-
"type": "boolean"
|
|
14621
|
-
},
|
|
14622
|
-
"max_cost_same_or_less_than_resources_paid_to_play": {
|
|
14623
|
-
"description": "Filters out units whose printed cost exceeds resources paid to play the\nsource card for current trigger.",
|
|
14624
|
-
"type": "boolean",
|
|
14625
|
-
"default": false
|
|
14626
|
-
},
|
|
14627
|
-
"max_cost_same_or_less_than_source": {
|
|
14628
|
-
"type": "boolean"
|
|
14629
|
-
},
|
|
14630
|
-
"max_power": {
|
|
14631
|
-
"type": [
|
|
14632
|
-
"integer",
|
|
14633
|
-
"null"
|
|
14634
|
-
],
|
|
14635
|
-
"format": "int16",
|
|
14636
|
-
"maximum": 32767,
|
|
14637
|
-
"minimum": -32768
|
|
14638
|
-
},
|
|
14639
|
-
"max_power_dynamic": {
|
|
14640
|
-
"description": "Dynamic alternative to a fixed `max_power`.",
|
|
14641
|
-
"anyOf": [
|
|
14642
|
-
{
|
|
14643
|
-
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/DynamicPowerLimit"
|
|
14644
|
-
},
|
|
14645
|
-
{
|
|
14646
|
-
"type": "null"
|
|
14647
|
-
}
|
|
14648
|
-
],
|
|
14649
|
-
"default": null
|
|
14650
|
-
},
|
|
14651
|
-
"max_power_less_than_any_friendly": {
|
|
14652
|
-
"description": "Only matches a unit whose power is strictly less than at least one\nfriendly unit's power (Ahsoka Tano 51727 action target restriction).",
|
|
14653
|
-
"type": "boolean",
|
|
14654
|
-
"default": false
|
|
14655
|
-
},
|
|
14656
|
-
"max_power_less_than_remembered_power": {
|
|
14657
|
-
"description": "Only matches Units with strictly less power than remembered Unit.",
|
|
14658
|
-
"type": "boolean",
|
|
14659
|
-
"default": false
|
|
14660
|
-
},
|
|
14661
|
-
"max_power_less_than_source": {
|
|
14662
|
-
"type": "boolean"
|
|
14663
|
-
},
|
|
14664
|
-
"max_power_same_or_less_than_remembered_power": {
|
|
14665
|
-
"description": "Filters out units whose power exceeds the power stored in context.remembered_unit_power.",
|
|
14666
|
-
"type": "boolean"
|
|
14667
|
-
},
|
|
14668
|
-
"max_remaining_hp": {
|
|
14669
|
-
"type": [
|
|
14670
|
-
"integer",
|
|
14671
|
-
"null"
|
|
14672
|
-
],
|
|
14673
|
-
"format": "int16",
|
|
14674
|
-
"maximum": 32767,
|
|
14675
|
-
"minimum": -32768
|
|
14676
|
-
},
|
|
14677
|
-
"max_remaining_hp_less_than_source": {
|
|
14678
|
-
"type": "boolean"
|
|
14679
|
-
},
|
|
14680
|
-
"min_cost": {
|
|
14681
|
-
"type": [
|
|
14682
|
-
"integer",
|
|
14683
|
-
"null"
|
|
14684
|
-
],
|
|
14685
|
-
"format": "uint8",
|
|
14686
|
-
"maximum": 255,
|
|
14687
|
-
"minimum": 0
|
|
14688
|
-
},
|
|
14689
|
-
"min_cost_greater_than_remembered_cost": {
|
|
14690
|
-
"description": "Only matches units whose cost is strictly greater than the cost stored in\ncontext.remembered_unit_cost (e.g. Reckless Sacrifice's \"a unit that costs\nmore than the discarded card\").",
|
|
14691
|
-
"type": "boolean",
|
|
14692
|
-
"default": false
|
|
14693
|
-
},
|
|
14694
|
-
"min_hp": {
|
|
14695
|
-
"type": [
|
|
14696
|
-
"integer",
|
|
14697
|
-
"null"
|
|
14698
|
-
],
|
|
14699
|
-
"format": "int16",
|
|
14700
|
-
"maximum": 32767,
|
|
14701
|
-
"minimum": -32768
|
|
14702
|
-
},
|
|
14703
|
-
"min_power": {
|
|
14704
|
-
"type": [
|
|
14705
|
-
"integer",
|
|
14706
|
-
"null"
|
|
14707
|
-
],
|
|
14708
|
-
"format": "int16",
|
|
14709
|
-
"maximum": 32767,
|
|
14710
|
-
"minimum": -32768
|
|
14711
|
-
},
|
|
14712
|
-
"min_remaining_hp": {
|
|
14713
|
-
"type": [
|
|
14714
|
-
"integer",
|
|
14715
|
-
"null"
|
|
14716
|
-
],
|
|
14717
|
-
"format": "int16",
|
|
14718
|
-
"default": null,
|
|
14719
|
-
"maximum": 32767,
|
|
14720
|
-
"minimum": -32768
|
|
14721
|
-
},
|
|
14722
|
-
"minimum_distinct_keywords": {
|
|
14723
|
-
"description": "Only matches Units with at least this many distinct active keywords.",
|
|
14724
|
-
"type": [
|
|
14725
|
-
"integer",
|
|
14726
|
-
"null"
|
|
14727
|
-
],
|
|
14728
|
-
"format": "uint8",
|
|
14729
|
-
"default": null,
|
|
14730
|
-
"maximum": 255,
|
|
14731
|
-
"minimum": 0
|
|
14732
|
-
},
|
|
14733
|
-
"non_leader": {
|
|
14734
|
-
"type": "boolean"
|
|
14735
|
-
},
|
|
14736
|
-
"owner": {
|
|
14737
|
-
"description": "Requires canonical ownership by one typed player independently from\ncurrent controller relation.",
|
|
14738
|
-
"anyOf": [
|
|
14739
|
-
{
|
|
14740
|
-
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/PlayerTargetPattern"
|
|
14741
|
-
},
|
|
14742
|
-
{
|
|
14743
|
-
"type": "null"
|
|
14744
|
-
}
|
|
14745
|
-
],
|
|
14746
|
-
"default": null
|
|
14747
|
-
},
|
|
14748
|
-
"relation": {
|
|
14749
|
-
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/RelationFilter"
|
|
14750
|
-
},
|
|
14751
|
-
"require_attacked_this_phase": {
|
|
14752
|
-
"description": "Only matches units that attacked during the current phase.",
|
|
14753
|
-
"type": "boolean",
|
|
14754
|
-
"default": false
|
|
14755
|
-
},
|
|
14756
|
-
"require_damaged": {
|
|
14757
|
-
"type": "boolean"
|
|
14758
|
-
},
|
|
14759
|
-
"require_entered_this_phase": {
|
|
14760
|
-
"description": "Only matches units that entered play this phase (UnitState::entered_this_phase).",
|
|
14761
|
-
"type": "boolean"
|
|
14762
|
-
},
|
|
14763
|
-
"require_exhausted": {
|
|
14764
|
-
"type": "boolean"
|
|
14765
|
-
},
|
|
14766
|
-
"require_has_keyword": {
|
|
14767
|
-
"description": "Only matches units that have at least one keyword (printed or granted).",
|
|
14768
|
-
"type": "boolean",
|
|
14769
|
-
"default": false
|
|
14770
|
-
},
|
|
14771
|
-
"require_healed_this_phase": {
|
|
14772
|
-
"description": "Only matches Units healed at least once during current phase.",
|
|
14773
|
-
"type": "boolean",
|
|
14774
|
-
"default": false
|
|
14775
|
-
},
|
|
14776
|
-
"require_leader": {
|
|
14777
|
-
"description": "Restrict to leader units (deployed leaders). Set by \"a friendly leader\"\ntargets, e.g. Mando's N-1 Starfighter (ASH 52696).",
|
|
14778
|
-
"type": "boolean",
|
|
14779
|
-
"default": false
|
|
14780
|
-
},
|
|
14781
|
-
"require_no_experience": {
|
|
14782
|
-
"description": "Filters out units that have an Experience token attached.",
|
|
14783
|
-
"type": "boolean"
|
|
14784
|
-
},
|
|
14785
|
-
"require_no_pilot": {
|
|
14786
|
-
"type": "boolean"
|
|
14787
|
-
},
|
|
14788
|
-
"require_not_attacked_this_phase": {
|
|
14789
|
-
"description": "Filters out units that attacked earlier this phase.",
|
|
14790
|
-
"type": "boolean"
|
|
14791
|
-
},
|
|
14792
|
-
"require_not_entered_this_phase": {
|
|
14793
|
-
"description": "Only matches Units that did not enter play during current phase.",
|
|
14794
|
-
"type": "boolean",
|
|
14795
|
-
"default": false
|
|
14796
|
-
},
|
|
14797
|
-
"require_not_entered_this_round": {
|
|
14798
|
-
"description": "Only matches Units that did not enter play during current round.",
|
|
14799
|
-
"type": "boolean",
|
|
14800
|
-
"default": false
|
|
14801
|
-
},
|
|
14802
|
-
"require_other": {
|
|
14803
|
-
"type": "boolean"
|
|
14804
|
-
},
|
|
14805
|
-
"require_ready": {
|
|
14806
|
-
"type": "boolean"
|
|
14807
|
-
},
|
|
14808
|
-
"require_shield_token": {
|
|
14809
|
-
"description": "Only matches units that have at least one Shield token attached.",
|
|
14810
|
-
"type": "boolean",
|
|
14811
|
-
"default": false
|
|
14812
|
-
},
|
|
14813
|
-
"require_undamaged": {
|
|
14814
|
-
"type": "boolean"
|
|
14815
|
-
},
|
|
14816
|
-
"required_aspects": {
|
|
14817
|
-
"type": "array",
|
|
14818
|
-
"items": {
|
|
14819
|
-
"type": "string"
|
|
14820
|
-
}
|
|
14821
|
-
},
|
|
14822
|
-
"required_aspects_any": {
|
|
14823
|
-
"type": "array",
|
|
14824
|
-
"items": {
|
|
14825
|
-
"type": "string"
|
|
14826
|
-
}
|
|
14827
|
-
},
|
|
14828
|
-
"required_card_or_upgrade_traits_any": {
|
|
14829
|
-
"type": "array",
|
|
14830
|
-
"items": {
|
|
14831
|
-
"type": "string"
|
|
14832
|
-
}
|
|
14833
|
-
},
|
|
14834
|
-
"required_keywords_any": {
|
|
14835
|
-
"type": "array",
|
|
14836
|
-
"items": {
|
|
14837
|
-
"type": "string"
|
|
14838
|
-
}
|
|
14839
|
-
},
|
|
14840
|
-
"required_traits": {
|
|
14841
|
-
"type": "array",
|
|
14842
|
-
"items": {
|
|
14843
|
-
"type": "string"
|
|
14844
|
-
}
|
|
14845
|
-
},
|
|
14846
|
-
"required_traits_any": {
|
|
14847
|
-
"type": "array",
|
|
14848
|
-
"items": {
|
|
14849
|
-
"type": "string"
|
|
14850
|
-
}
|
|
14851
|
-
},
|
|
14852
|
-
"requires_chosen_aspect": {
|
|
14853
|
-
"type": "boolean"
|
|
14854
|
-
},
|
|
14855
|
-
"same_arena_as_remembered_unit": {
|
|
14856
|
-
"description": "Matches the arena occupied by Unit selected earlier in this ability.",
|
|
14857
|
-
"type": "boolean",
|
|
14858
|
-
"default": false
|
|
14859
|
-
},
|
|
14860
|
-
"same_arena_as_source": {
|
|
14861
|
-
"type": "boolean"
|
|
14862
|
-
},
|
|
14863
|
-
"same_name_as_remembered_card": {
|
|
14864
|
-
"type": "boolean"
|
|
14865
|
-
},
|
|
14866
|
-
"same_name_as_remembered_unit": {
|
|
14867
|
-
"description": "Matches Units with same name as Unit stored by preceding target choice.",
|
|
14868
|
-
"type": "boolean",
|
|
14869
|
-
"default": false
|
|
14870
|
-
},
|
|
14871
|
-
"selected_max_combined_cost": {
|
|
14872
|
-
"description": "Requires the selected units' printed costs to be at most this value.",
|
|
14873
|
-
"type": [
|
|
14874
|
-
"integer",
|
|
14875
|
-
"null"
|
|
14876
|
-
],
|
|
14877
|
-
"format": "uint8",
|
|
14878
|
-
"default": null,
|
|
14879
|
-
"maximum": 255,
|
|
14880
|
-
"minimum": 0
|
|
14881
|
-
},
|
|
14882
|
-
"selected_max_combined_power": {
|
|
14883
|
-
"description": "Requires selected Units' current combined power to be at most this value.",
|
|
14884
|
-
"type": [
|
|
14885
|
-
"integer",
|
|
14886
|
-
"null"
|
|
14887
|
-
],
|
|
14888
|
-
"format": "int16",
|
|
14889
|
-
"default": null,
|
|
14890
|
-
"maximum": 32767,
|
|
14891
|
-
"minimum": -32768
|
|
14892
|
-
},
|
|
14893
|
-
"selected_max_combined_remaining_hp": {
|
|
14894
|
-
"description": "Requires the selected units' combined remaining HP to be at most this\nvalue (Pre Vizsla ASH 51947: \"with a total of N or less remaining HP\").",
|
|
14895
|
-
"type": [
|
|
14896
|
-
"integer",
|
|
14897
|
-
"null"
|
|
14898
|
-
],
|
|
14899
|
-
"format": "int16",
|
|
14900
|
-
"default": null,
|
|
14901
|
-
"maximum": 32767,
|
|
14902
|
-
"minimum": -32768
|
|
14903
|
-
},
|
|
14904
|
-
"selected_same_arena": {
|
|
14905
|
-
"description": "Requires every selected unit in a multi-unit selection to share an arena.",
|
|
14906
|
-
"type": "boolean",
|
|
14907
|
-
"default": false
|
|
14908
|
-
},
|
|
14909
|
-
"selected_share_trait": {
|
|
14910
|
-
"description": "Requires every selected Unit to share at least one Trait.",
|
|
14911
|
-
"type": "boolean",
|
|
14912
|
-
"default": false
|
|
14913
|
-
},
|
|
14914
|
-
"shares_aspect_with_context_unit": {
|
|
14915
|
-
"type": "boolean"
|
|
14916
|
-
},
|
|
14917
|
-
"shares_trait_with_friendly_leader": {
|
|
14918
|
-
"description": "Requires the target to share a trait with a leader card controlled by the source player.",
|
|
14919
|
-
"type": "boolean"
|
|
14920
|
-
},
|
|
14921
|
-
"token_filter": {
|
|
14922
|
-
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/PresenceFilter"
|
|
14923
|
-
},
|
|
14924
|
-
"uniqueness_filter": {
|
|
14925
|
-
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/UniquenessFilter"
|
|
14926
|
-
},
|
|
14927
|
-
"upgrade_filter": {
|
|
14928
|
-
"$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/PresenceFilter"
|
|
14929
|
-
}
|
|
14930
|
-
},
|
|
14931
|
-
"required": [
|
|
14932
|
-
"relation",
|
|
14933
|
-
"controller_is_remembered_player",
|
|
14934
|
-
"require_other",
|
|
14935
|
-
"require_damaged",
|
|
14936
|
-
"require_undamaged",
|
|
14937
|
-
"require_exhausted",
|
|
14938
|
-
"require_ready",
|
|
14939
|
-
"require_no_pilot",
|
|
14940
|
-
"non_leader",
|
|
14941
|
-
"uniqueness_filter",
|
|
14942
|
-
"token_filter",
|
|
14943
|
-
"upgrade_filter",
|
|
14944
|
-
"exact_power_equal_ready_resources",
|
|
14945
|
-
"exact_remaining_hp_equal_ready_resources",
|
|
14946
|
-
"max_cost_same_or_less_than_source",
|
|
14947
|
-
"max_power_less_than_source",
|
|
14948
|
-
"max_remaining_hp_less_than_source",
|
|
14949
|
-
"attacked_base_this_phase",
|
|
14950
|
-
"dealt_base_damage_this_phase",
|
|
14951
|
-
"required_traits",
|
|
14952
|
-
"required_traits_any",
|
|
14953
|
-
"shares_trait_with_friendly_leader",
|
|
14954
|
-
"required_card_or_upgrade_traits_any",
|
|
14955
|
-
"excluded_traits",
|
|
14956
|
-
"required_aspects",
|
|
14957
|
-
"required_aspects_any",
|
|
14958
|
-
"excluded_aspects",
|
|
14959
|
-
"required_keywords_any",
|
|
14960
|
-
"requires_chosen_aspect",
|
|
14961
|
-
"same_name_as_remembered_card",
|
|
14962
|
-
"different_aspect_from_remembered_card",
|
|
14963
|
-
"same_arena_as_source",
|
|
14964
|
-
"shares_aspect_with_context_unit",
|
|
14965
|
-
"exact_titles_any",
|
|
14966
|
-
"require_no_experience",
|
|
14967
|
-
"max_cost_same_or_less_than_remembered_cost",
|
|
14968
|
-
"max_power_same_or_less_than_remembered_power",
|
|
14969
|
-
"require_entered_this_phase",
|
|
14970
|
-
"require_not_attacked_this_phase"
|
|
14971
|
-
]
|
|
14972
|
-
},
|
|
14973
15652
|
"UnitStateView": {
|
|
14974
15653
|
"type": "object",
|
|
14975
15654
|
"properties": {
|