@my-swu/simulator-client 0.1.6 → 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.
Files changed (111) hide show
  1. package/README.md +29 -0
  2. package/dist/client.js +6 -1
  3. package/dist/connection/url.d.ts +2 -0
  4. package/dist/connection/url.js +4 -0
  5. package/dist/generated/index.d.ts +4 -0
  6. package/dist/generated/schemas.d.ts +1 -1
  7. package/dist/generated/schemas.js +1405 -23
  8. package/dist/generated/types/admin-match-debug-bundle.d.ts +1 -1
  9. package/dist/generated/types/admin-match-list-response.d.ts +1 -1
  10. package/dist/generated/types/admin-match-replay-response.d.ts +1 -1
  11. package/dist/generated/types/common.d.ts +445 -0
  12. package/dist/generated/types/create-limited-event-request.d.ts +1 -1
  13. package/dist/generated/types/format-event-response.d.ts +1 -1
  14. package/dist/generated/types/game-event.d.ts +1 -1
  15. package/dist/generated/types/game-state.d.ts +1 -1
  16. package/dist/generated/types/get-match-response.d.ts +1 -1
  17. package/dist/generated/types/leave-limited-event-request.d.ts +1 -0
  18. package/dist/generated/types/leave-limited-event-request.js +2 -0
  19. package/dist/generated/types/limited-event-server-message.d.ts +1 -0
  20. package/dist/generated/types/limited-event-server-message.js +2 -0
  21. package/dist/generated/types/list-active-ai-matches-response.d.ts +1 -1
  22. package/dist/generated/types/lobby-access-response.d.ts +1 -1
  23. package/dist/generated/types/lobby-chat-response.d.ts +1 -1
  24. package/dist/generated/types/lobby-response.d.ts +1 -1
  25. package/dist/generated/types/lobby-server-message.d.ts +1 -1
  26. package/dist/generated/types/match-access-recovery-response.d.ts +1 -1
  27. package/dist/generated/types/match-access-response.d.ts +1 -1
  28. package/dist/generated/types/match-history-replay-response.d.ts +1 -1
  29. package/dist/generated/types/match-recovery-response.d.ts +1 -1
  30. package/dist/generated/types/match-spectator-access-response.d.ts +1 -1
  31. package/dist/generated/types/rematch-match-response.d.ts +1 -1
  32. package/dist/generated/types/restore-history-response.d.ts +1 -1
  33. package/dist/generated/types/restore-match-save-response.d.ts +1 -1
  34. package/dist/generated/types/server-message.d.ts +1 -1
  35. package/dist/generated/types/shared-match-history-replay-response.d.ts +1 -1
  36. package/dist/generated/types/submit-ai-game-feedback-request.d.ts +1 -0
  37. package/dist/generated/types/submit-ai-game-feedback-request.js +2 -0
  38. package/dist/generated/types/submit-ai-game-feedback-response.d.ts +1 -0
  39. package/dist/generated/types/submit-ai-game-feedback-response.js +2 -0
  40. package/dist/generated/types/submit-match-deck-response.d.ts +1 -1
  41. package/dist/generated/types/tournament-room-access-response.d.ts +1 -1
  42. package/dist/generated/types/tournament-room-server-message.d.ts +1 -1
  43. package/dist/generated/types/undo-match-response.d.ts +1 -1
  44. package/dist/generated/types/update-lobby-settings-request.d.ts +1 -1
  45. package/dist/generated/version.d.ts +1 -1
  46. package/dist/generated/version.js +1 -1
  47. package/dist/http/request.d.ts +2 -0
  48. package/dist/http/request.js +9 -1
  49. package/dist/i18n/card-print-catalog.d.ts +9 -0
  50. package/dist/i18n/card-print-catalog.js +260 -0
  51. package/dist/i18n/catalog.d.ts +8 -0
  52. package/dist/i18n/catalog.js +195 -0
  53. package/dist/i18n/diagnostics.d.ts +6 -0
  54. package/dist/i18n/diagnostics.js +19 -0
  55. package/dist/i18n/fallback.d.ts +3 -0
  56. package/dist/i18n/fallback.js +40 -0
  57. package/dist/i18n/format.d.ts +8 -0
  58. package/dist/i18n/format.js +29 -0
  59. package/dist/i18n/generated/message-types.d.ts +91 -0
  60. package/dist/i18n/generated/message-types.js +3 -0
  61. package/dist/i18n/icu.d.ts +12 -0
  62. package/dist/i18n/icu.js +75 -0
  63. package/dist/i18n/index.d.ts +9 -0
  64. package/dist/i18n/index.js +5 -0
  65. package/dist/i18n/locale.d.ts +9 -0
  66. package/dist/i18n/locale.js +19 -0
  67. package/dist/i18n/types.d.ts +151 -0
  68. package/dist/i18n/types.js +1 -0
  69. package/dist/index.d.ts +4 -3
  70. package/dist/internal/authenticated-socket-session.d.ts +2 -0
  71. package/dist/internal/authenticated-socket-session.js +3 -1
  72. package/dist/local/client.js +7 -2
  73. package/dist/local/server/http-router.js +18 -0
  74. package/dist/resources/admin.d.ts +8 -0
  75. package/dist/resources/admin.js +2 -0
  76. package/dist/resources/limited-event-session.d.ts +10 -0
  77. package/dist/resources/limited-event-session.js +35 -0
  78. package/dist/resources/limited-event-types.d.ts +34 -1
  79. package/dist/resources/limited-events.d.ts +8 -1
  80. package/dist/resources/limited-events.js +18 -1
  81. package/dist/resources/lobbies.d.ts +1 -1
  82. package/dist/resources/lobbies.js +1 -1
  83. package/dist/resources/lobby-types.d.ts +15 -2
  84. package/dist/resources/match-history.d.ts +8 -1
  85. package/dist/resources/match-history.js +10 -0
  86. package/dist/resources/tournament-rooms.d.ts +1 -1
  87. package/dist/resources/tournament-rooms.js +1 -1
  88. package/dist/validators.d.ts +5 -1
  89. package/i18n/cards/de.json +121 -0
  90. package/i18n/cards/en.json +121 -0
  91. package/i18n/cards/es.json +121 -0
  92. package/i18n/cards/fr.json +121 -0
  93. package/i18n/cards/it.json +121 -0
  94. package/i18n/cards/manifest.json +2715 -0
  95. package/i18n/de.json +11 -0
  96. package/i18n/en.json +11 -0
  97. package/i18n/es.json +11 -0
  98. package/i18n/fr.json +11 -0
  99. package/i18n/it.json +11 -0
  100. package/i18n/messages.schema.json +28 -0
  101. package/package.json +12 -2
  102. package/schema/common.schema.json +1092 -1
  103. package/schema/create-limited-event-request.schema.json +11 -0
  104. package/schema/game-event.schema.json +76 -0
  105. package/schema/leave-limited-event-request.schema.json +15 -0
  106. package/schema/limited-event-server-message.schema.json +63 -0
  107. package/schema/manifest.json +5 -1
  108. package/schema/route-manifest.json +54 -0
  109. package/schema/submit-ai-game-feedback-request.schema.json +36 -0
  110. package/schema/submit-ai-game-feedback-response.schema.json +19 -0
  111. package/schema/update-lobby-settings-request.schema.json +67 -0
@@ -82,6 +82,8 @@ export const schemaNames = [
82
82
  'limited-event-response',
83
83
  'limited-event-command-request',
84
84
  'join-limited-event-request',
85
+ 'leave-limited-event-request',
86
+ 'limited-event-server-message',
85
87
  'match-access-response',
86
88
  'abandon-match-request',
87
89
  'abandon-match-response',
@@ -114,6 +116,8 @@ export const schemaNames = [
114
116
  'match-history-entry',
115
117
  'match-history-replay-request',
116
118
  'match-history-replay-response',
119
+ 'submit-ai-game-feedback-request',
120
+ 'submit-ai-game-feedback-response',
117
121
  'create-match-history-replay-share-request',
118
122
  'create-match-history-replay-share-response',
119
123
  'shared-match-history-replay-response',
@@ -231,6 +235,32 @@ export const sdkSchemaCommon = {
231
235
  "seat"
232
236
  ]
233
237
  },
238
+ {
239
+ "description": "One physical leader slot; legacy `Leader` continues to identify slot zero.",
240
+ "type": "object",
241
+ "properties": {
242
+ "leaderIndex": {
243
+ "description": "Zero-based position in that player's leader list.",
244
+ "type": "integer",
245
+ "format": "uint8",
246
+ "maximum": 255,
247
+ "minimum": 0
248
+ },
249
+ "seat": {
250
+ "description": "Player who owns the leader slot.",
251
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
252
+ },
253
+ "type": {
254
+ "type": "string",
255
+ "const": "leaderByIndex"
256
+ }
257
+ },
258
+ "required": [
259
+ "type",
260
+ "seat",
261
+ "leaderIndex"
262
+ ]
263
+ },
234
264
  {
235
265
  "type": "object",
236
266
  "properties": {
@@ -494,6 +524,7 @@ export const sdkSchemaCommon = {
494
524
  "ActionAbilitySource": {
495
525
  "oneOf": [
496
526
  {
527
+ "description": "Legacy primary-leader action source.\n\nKept for wire compatibility with saved commands and older clients.",
497
528
  "type": "object",
498
529
  "properties": {
499
530
  "type": {
@@ -505,6 +536,27 @@ export const sdkSchemaCommon = {
505
536
  "type"
506
537
  ]
507
538
  },
539
+ {
540
+ "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.",
541
+ "type": "object",
542
+ "properties": {
543
+ "leaderIndex": {
544
+ "description": "Non-primary leader slots start at one; slot zero uses legacy `Leader`.",
545
+ "type": "integer",
546
+ "format": "uint8",
547
+ "maximum": 255,
548
+ "minimum": 1
549
+ },
550
+ "type": {
551
+ "type": "string",
552
+ "const": "leaderByIndex"
553
+ }
554
+ },
555
+ "required": [
556
+ "type",
557
+ "leaderIndex"
558
+ ]
559
+ },
508
560
  {
509
561
  "type": "object",
510
562
  "properties": {
@@ -607,6 +659,16 @@ export const sdkSchemaCommon = {
607
659
  "label": {
608
660
  "type": "string"
609
661
  },
662
+ "modeChoice": {
663
+ "anyOf": [
664
+ {
665
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/ModeChoiceView"
666
+ },
667
+ {
668
+ "type": "null"
669
+ }
670
+ ]
671
+ },
610
672
  "source": {
611
673
  "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/ActionAbilitySource"
612
674
  },
@@ -615,6 +677,17 @@ export const sdkSchemaCommon = {
615
677
  "items": {
616
678
  "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/TargetSelectionGroup"
617
679
  }
680
+ },
681
+ "text": {
682
+ "description": "Exact public Action or Epic Action declaration when migrated.",
683
+ "anyOf": [
684
+ {
685
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
686
+ },
687
+ {
688
+ "type": "null"
689
+ }
690
+ ]
618
691
  }
619
692
  },
620
693
  "required": [
@@ -1134,6 +1207,17 @@ export const sdkSchemaCommon = {
1134
1207
  "items": {
1135
1208
  "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTargetView"
1136
1209
  }
1210
+ },
1211
+ "text": {
1212
+ "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.",
1213
+ "anyOf": [
1214
+ {
1215
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
1216
+ },
1217
+ {
1218
+ "type": "null"
1219
+ }
1220
+ ]
1137
1221
  }
1138
1222
  },
1139
1223
  "required": [
@@ -1147,6 +1231,13 @@ export const sdkSchemaCommon = {
1147
1231
  "description": "Compact durable match data safe for an administrator list view.",
1148
1232
  "type": "object",
1149
1233
  "properties": {
1234
+ "aiFeedback": {
1235
+ "description": "Feedback collected for individual completed AI games in this match.",
1236
+ "type": "array",
1237
+ "items": {
1238
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/AiGameFeedback"
1239
+ }
1240
+ },
1150
1241
  "completedAtMs": {
1151
1242
  "type": [
1152
1243
  "integer",
@@ -1204,7 +1295,8 @@ export const sdkSchemaCommon = {
1204
1295
  "series",
1205
1296
  "createdAtMs",
1206
1297
  "updatedAtMs",
1207
- "replayAvailable"
1298
+ "replayAvailable",
1299
+ "aiFeedback"
1208
1300
  ]
1209
1301
  },
1210
1302
  "AiDecisionDiagnostic": {
@@ -1410,6 +1502,46 @@ export const sdkSchemaCommon = {
1410
1502
  }
1411
1503
  ]
1412
1504
  },
1505
+ "AiGameFeedback": {
1506
+ "description": "One immutable player assessment of an AI opponent for a completed game.",
1507
+ "type": "object",
1508
+ "properties": {
1509
+ "comments": {
1510
+ "type": [
1511
+ "string",
1512
+ "null"
1513
+ ]
1514
+ },
1515
+ "gameNumber": {
1516
+ "type": "integer",
1517
+ "format": "uint8",
1518
+ "maximum": 255,
1519
+ "minimum": 0
1520
+ },
1521
+ "rating": {
1522
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/AiGameFeedbackRating"
1523
+ },
1524
+ "submittedAtMs": {
1525
+ "type": "integer",
1526
+ "format": "uint64",
1527
+ "minimum": 0
1528
+ }
1529
+ },
1530
+ "required": [
1531
+ "gameNumber",
1532
+ "rating",
1533
+ "submittedAtMs"
1534
+ ]
1535
+ },
1536
+ "AiGameFeedbackRating": {
1537
+ "description": "Rating submitted by a player after completing one Solo-versus-AI game.",
1538
+ "type": "string",
1539
+ "enum": [
1540
+ "poorly",
1541
+ "okay",
1542
+ "good"
1543
+ ]
1544
+ },
1413
1545
  "AiOpponentConfig": {
1414
1546
  "description": "Explicit AI seat configuration.",
1415
1547
  "type": "object",
@@ -2101,6 +2233,32 @@ export const sdkSchemaCommon = {
2101
2233
  "title"
2102
2234
  ]
2103
2235
  },
2236
+ "CardTextRef": {
2237
+ "type": "object",
2238
+ "properties": {
2239
+ "cardId": {
2240
+ "description": "Canonical card identity that owns this reviewed printed slot.",
2241
+ "type": "integer",
2242
+ "format": "uint32",
2243
+ "minimum": 0
2244
+ },
2245
+ "contractFingerprint": {
2246
+ "description": "Full semantic-contract fingerprint pinning this reference to reviewed text.",
2247
+ "type": "string",
2248
+ "pattern": "^[0-9A-Fa-f]{64}$"
2249
+ },
2250
+ "slot": {
2251
+ "description": "Durable reviewed slot identifier within the canonical card contract.",
2252
+ "type": "string",
2253
+ "minLength": 1
2254
+ }
2255
+ },
2256
+ "required": [
2257
+ "cardId",
2258
+ "slot",
2259
+ "contractFingerprint"
2260
+ ]
2261
+ },
2104
2262
  "CardType": {
2105
2263
  "description": "Canonical card families from production card data.",
2106
2264
  "type": "string",
@@ -2826,6 +2984,17 @@ export const sdkSchemaCommon = {
2826
2984
  ],
2827
2985
  "format": "uint32",
2828
2986
  "minimum": 0
2987
+ },
2988
+ "text": {
2989
+ "description": "Reviewed text retained by the delayed follow-up when it was created.",
2990
+ "anyOf": [
2991
+ {
2992
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
2993
+ },
2994
+ {
2995
+ "type": "null"
2996
+ }
2997
+ ]
2829
2998
  }
2830
2999
  },
2831
3000
  "required": [
@@ -2976,6 +3145,17 @@ export const sdkSchemaCommon = {
2976
3145
  "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTargetView"
2977
3146
  }
2978
3147
  },
3148
+ "text": {
3149
+ "description": "Reviewed card-text and shared-message provenance for this public row.",
3150
+ "anyOf": [
3151
+ {
3152
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
3153
+ },
3154
+ {
3155
+ "type": "null"
3156
+ }
3157
+ ]
3158
+ },
2979
3159
  "timing": {
2980
3160
  "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/DelayedEffectTimingView"
2981
3161
  }
@@ -3130,6 +3310,44 @@ export const sdkSchemaCommon = {
3130
3310
  "advantage"
3131
3311
  ]
3132
3312
  },
3313
+ "DraftLobbyTimerSettings": {
3314
+ "description": "Draft pick schedule. Vectors are ordered by remaining choices: leader\nvalues cover 2 through 8, pack values cover 2 through 14.",
3315
+ "type": "object",
3316
+ "properties": {
3317
+ "leaderPickSeconds": {
3318
+ "description": "Leader-pick duration in seconds for 2 through 8 leaders remaining.",
3319
+ "type": "array",
3320
+ "items": {
3321
+ "type": "integer",
3322
+ "format": "uint16",
3323
+ "maximum": 65535,
3324
+ "minimum": 0
3325
+ }
3326
+ },
3327
+ "packPickSeconds": {
3328
+ "description": "Pack-pick duration in seconds for 2 through 14 cards remaining.",
3329
+ "type": "array",
3330
+ "items": {
3331
+ "type": "integer",
3332
+ "format": "uint16",
3333
+ "maximum": 65535,
3334
+ "minimum": 0
3335
+ }
3336
+ },
3337
+ "reviewSeconds": {
3338
+ "description": "Review duration between booster packs in seconds.",
3339
+ "type": "integer",
3340
+ "format": "uint16",
3341
+ "maximum": 65535,
3342
+ "minimum": 0
3343
+ }
3344
+ },
3345
+ "required": [
3346
+ "leaderPickSeconds",
3347
+ "packPickSeconds",
3348
+ "reviewSeconds"
3349
+ ]
3350
+ },
3133
3351
  "DraftRoundConfig": {
3134
3352
  "description": "One configured booster round for a chaos draft.",
3135
3353
  "type": "object",
@@ -3278,6 +3496,16 @@ export const sdkSchemaCommon = {
3278
3496
  },
3279
3497
  "stepId": {
3280
3498
  "type": "string"
3499
+ },
3500
+ "text": {
3501
+ "anyOf": [
3502
+ {
3503
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
3504
+ },
3505
+ {
3506
+ "type": "null"
3507
+ }
3508
+ ]
3281
3509
  }
3282
3510
  },
3283
3511
  "required": [
@@ -3310,6 +3538,16 @@ export const sdkSchemaCommon = {
3310
3538
  },
3311
3539
  "stepId": {
3312
3540
  "type": "string"
3541
+ },
3542
+ "text": {
3543
+ "anyOf": [
3544
+ {
3545
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
3546
+ },
3547
+ {
3548
+ "type": "null"
3549
+ }
3550
+ ]
3313
3551
  }
3314
3552
  },
3315
3553
  "required": [
@@ -3333,6 +3571,20 @@ export const sdkSchemaCommon = {
3333
3571
  "label": {
3334
3572
  "type": "string"
3335
3573
  },
3574
+ "modeTextReferences": {
3575
+ "description": "Exact reviewed Mode wrappers for every selected executable option.",
3576
+ "type": "array",
3577
+ "items": {
3578
+ "anyOf": [
3579
+ {
3580
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/CardTextRef"
3581
+ },
3582
+ {
3583
+ "type": "null"
3584
+ }
3585
+ ]
3586
+ }
3587
+ },
3336
3588
  "selected": {
3337
3589
  "type": "array",
3338
3590
  "items": {
@@ -3343,6 +3595,16 @@ export const sdkSchemaCommon = {
3343
3595
  },
3344
3596
  "stepId": {
3345
3597
  "type": "string"
3598
+ },
3599
+ "text": {
3600
+ "anyOf": [
3601
+ {
3602
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
3603
+ },
3604
+ {
3605
+ "type": "null"
3606
+ }
3607
+ ]
3346
3608
  }
3347
3609
  },
3348
3610
  "required": [
@@ -3376,6 +3638,16 @@ export const sdkSchemaCommon = {
3376
3638
  },
3377
3639
  "stepId": {
3378
3640
  "type": "string"
3641
+ },
3642
+ "text": {
3643
+ "anyOf": [
3644
+ {
3645
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
3646
+ },
3647
+ {
3648
+ "type": "null"
3649
+ }
3650
+ ]
3379
3651
  }
3380
3652
  },
3381
3653
  "required": [
@@ -3404,6 +3676,16 @@ export const sdkSchemaCommon = {
3404
3676
  },
3405
3677
  "stepId": {
3406
3678
  "type": "string"
3679
+ },
3680
+ "text": {
3681
+ "anyOf": [
3682
+ {
3683
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
3684
+ },
3685
+ {
3686
+ "type": "null"
3687
+ }
3688
+ ]
3407
3689
  }
3408
3690
  },
3409
3691
  "required": [
@@ -3432,6 +3714,16 @@ export const sdkSchemaCommon = {
3432
3714
  },
3433
3715
  "stepId": {
3434
3716
  "type": "string"
3717
+ },
3718
+ "text": {
3719
+ "anyOf": [
3720
+ {
3721
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
3722
+ },
3723
+ {
3724
+ "type": "null"
3725
+ }
3726
+ ]
3435
3727
  }
3436
3728
  },
3437
3729
  "required": [
@@ -3465,6 +3757,16 @@ export const sdkSchemaCommon = {
3465
3757
  },
3466
3758
  "target": {
3467
3759
  "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/AttackTarget"
3760
+ },
3761
+ "text": {
3762
+ "anyOf": [
3763
+ {
3764
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
3765
+ },
3766
+ {
3767
+ "type": "null"
3768
+ }
3769
+ ]
3468
3770
  }
3469
3771
  },
3470
3772
  "required": [
@@ -3497,6 +3799,16 @@ export const sdkSchemaCommon = {
3497
3799
  },
3498
3800
  "stepId": {
3499
3801
  "type": "string"
3802
+ },
3803
+ "text": {
3804
+ "anyOf": [
3805
+ {
3806
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
3807
+ },
3808
+ {
3809
+ "type": "null"
3810
+ }
3811
+ ]
3500
3812
  }
3501
3813
  },
3502
3814
  "required": [
@@ -3533,6 +3845,17 @@ export const sdkSchemaCommon = {
3533
3845
  "description": "Printed label of originating effect, retained for descendants.",
3534
3846
  "type": "string"
3535
3847
  },
3848
+ "originText": {
3849
+ "description": "Exact reviewed text owner for the originating command.",
3850
+ "anyOf": [
3851
+ {
3852
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
3853
+ },
3854
+ {
3855
+ "type": "null"
3856
+ }
3857
+ ]
3858
+ },
3536
3859
  "sourceCardId": {
3537
3860
  "type": "integer",
3538
3861
  "format": "uint32",
@@ -3694,19 +4017,27 @@ export const sdkSchemaCommon = {
3694
4017
  ]
3695
4018
  },
3696
4019
  {
4020
+ "description": "Exact physical leader slot affected by this effect.",
3697
4021
  "type": "object",
3698
4022
  "properties": {
4023
+ "leaderIndex": {
4024
+ "type": "integer",
4025
+ "format": "uint8",
4026
+ "maximum": 255,
4027
+ "minimum": 0
4028
+ },
3699
4029
  "seat": {
3700
4030
  "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
3701
4031
  },
3702
4032
  "type": {
3703
4033
  "type": "string",
3704
- "const": "base"
4034
+ "const": "leaderByIndex"
3705
4035
  }
3706
4036
  },
3707
4037
  "required": [
3708
4038
  "type",
3709
- "seat"
4039
+ "seat",
4040
+ "leaderIndex"
3710
4041
  ]
3711
4042
  },
3712
4043
  {
@@ -3717,7 +4048,7 @@ export const sdkSchemaCommon = {
3717
4048
  },
3718
4049
  "type": {
3719
4050
  "type": "string",
3720
- "const": "player"
4051
+ "const": "base"
3721
4052
  }
3722
4053
  },
3723
4054
  "required": [
@@ -3726,12 +4057,28 @@ export const sdkSchemaCommon = {
3726
4057
  ]
3727
4058
  },
3728
4059
  {
3729
- "description": "Public card identity outside a selectable board placement, such as a\ncard in discard with temporary play permission.",
3730
4060
  "type": "object",
3731
4061
  "properties": {
3732
- "cardId": {
3733
- "type": "integer",
3734
- "format": "uint32",
4062
+ "seat": {
4063
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
4064
+ },
4065
+ "type": {
4066
+ "type": "string",
4067
+ "const": "player"
4068
+ }
4069
+ },
4070
+ "required": [
4071
+ "type",
4072
+ "seat"
4073
+ ]
4074
+ },
4075
+ {
4076
+ "description": "Public card identity outside a selectable board placement, such as a\ncard in discard with temporary play permission.",
4077
+ "type": "object",
4078
+ "properties": {
4079
+ "cardId": {
4080
+ "type": "integer",
4081
+ "format": "uint32",
3735
4082
  "minimum": 0
3736
4083
  },
3737
4084
  "type": {
@@ -3746,6 +4093,48 @@ export const sdkSchemaCommon = {
3746
4093
  }
3747
4094
  ]
3748
4095
  },
4096
+ "EffectTextRefsView": {
4097
+ "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.",
4098
+ "type": "object",
4099
+ "properties": {
4100
+ "ability": {
4101
+ "description": "Printed ability that created this resolution.",
4102
+ "anyOf": [
4103
+ {
4104
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/CardTextRef"
4105
+ },
4106
+ {
4107
+ "type": "null"
4108
+ }
4109
+ ]
4110
+ },
4111
+ "effects": {
4112
+ "description": "Nested printed effects enclosing this visible work, outermost first.",
4113
+ "type": "array",
4114
+ "items": {
4115
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/CardTextRef"
4116
+ }
4117
+ },
4118
+ "selectedMode": {
4119
+ "description": "Printed mode selected before the current continuation, if any.",
4120
+ "anyOf": [
4121
+ {
4122
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/CardTextRef"
4123
+ },
4124
+ {
4125
+ "type": "null"
4126
+ }
4127
+ ]
4128
+ },
4129
+ "sharedMessages": {
4130
+ "description": "Finite SDK messages explicitly declared for this outcome.",
4131
+ "type": "array",
4132
+ "items": {
4133
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/SimulatorMessage"
4134
+ }
4135
+ }
4136
+ }
4137
+ },
3749
4138
  "ErrorPayload": {
3750
4139
  "type": "object",
3751
4140
  "properties": {
@@ -3778,6 +4167,51 @@ export const sdkSchemaCommon = {
3778
4167
  "message"
3779
4168
  ]
3780
4169
  },
4170
+ "EventPlayInputProvenance": {
4171
+ "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.",
4172
+ "type": "object",
4173
+ "properties": {
4174
+ "modeTextReferences": {
4175
+ "description": "One explicit Mode reference per submitted mode index, in command order.",
4176
+ "type": "array",
4177
+ "items": {
4178
+ "anyOf": [
4179
+ {
4180
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/CardTextRef"
4181
+ },
4182
+ {
4183
+ "type": "null"
4184
+ }
4185
+ ]
4186
+ }
4187
+ },
4188
+ "targetInputs": {
4189
+ "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.",
4190
+ "type": "array",
4191
+ "items": {
4192
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EventPlayTargetInputProvenance"
4193
+ }
4194
+ }
4195
+ }
4196
+ },
4197
+ "EventPlayTargetInputProvenance": {
4198
+ "description": "Printed ownership for one submitted event target.",
4199
+ "type": "object",
4200
+ "properties": {
4201
+ "purpose": {
4202
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/TargetGroupPurpose"
4203
+ },
4204
+ "textReferences": {
4205
+ "type": "array",
4206
+ "items": {
4207
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/CardTextRef"
4208
+ }
4209
+ }
4210
+ },
4211
+ "required": [
4212
+ "purpose"
4213
+ ]
4214
+ },
3781
4215
  "ExploitOptionsView": {
3782
4216
  "type": "object",
3783
4217
  "properties": {
@@ -5406,11 +5840,33 @@ export const sdkSchemaCommon = {
5406
5840
  "format": "uint32",
5407
5841
  "minimum": 0
5408
5842
  },
5843
+ "inputProvenance": {
5844
+ "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.",
5845
+ "anyOf": [
5846
+ {
5847
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EventPlayInputProvenance"
5848
+ },
5849
+ {
5850
+ "type": "null"
5851
+ }
5852
+ ]
5853
+ },
5409
5854
  "playedWithSmuggle": {
5410
5855
  "type": "boolean"
5411
5856
  },
5412
5857
  "seat": {
5413
5858
  "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
5859
+ },
5860
+ "text": {
5861
+ "description": "Exact printed event declaration exposed when this public event was played.",
5862
+ "anyOf": [
5863
+ {
5864
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
5865
+ },
5866
+ {
5867
+ "type": "null"
5868
+ }
5869
+ ]
5414
5870
  }
5415
5871
  },
5416
5872
  "required": [
@@ -5877,6 +6333,38 @@ export const sdkSchemaCommon = {
5877
6333
  "cardsRevealed"
5878
6334
  ]
5879
6335
  },
6336
+ {
6337
+ "description": "Public cards explicitly selected from a discard pile during ability resolution.",
6338
+ "type": "object",
6339
+ "properties": {
6340
+ "cardsChosenFromDiscard": {
6341
+ "type": "object",
6342
+ "properties": {
6343
+ "cardIds": {
6344
+ "description": "Printed card identities in command order; duplicates represent distinct copies.",
6345
+ "type": "array",
6346
+ "items": {
6347
+ "type": "integer",
6348
+ "format": "uint32",
6349
+ "minimum": 0
6350
+ }
6351
+ },
6352
+ "seat": {
6353
+ "description": "Player who made the selection, which may differ from the discard-pile owner.",
6354
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
6355
+ }
6356
+ },
6357
+ "required": [
6358
+ "seat",
6359
+ "cardIds"
6360
+ ]
6361
+ }
6362
+ },
6363
+ "additionalProperties": false,
6364
+ "required": [
6365
+ "cardsChosenFromDiscard"
6366
+ ]
6367
+ },
5880
6368
  {
5881
6369
  "type": "object",
5882
6370
  "properties": {
@@ -6069,6 +6557,17 @@ export const sdkSchemaCommon = {
6069
6557
  "items": {
6070
6558
  "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/AbilityTarget"
6071
6559
  }
6560
+ },
6561
+ "text": {
6562
+ "description": "Exact public Action or Epic Action declaration that was used.",
6563
+ "anyOf": [
6564
+ {
6565
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
6566
+ },
6567
+ {
6568
+ "type": "null"
6569
+ }
6570
+ ]
6072
6571
  }
6073
6572
  },
6074
6573
  "required": [
@@ -6108,6 +6607,17 @@ export const sdkSchemaCommon = {
6108
6607
  "format": "uint64",
6109
6608
  "minimum": 0
6110
6609
  },
6610
+ "text": {
6611
+ "description": "Exact public trigger declaration and currently resolved effect.",
6612
+ "anyOf": [
6613
+ {
6614
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
6615
+ },
6616
+ {
6617
+ "type": "null"
6618
+ }
6619
+ ]
6620
+ },
6111
6621
  "window": {
6112
6622
  "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/AbilityWindow"
6113
6623
  }
@@ -7854,11 +8364,32 @@ export const sdkSchemaCommon = {
7854
8364
  "label": {
7855
8365
  "type": "string"
7856
8366
  },
8367
+ "modeChoice": {
8368
+ "anyOf": [
8369
+ {
8370
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/ModeChoiceView"
8371
+ },
8372
+ {
8373
+ "type": "null"
8374
+ }
8375
+ ]
8376
+ },
7857
8377
  "targetGroups": {
7858
8378
  "type": "array",
7859
8379
  "items": {
7860
8380
  "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/TargetSelectionGroup"
7861
8381
  }
8382
+ },
8383
+ "text": {
8384
+ "description": "Reviewed declaration text for a migrated leader action.",
8385
+ "anyOf": [
8386
+ {
8387
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
8388
+ },
8389
+ {
8390
+ "type": "null"
8391
+ }
8392
+ ]
7862
8393
  }
7863
8394
  },
7864
8395
  "required": [
@@ -8638,6 +9169,38 @@ export const sdkSchemaCommon = {
8638
9169
  "draftedCardCount"
8639
9170
  ]
8640
9171
  },
9172
+ "LimitedLobbyTimerSettings": {
9173
+ "description": "Limited-event timing controls owned by a lobby host.",
9174
+ "type": "object",
9175
+ "properties": {
9176
+ "deckBuildingSeconds": {
9177
+ "description": "Deck construction duration in seconds.",
9178
+ "type": "integer",
9179
+ "format": "uint16",
9180
+ "maximum": 65535,
9181
+ "minimum": 0
9182
+ },
9183
+ "deckBuildingTimerEnabled": {
9184
+ "description": "Enables informational deck construction deadline displays.",
9185
+ "type": "boolean"
9186
+ },
9187
+ "draft": {
9188
+ "description": "Draft-only pick and review schedule. Sealed lobbies omit it.",
9189
+ "anyOf": [
9190
+ {
9191
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/DraftLobbyTimerSettings"
9192
+ },
9193
+ {
9194
+ "type": "null"
9195
+ }
9196
+ ]
9197
+ }
9198
+ },
9199
+ "required": [
9200
+ "deckBuildingTimerEnabled",
9201
+ "deckBuildingSeconds"
9202
+ ]
9203
+ },
8641
9204
  "LimitedPackCardView": {
8642
9205
  "description": "One generated pack card plus collation metadata.",
8643
9206
  "type": "object",
@@ -8945,6 +9508,30 @@ export const sdkSchemaCommon = {
8945
9508
  }
8946
9509
  }
8947
9510
  },
9511
+ "LobbyGameTimerSettings": {
9512
+ "description": "Per-game clock values shared by constructed and Limited lobbies.",
9513
+ "type": "object",
9514
+ "properties": {
9515
+ "reserveSeconds": {
9516
+ "description": "Seconds of reserve time granted to each player.",
9517
+ "type": "integer",
9518
+ "format": "uint16",
9519
+ "maximum": 65535,
9520
+ "minimum": 0
9521
+ },
9522
+ "turnSeconds": {
9523
+ "description": "Seconds allocated to each normal turn before reserve is used.",
9524
+ "type": "integer",
9525
+ "format": "uint16",
9526
+ "maximum": 65535,
9527
+ "minimum": 0
9528
+ }
9529
+ },
9530
+ "required": [
9531
+ "turnSeconds",
9532
+ "reserveSeconds"
9533
+ ]
9534
+ },
8948
9535
  "LobbyKickedPayload": {
8949
9536
  "type": "object",
8950
9537
  "properties": {
@@ -9354,6 +9941,17 @@ export const sdkSchemaCommon = {
9354
9941
  "status": {
9355
9942
  "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/LobbyStatus"
9356
9943
  },
9944
+ "timerSettings": {
9945
+ "description": "Host-selected timer schedule for this lobby. Missing values identify\nrecords created before configurable timers were introduced.",
9946
+ "anyOf": [
9947
+ {
9948
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/LobbyTimerSettings"
9949
+ },
9950
+ {
9951
+ "type": "null"
9952
+ }
9953
+ ]
9954
+ },
9357
9955
  "visibility": {
9358
9956
  "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/LobbyVisibility"
9359
9957
  }
@@ -9475,6 +10073,30 @@ export const sdkSchemaCommon = {
9475
10073
  "closed"
9476
10074
  ]
9477
10075
  },
10076
+ "LobbyTimerSettings": {
10077
+ "description": "Host-selected timing rules for a lobby and its started event or match.",
10078
+ "type": "object",
10079
+ "properties": {
10080
+ "game": {
10081
+ "description": "Per-turn and reserve-bank settings for the final game.",
10082
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/LobbyGameTimerSettings"
10083
+ },
10084
+ "limited": {
10085
+ "description": "Limited-only draft and deck-construction settings.",
10086
+ "anyOf": [
10087
+ {
10088
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/LimitedLobbyTimerSettings"
10089
+ },
10090
+ {
10091
+ "type": "null"
10092
+ }
10093
+ ]
10094
+ }
10095
+ },
10096
+ "required": [
10097
+ "game"
10098
+ ]
10099
+ },
9478
10100
  "LobbyVisibility": {
9479
10101
  "type": "string",
9480
10102
  "enum": [
@@ -10575,6 +11197,17 @@ export const sdkSchemaCommon = {
10575
11197
  "type": "integer",
10576
11198
  "format": "uint32",
10577
11199
  "minimum": 0
11200
+ },
11201
+ "text": {
11202
+ "description": "Reviewed printed text owning this chooser payload.",
11203
+ "anyOf": [
11204
+ {
11205
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
11206
+ },
11207
+ {
11208
+ "type": "null"
11209
+ }
11210
+ ]
10578
11211
  }
10579
11212
  },
10580
11213
  "required": [
@@ -10655,6 +11288,17 @@ export const sdkSchemaCommon = {
10655
11288
  "type": "integer",
10656
11289
  "format": "uint32",
10657
11290
  "minimum": 0
11291
+ },
11292
+ "text": {
11293
+ "description": "Reviewed printed text owning this chooser payload.",
11294
+ "anyOf": [
11295
+ {
11296
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
11297
+ },
11298
+ {
11299
+ "type": "null"
11300
+ }
11301
+ ]
10658
11302
  }
10659
11303
  },
10660
11304
  "required": [
@@ -10760,6 +11404,17 @@ export const sdkSchemaCommon = {
10760
11404
  "type": "integer",
10761
11405
  "format": "uint32",
10762
11406
  "minimum": 0
11407
+ },
11408
+ "text": {
11409
+ "description": "Reviewed printed text owning this private 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
+ ]
10763
11418
  }
10764
11419
  },
10765
11420
  "required": [
@@ -10874,6 +11529,20 @@ export const sdkSchemaCommon = {
10874
11529
  "type": "string"
10875
11530
  }
10876
11531
  },
11532
+ "optionTextReferences": {
11533
+ "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.",
11534
+ "type": "array",
11535
+ "items": {
11536
+ "anyOf": [
11537
+ {
11538
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/CardTextRef"
11539
+ },
11540
+ {
11541
+ "type": "null"
11542
+ }
11543
+ ]
11544
+ }
11545
+ },
10877
11546
  "promptProvenance": {
10878
11547
  "description": "Parent/stage identity and interaction policy inherited from resolution.",
10879
11548
  "anyOf": [
@@ -10889,11 +11558,22 @@ export const sdkSchemaCommon = {
10889
11558
  "type": "integer",
10890
11559
  "format": "uint32",
10891
11560
  "minimum": 0
10892
- }
10893
- },
10894
- "required": [
10895
- "abilityId",
10896
- "sourceCardId",
11561
+ },
11562
+ "text": {
11563
+ "description": "Reviewed printed text owning this chooser payload.",
11564
+ "anyOf": [
11565
+ {
11566
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
11567
+ },
11568
+ {
11569
+ "type": "null"
11570
+ }
11571
+ ]
11572
+ }
11573
+ },
11574
+ "required": [
11575
+ "abilityId",
11576
+ "sourceCardId",
10897
11577
  "label",
10898
11578
  "min",
10899
11579
  "max",
@@ -10939,6 +11619,17 @@ export const sdkSchemaCommon = {
10939
11619
  "type": "integer",
10940
11620
  "format": "uint32",
10941
11621
  "minimum": 0
11622
+ },
11623
+ "text": {
11624
+ "description": "Reviewed printed text owning this chooser payload.",
11625
+ "anyOf": [
11626
+ {
11627
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
11628
+ },
11629
+ {
11630
+ "type": "null"
11631
+ }
11632
+ ]
10942
11633
  }
10943
11634
  },
10944
11635
  "required": [
@@ -10964,6 +11655,17 @@ export const sdkSchemaCommon = {
10964
11655
  "type": "integer",
10965
11656
  "format": "uint32",
10966
11657
  "minimum": 0
11658
+ },
11659
+ "text": {
11660
+ "description": "Reviewed text retained by the queued ability when its producer made it\npublic. The order prompt does not infer ownership from source cards.",
11661
+ "anyOf": [
11662
+ {
11663
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
11664
+ },
11665
+ {
11666
+ "type": "null"
11667
+ }
11668
+ ]
10967
11669
  }
10968
11670
  },
10969
11671
  "required": [
@@ -11115,6 +11817,17 @@ export const sdkSchemaCommon = {
11115
11817
  "description": "Complete target-selection contract for this pending ability.\n\nGroups retain ordering, bounds, and structural purpose together.",
11116
11818
  "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/TargetSelectionPlanView"
11117
11819
  },
11820
+ "text": {
11821
+ "description": "Reviewed printed ability, selected mode, and current effect ownership.",
11822
+ "anyOf": [
11823
+ {
11824
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
11825
+ },
11826
+ {
11827
+ "type": "null"
11828
+ }
11829
+ ]
11830
+ },
11118
11831
  "window": {
11119
11832
  "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.",
11120
11833
  "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/AbilityWindow"
@@ -11308,6 +12021,17 @@ export const sdkSchemaCommon = {
11308
12021
  "format": "uint32",
11309
12022
  "minimum": 0
11310
12023
  },
12024
+ "text": {
12025
+ "description": "Reviewed printed text owning this chooser payload.",
12026
+ "anyOf": [
12027
+ {
12028
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
12029
+ },
12030
+ {
12031
+ "type": "null"
12032
+ }
12033
+ ]
12034
+ },
11311
12035
  "title": {
11312
12036
  "type": "string"
11313
12037
  },
@@ -11523,6 +12247,16 @@ export const sdkSchemaCommon = {
11523
12247
  "label": {
11524
12248
  "type": "string"
11525
12249
  },
12250
+ "modeChoice": {
12251
+ "anyOf": [
12252
+ {
12253
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/ModeChoiceView"
12254
+ },
12255
+ {
12256
+ "type": "null"
12257
+ }
12258
+ ]
12259
+ },
11526
12260
  "seat": {
11527
12261
  "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
11528
12262
  },
@@ -11534,6 +12268,17 @@ export const sdkSchemaCommon = {
11534
12268
  "items": {
11535
12269
  "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/TargetSelectionGroup"
11536
12270
  }
12271
+ },
12272
+ "text": {
12273
+ "description": "Exact public Action or Epic Action declaration when migrated.",
12274
+ "anyOf": [
12275
+ {
12276
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
12277
+ },
12278
+ {
12279
+ "type": "null"
12280
+ }
12281
+ ]
11537
12282
  }
11538
12283
  },
11539
12284
  "required": [
@@ -13323,19 +14068,357 @@ export const sdkSchemaCommon = {
13323
14068
  "available": {
13324
14069
  "type": "boolean"
13325
14070
  },
13326
- "controller": {
13327
- "anyOf": [
13328
- {
13329
- "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
13330
- },
13331
- {
13332
- "type": "null"
14071
+ "controller": {
14072
+ "anyOf": [
14073
+ {
14074
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
14075
+ },
14076
+ {
14077
+ "type": "null"
14078
+ }
14079
+ ]
14080
+ }
14081
+ },
14082
+ "required": [
14083
+ "available"
14084
+ ]
14085
+ },
14086
+ "SimulatorMessage": {
14087
+ "description": "Typed engine-origin simulator copy with a stable SDK message id.",
14088
+ "oneOf": [
14089
+ {
14090
+ "type": "object",
14091
+ "properties": {
14092
+ "kind": {
14093
+ "type": "string",
14094
+ "const": "abilityUnavailable"
14095
+ }
14096
+ },
14097
+ "required": [
14098
+ "kind"
14099
+ ]
14100
+ },
14101
+ {
14102
+ "type": "object",
14103
+ "properties": {
14104
+ "kind": {
14105
+ "type": "string",
14106
+ "const": "action.exhaust"
14107
+ }
14108
+ },
14109
+ "required": [
14110
+ "kind"
14111
+ ]
14112
+ },
14113
+ {
14114
+ "type": "object",
14115
+ "properties": {
14116
+ "count": {
14117
+ "type": "integer",
14118
+ "format": "int64",
14119
+ "maximum": 9007199254740991,
14120
+ "minimum": -9007199254740991
14121
+ },
14122
+ "kind": {
14123
+ "type": "string",
14124
+ "const": "amount.resources"
14125
+ }
14126
+ },
14127
+ "required": [
14128
+ "kind",
14129
+ "count"
14130
+ ]
14131
+ },
14132
+ {
14133
+ "type": "object",
14134
+ "properties": {
14135
+ "kind": {
14136
+ "type": "string",
14137
+ "const": "choice.none"
14138
+ }
14139
+ },
14140
+ "required": [
14141
+ "kind"
14142
+ ]
14143
+ },
14144
+ {
14145
+ "type": "object",
14146
+ "properties": {
14147
+ "kind": {
14148
+ "type": "string",
14149
+ "const": "chooseTarget"
14150
+ }
14151
+ },
14152
+ "required": [
14153
+ "kind"
14154
+ ]
14155
+ },
14156
+ {
14157
+ "type": "object",
14158
+ "properties": {
14159
+ "kind": {
14160
+ "type": "string",
14161
+ "const": "chooseTargets"
14162
+ },
14163
+ "max": {
14164
+ "type": "integer",
14165
+ "format": "int64",
14166
+ "maximum": 9007199254740991,
14167
+ "minimum": -9007199254740991
14168
+ },
14169
+ "min": {
14170
+ "type": "integer",
14171
+ "format": "int64",
14172
+ "maximum": 9007199254740991,
14173
+ "minimum": -9007199254740991
14174
+ }
14175
+ },
14176
+ "required": [
14177
+ "kind",
14178
+ "min",
14179
+ "max"
14180
+ ]
14181
+ },
14182
+ {
14183
+ "type": "object",
14184
+ "properties": {
14185
+ "kind": {
14186
+ "type": "string",
14187
+ "const": "controls.cancel"
14188
+ }
14189
+ },
14190
+ "required": [
14191
+ "kind"
14192
+ ]
14193
+ },
14194
+ {
14195
+ "type": "object",
14196
+ "properties": {
14197
+ "kind": {
14198
+ "type": "string",
14199
+ "const": "controls.confirm"
14200
+ }
14201
+ },
14202
+ "required": [
14203
+ "kind"
14204
+ ]
14205
+ },
14206
+ {
14207
+ "type": "object",
14208
+ "properties": {
14209
+ "kind": {
14210
+ "type": "string",
14211
+ "const": "controls.decline"
14212
+ }
14213
+ },
14214
+ "required": [
14215
+ "kind"
14216
+ ]
14217
+ },
14218
+ {
14219
+ "type": "object",
14220
+ "properties": {
14221
+ "kind": {
14222
+ "type": "string",
14223
+ "const": "controls.done"
14224
+ }
14225
+ },
14226
+ "required": [
14227
+ "kind"
14228
+ ]
14229
+ },
14230
+ {
14231
+ "type": "object",
14232
+ "properties": {
14233
+ "kind": {
14234
+ "type": "string",
14235
+ "const": "duration.phase"
14236
+ }
14237
+ },
14238
+ "required": [
14239
+ "kind"
14240
+ ]
14241
+ },
14242
+ {
14243
+ "type": "object",
14244
+ "properties": {
14245
+ "count": {
14246
+ "type": "integer",
14247
+ "format": "int64",
14248
+ "maximum": 9007199254740991,
14249
+ "minimum": -9007199254740991
14250
+ },
14251
+ "kind": {
14252
+ "type": "string",
14253
+ "const": "duration.rounds"
14254
+ }
14255
+ },
14256
+ "required": [
14257
+ "kind",
14258
+ "count"
14259
+ ]
14260
+ },
14261
+ {
14262
+ "type": "object",
14263
+ "properties": {
14264
+ "keyword": {
14265
+ "type": "string"
14266
+ },
14267
+ "kind": {
14268
+ "type": "string",
14269
+ "const": "keyword.name"
14270
+ }
14271
+ },
14272
+ "required": [
14273
+ "kind",
14274
+ "keyword"
14275
+ ]
14276
+ },
14277
+ {
14278
+ "type": "object",
14279
+ "properties": {
14280
+ "kind": {
14281
+ "type": "string",
14282
+ "const": "keyword.overwhelm"
14283
+ }
14284
+ },
14285
+ "required": [
14286
+ "kind"
14287
+ ]
14288
+ },
14289
+ {
14290
+ "type": "object",
14291
+ "properties": {
14292
+ "kind": {
14293
+ "type": "string",
14294
+ "const": "keyword.raid"
14295
+ }
14296
+ },
14297
+ "required": [
14298
+ "kind"
14299
+ ]
14300
+ },
14301
+ {
14302
+ "type": "object",
14303
+ "properties": {
14304
+ "kind": {
14305
+ "type": "string",
14306
+ "const": "keyword.sentinel"
14307
+ }
14308
+ },
14309
+ "required": [
14310
+ "kind"
14311
+ ]
14312
+ },
14313
+ {
14314
+ "type": "object",
14315
+ "properties": {
14316
+ "kind": {
14317
+ "type": "string",
14318
+ "const": "legacyText"
14319
+ },
14320
+ "text": {
14321
+ "type": "string"
14322
+ }
14323
+ },
14324
+ "required": [
14325
+ "kind",
14326
+ "text"
14327
+ ]
14328
+ },
14329
+ {
14330
+ "type": "object",
14331
+ "properties": {
14332
+ "kind": {
14333
+ "type": "string",
14334
+ "const": "targetPurpose.attachUpgrade"
14335
+ }
14336
+ },
14337
+ "required": [
14338
+ "kind"
14339
+ ]
14340
+ },
14341
+ {
14342
+ "type": "object",
14343
+ "properties": {
14344
+ "kind": {
14345
+ "type": "string",
14346
+ "const": "targetPurpose.chooseTarget"
14347
+ }
14348
+ },
14349
+ "required": [
14350
+ "kind"
14351
+ ]
14352
+ },
14353
+ {
14354
+ "type": "object",
14355
+ "properties": {
14356
+ "amount": {
14357
+ "type": "integer",
14358
+ "format": "int64",
14359
+ "maximum": 9007199254740991,
14360
+ "minimum": -9007199254740991
14361
+ },
14362
+ "kind": {
14363
+ "type": "string",
14364
+ "const": "targetPurpose.dealDamage"
14365
+ }
14366
+ },
14367
+ "required": [
14368
+ "kind",
14369
+ "amount"
14370
+ ]
14371
+ },
14372
+ {
14373
+ "type": "object",
14374
+ "properties": {
14375
+ "amount": {
14376
+ "type": "integer",
14377
+ "format": "int64",
14378
+ "maximum": 9007199254740991,
14379
+ "minimum": -9007199254740991
14380
+ },
14381
+ "kind": {
14382
+ "type": "string",
14383
+ "const": "targetPurpose.giveShield"
14384
+ }
14385
+ },
14386
+ "required": [
14387
+ "kind",
14388
+ "amount"
14389
+ ]
14390
+ },
14391
+ {
14392
+ "type": "object",
14393
+ "properties": {
14394
+ "amount": {
14395
+ "type": "integer",
14396
+ "format": "int64",
14397
+ "maximum": 9007199254740991,
14398
+ "minimum": -9007199254740991
14399
+ },
14400
+ "kind": {
14401
+ "type": "string",
14402
+ "const": "targetPurpose.heal"
14403
+ }
14404
+ },
14405
+ "required": [
14406
+ "kind",
14407
+ "amount"
14408
+ ]
14409
+ },
14410
+ {
14411
+ "type": "object",
14412
+ "properties": {
14413
+ "kind": {
14414
+ "type": "string",
14415
+ "const": "timing.onceEachRound"
13333
14416
  }
14417
+ },
14418
+ "required": [
14419
+ "kind"
13334
14420
  ]
13335
14421
  }
13336
- },
13337
- "required": [
13338
- "available"
13339
14422
  ]
13340
14423
  },
13341
14424
  "SimulatorReportResponse": {
@@ -14221,6 +15304,13 @@ export const sdkSchemaCommon = {
14221
15304
  }
14222
15305
  ]
14223
15306
  },
15307
+ "textReferences": {
15308
+ "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.",
15309
+ "type": "array",
15310
+ "items": {
15311
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/CardTextRef"
15312
+ }
15313
+ },
14224
15314
  "validTargets": {
14225
15315
  "type": "array",
14226
15316
  "items": {
@@ -14307,6 +15397,11 @@ export const sdkSchemaCommon = {
14307
15397
  "host": {
14308
15398
  "type": "boolean"
14309
15399
  },
15400
+ "isAi": {
15401
+ "description": "Whether server automation permanently controls this participant.",
15402
+ "type": "boolean",
15403
+ "default": false
15404
+ },
14310
15405
  "joinedAtMs": {
14311
15406
  "type": "integer",
14312
15407
  "format": "uint64",
@@ -16435,6 +17530,24 @@ export const sdkSchemas = {
16435
17530
  "maximum": 255,
16436
17531
  "minimum": 0
16437
17532
  },
17533
+ "clearMatchSeed": {
17534
+ "description": "Clears the deterministic match seed, restoring random matches.",
17535
+ "type": "boolean"
17536
+ },
17537
+ "clearPackSeed": {
17538
+ "description": "Clears the deterministic Limited pool seed, restoring random pools.",
17539
+ "type": "boolean"
17540
+ },
17541
+ "draftRounds": {
17542
+ "description": "Replacement Chaos Draft booster sequence.",
17543
+ "type": [
17544
+ "array",
17545
+ "null"
17546
+ ],
17547
+ "items": {
17548
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/DraftRoundConfig"
17549
+ }
17550
+ },
16438
17551
  "gameTimerEnabled": {
16439
17552
  "type": [
16440
17553
  "boolean",
@@ -16452,6 +17565,27 @@ export const sdkSchemas = {
16452
17565
  }
16453
17566
  ]
16454
17567
  },
17568
+ "matchSeed": {
17569
+ "description": "Replacement deterministic match seed.",
17570
+ "type": [
17571
+ "string",
17572
+ "null"
17573
+ ]
17574
+ },
17575
+ "packSeed": {
17576
+ "description": "Replacement deterministic Limited pool seed.",
17577
+ "type": [
17578
+ "string",
17579
+ "null"
17580
+ ]
17581
+ },
17582
+ "pickTimerEnabled": {
17583
+ "description": "Enables or disables draft pick auto-selection countdowns.",
17584
+ "type": [
17585
+ "boolean",
17586
+ "null"
17587
+ ]
17588
+ },
16455
17589
  "playerCount": {
16456
17590
  "type": [
16457
17591
  "integer",
@@ -16464,6 +17598,34 @@ export const sdkSchemas = {
16464
17598
  "playerToken": {
16465
17599
  "type": "string"
16466
17600
  },
17601
+ "sealedPackCount": {
17602
+ "description": "Replacement Sealed booster count.",
17603
+ "type": [
17604
+ "integer",
17605
+ "null"
17606
+ ],
17607
+ "format": "uint8",
17608
+ "maximum": 255,
17609
+ "minimum": 0
17610
+ },
17611
+ "setCode": {
17612
+ "description": "Replacement Limited set code for sealed and normal Draft lobbies.",
17613
+ "type": [
17614
+ "string",
17615
+ "null"
17616
+ ]
17617
+ },
17618
+ "timerSettings": {
17619
+ "description": "Replaces timer durations for the final match and Limited event.",
17620
+ "anyOf": [
17621
+ {
17622
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/LobbyTimerSettings"
17623
+ },
17624
+ {
17625
+ "type": "null"
17626
+ }
17627
+ ]
17628
+ },
16467
17629
  "trilogyFormat": {
16468
17630
  "description": "Replacement legality profile for Trilogy lobbies.",
16469
17631
  "anyOf": [
@@ -17416,6 +18578,17 @@ export const sdkSchemas = {
17416
18578
  "setCode": {
17417
18579
  "description": "Set code used for booster generation.",
17418
18580
  "type": "string"
18581
+ },
18582
+ "timerSettings": {
18583
+ "description": "Optional lobby-owned pick and deck-construction schedule.",
18584
+ "anyOf": [
18585
+ {
18586
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/LimitedLobbyTimerSettings"
18587
+ },
18588
+ {
18589
+ "type": "null"
18590
+ }
18591
+ ]
17419
18592
  }
17420
18593
  },
17421
18594
  "required": [
@@ -17524,6 +18697,84 @@ export const sdkSchemas = {
17524
18697
  "description": "Empty request body for joining one limited event.",
17525
18698
  "type": "object"
17526
18699
  },
18700
+ 'leave-limited-event-request': {
18701
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
18702
+ "title": "LeaveLimitedEventRequest",
18703
+ "description": "Explicit departure from one direct Limited Event seat.",
18704
+ "type": "object",
18705
+ "properties": {
18706
+ "seatToken": {
18707
+ "description": "Seat token returned by create or join.",
18708
+ "type": "string"
18709
+ }
18710
+ },
18711
+ "required": [
18712
+ "seatToken"
18713
+ ]
18714
+ },
18715
+ 'limited-event-server-message': {
18716
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
18717
+ "title": "LimitedEventServerMessage",
18718
+ "description": "Server messages emitted by direct Limited Event sockets.",
18719
+ "oneOf": [
18720
+ {
18721
+ "type": "object",
18722
+ "properties": {
18723
+ "payload": {
18724
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/LimitedEventSnapshot"
18725
+ },
18726
+ "type": {
18727
+ "type": "string",
18728
+ "const": "snapshot"
18729
+ }
18730
+ },
18731
+ "required": [
18732
+ "type",
18733
+ "payload"
18734
+ ]
18735
+ },
18736
+ {
18737
+ "type": "object",
18738
+ "properties": {
18739
+ "payload": {
18740
+ "type": "object",
18741
+ "properties": {
18742
+ "nonce": {
18743
+ "type": [
18744
+ "string",
18745
+ "null"
18746
+ ]
18747
+ }
18748
+ }
18749
+ },
18750
+ "type": {
18751
+ "type": "string",
18752
+ "const": "pong"
18753
+ }
18754
+ },
18755
+ "required": [
18756
+ "type",
18757
+ "payload"
18758
+ ]
18759
+ },
18760
+ {
18761
+ "type": "object",
18762
+ "properties": {
18763
+ "payload": {
18764
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/ErrorPayload"
18765
+ },
18766
+ "type": {
18767
+ "type": "string",
18768
+ "const": "error"
18769
+ }
18770
+ },
18771
+ "required": [
18772
+ "type",
18773
+ "payload"
18774
+ ]
18775
+ }
18776
+ ]
18777
+ },
17527
18778
  'match-access-response': {
17528
18779
  "$schema": "https://json-schema.org/draft/2020-12/schema",
17529
18780
  "title": "MatchAccessResponse",
@@ -18366,6 +19617,61 @@ export const sdkSchemas = {
18366
19617
  "archive"
18367
19618
  ]
18368
19619
  },
19620
+ 'submit-ai-game-feedback-request': {
19621
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
19622
+ "title": "SubmitAiGameFeedbackRequest",
19623
+ "description": "Participant-authorized feedback for one completed Solo-versus-AI game.",
19624
+ "type": "object",
19625
+ "properties": {
19626
+ "comments": {
19627
+ "type": [
19628
+ "string",
19629
+ "null"
19630
+ ],
19631
+ "maxLength": 2000
19632
+ },
19633
+ "gameNumber": {
19634
+ "type": "integer",
19635
+ "format": "uint8",
19636
+ "maximum": 255,
19637
+ "minimum": 1
19638
+ },
19639
+ "identities": {
19640
+ "type": "array",
19641
+ "items": {
19642
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/HistoryIdentityInput"
19643
+ },
19644
+ "minItems": 1
19645
+ },
19646
+ "rating": {
19647
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/AiGameFeedbackRating"
19648
+ }
19649
+ },
19650
+ "required": [
19651
+ "identities",
19652
+ "gameNumber",
19653
+ "rating"
19654
+ ]
19655
+ },
19656
+ 'submit-ai-game-feedback-response': {
19657
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
19658
+ "title": "SubmitAiGameFeedbackResponse",
19659
+ "description": "Result of an idempotent AI-game-feedback submission.",
19660
+ "type": "object",
19661
+ "properties": {
19662
+ "created": {
19663
+ "description": "`false` means this game had already received feedback.",
19664
+ "type": "boolean"
19665
+ },
19666
+ "feedback": {
19667
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/AiGameFeedback"
19668
+ }
19669
+ },
19670
+ "required": [
19671
+ "feedback",
19672
+ "created"
19673
+ ]
19674
+ },
18369
19675
  'create-match-history-replay-share-request': {
18370
19676
  "$schema": "https://json-schema.org/draft/2020-12/schema",
18371
19677
  "title": "CreateMatchHistoryReplayShareRequest",
@@ -20137,11 +21443,33 @@ export const sdkSchemas = {
20137
21443
  "format": "uint32",
20138
21444
  "minimum": 0
20139
21445
  },
21446
+ "inputProvenance": {
21447
+ "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.",
21448
+ "anyOf": [
21449
+ {
21450
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EventPlayInputProvenance"
21451
+ },
21452
+ {
21453
+ "type": "null"
21454
+ }
21455
+ ]
21456
+ },
20140
21457
  "playedWithSmuggle": {
20141
21458
  "type": "boolean"
20142
21459
  },
20143
21460
  "seat": {
20144
21461
  "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
21462
+ },
21463
+ "text": {
21464
+ "description": "Exact printed event declaration exposed when this public event was played.",
21465
+ "anyOf": [
21466
+ {
21467
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
21468
+ },
21469
+ {
21470
+ "type": "null"
21471
+ }
21472
+ ]
20145
21473
  }
20146
21474
  },
20147
21475
  "required": [
@@ -20608,6 +21936,38 @@ export const sdkSchemas = {
20608
21936
  "cardsRevealed"
20609
21937
  ]
20610
21938
  },
21939
+ {
21940
+ "description": "Public cards explicitly selected from a discard pile during ability resolution.",
21941
+ "type": "object",
21942
+ "properties": {
21943
+ "cardsChosenFromDiscard": {
21944
+ "type": "object",
21945
+ "properties": {
21946
+ "cardIds": {
21947
+ "description": "Printed card identities in command order; duplicates represent distinct copies.",
21948
+ "type": "array",
21949
+ "items": {
21950
+ "type": "integer",
21951
+ "format": "uint32",
21952
+ "minimum": 0
21953
+ }
21954
+ },
21955
+ "seat": {
21956
+ "description": "Player who made the selection, which may differ from the discard-pile owner.",
21957
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/Seat"
21958
+ }
21959
+ },
21960
+ "required": [
21961
+ "seat",
21962
+ "cardIds"
21963
+ ]
21964
+ }
21965
+ },
21966
+ "additionalProperties": false,
21967
+ "required": [
21968
+ "cardsChosenFromDiscard"
21969
+ ]
21970
+ },
20611
21971
  {
20612
21972
  "type": "object",
20613
21973
  "properties": {
@@ -20800,6 +22160,17 @@ export const sdkSchemas = {
20800
22160
  "items": {
20801
22161
  "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/AbilityTarget"
20802
22162
  }
22163
+ },
22164
+ "text": {
22165
+ "description": "Exact public Action or Epic Action declaration that was used.",
22166
+ "anyOf": [
22167
+ {
22168
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
22169
+ },
22170
+ {
22171
+ "type": "null"
22172
+ }
22173
+ ]
20803
22174
  }
20804
22175
  },
20805
22176
  "required": [
@@ -20839,6 +22210,17 @@ export const sdkSchemas = {
20839
22210
  "format": "uint64",
20840
22211
  "minimum": 0
20841
22212
  },
22213
+ "text": {
22214
+ "description": "Exact public trigger declaration and currently resolved effect.",
22215
+ "anyOf": [
22216
+ {
22217
+ "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/EffectTextRefsView"
22218
+ },
22219
+ {
22220
+ "type": "null"
22221
+ }
22222
+ ]
22223
+ },
20842
22224
  "window": {
20843
22225
  "$ref": "https://simulator-sdk.my-swu.com/schema/common.json#/$defs/AbilityWindow"
20844
22226
  }