hoi4-agent-tools 2.2.0 → 2.3.0

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 (62) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +30 -21
  3. package/dist/bin/stdio.js +0 -4
  4. package/dist/hoi4_agent_tools/core/clausewitz-evaluation.js +90 -0
  5. package/dist/hoi4_agent_tools/core/engine.js +5 -0
  6. package/dist/hoi4_agent_tools/core/index.js +57 -1
  7. package/dist/hoi4_agent_tools/core/source/ast-path.js +41 -0
  8. package/dist/hoi4_agent_tools/core/source/index.js +1 -0
  9. package/dist/hoi4_agent_tools/event/limits.js +1 -1
  10. package/dist/hoi4_agent_tools/mcp/server/create.js +3 -1
  11. package/dist/hoi4_agent_tools/mcp/tools/probability.js +413 -0
  12. package/dist/hoi4_agent_tools/probability/adapters.js +344 -0
  13. package/dist/hoi4_agent_tools/probability/compare.js +178 -0
  14. package/dist/hoi4_agent_tools/probability/evaluation.js +649 -0
  15. package/dist/hoi4_agent_tools/probability/index.js +13 -0
  16. package/dist/hoi4_agent_tools/probability/model.js +5 -0
  17. package/dist/hoi4_agent_tools/probability/rational.js +145 -0
  18. package/dist/hoi4_agent_tools/probability/render.js +307 -0
  19. package/dist/hoi4_agent_tools/probability/sequence.js +858 -0
  20. package/dist/hoi4_agent_tools/probability/service.js +1168 -0
  21. package/dist/hoi4_agent_tools/probability/simulation.js +545 -0
  22. package/dist/hoi4_agent_tools/probability/source-analysis.js +458 -0
  23. package/dist/hoi4_agent_tools/probability/sweep.js +265 -0
  24. package/dist/hoi4_agent_tools/probability/trigger-evaluator.js +280 -0
  25. package/dist/hoi4_agent_tools/probability/value-evaluator.js +357 -0
  26. package/dist/hoi4_agent_tools/schemas/probability.js +930 -0
  27. package/dist/hoi4_agent_tools/version.js +1 -1
  28. package/docs/README.md +1 -0
  29. package/docs/development.md +2 -0
  30. package/docs/probability.md +80 -0
  31. package/docs/research/probability-adapter-evidence.md +64 -0
  32. package/examples/clients/codex-config.toml +3 -0
  33. package/examples/clients/generic.json +8 -0
  34. package/examples/probability/adaptive-event-pool.json +92 -0
  35. package/examples/probability/adaptive-event-sequence-input.json +57 -0
  36. package/examples/probability/event-mtth-scenarios.json +57 -0
  37. package/examples/probability/event-mtth-simulate-input.json +37 -0
  38. package/examples/probability/focus-route-scenarios.json +61 -0
  39. package/examples/probability/focus-route-sweep-input.json +36 -0
  40. package/package.json +17 -8
  41. package/schemas/configuration.schema.json +747 -0
  42. package/schemas/continuous-focus-palette.schema.json +325 -0
  43. package/schemas/custom-weighted-pool.schema.json +298 -0
  44. package/schemas/event-feature-manifest.schema.json +63 -0
  45. package/schemas/focus-plan.schema.json +927 -0
  46. package/schemas/focus-planning-sidecar.schema.json +407 -0
  47. package/schemas/gui-animation-source.schema.json +176 -0
  48. package/schemas/gui-helper.schema.json +301 -0
  49. package/schemas/gui-scenario.schema.json +298 -0
  50. package/schemas/map-operation.schema.json +2284 -0
  51. package/schemas/operation-result.schema.json +327 -0
  52. package/schemas/probability-analysis-result.schema.json +2211 -0
  53. package/schemas/probability-compare-input.schema.json +664 -0
  54. package/schemas/probability-evaluate-input.schema.json +665 -0
  55. package/schemas/probability-inspect-input.schema.json +97 -0
  56. package/schemas/probability-render-input.schema.json +141 -0
  57. package/schemas/probability-scenario-set.schema.json +430 -0
  58. package/schemas/probability-sequence-input.schema.json +886 -0
  59. package/schemas/probability-simulate-input.schema.json +691 -0
  60. package/schemas/probability-sweep-input.schema.json +702 -0
  61. package/server.json +3 -3
  62. package/dist/hoi4_agent_tools/mcp/tools/chaosx.js +0 -530
@@ -0,0 +1,2284 @@
1
+ {
2
+ "$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v2.3.0/schemas/map-operation.schema.json",
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "oneOf": [
5
+ {
6
+ "type": "object",
7
+ "properties": {
8
+ "id": {
9
+ "$ref": "#/$defs/__schema0"
10
+ },
11
+ "summary": {
12
+ "$ref": "#/$defs/__schema1"
13
+ },
14
+ "kind": {
15
+ "type": "string",
16
+ "const": "move_state_provinces"
17
+ },
18
+ "sourceStateId": {
19
+ "$ref": "#/$defs/__schema2"
20
+ },
21
+ "targetStateId": {
22
+ "$ref": "#/$defs/__schema2"
23
+ },
24
+ "provinceIds": {
25
+ "minItems": 1,
26
+ "maxItems": 100000,
27
+ "type": "array",
28
+ "items": {
29
+ "$ref": "#/$defs/__schema3"
30
+ }
31
+ },
32
+ "distribution": {
33
+ "type": "object",
34
+ "properties": {
35
+ "stateValues": {
36
+ "type": "string",
37
+ "const": "retain-in-current-states"
38
+ },
39
+ "ownership": {
40
+ "type": "string",
41
+ "const": "retain-in-current-states"
42
+ },
43
+ "provinceBuildings": {
44
+ "type": "string",
45
+ "const": "follow-province"
46
+ },
47
+ "victoryPoints": {
48
+ "type": "string",
49
+ "const": "follow-province"
50
+ },
51
+ "ports": {
52
+ "type": "string",
53
+ "const": "follow-province"
54
+ },
55
+ "supplyNodes": {
56
+ "type": "string",
57
+ "const": "follow-province"
58
+ },
59
+ "railways": {
60
+ "type": "string",
61
+ "const": "follow-province"
62
+ },
63
+ "positions": {
64
+ "type": "string",
65
+ "const": "follow-province"
66
+ },
67
+ "strategicRegion": {
68
+ "type": "string",
69
+ "enum": [
70
+ "require-same",
71
+ "move-to-target-region"
72
+ ]
73
+ }
74
+ },
75
+ "required": [
76
+ "stateValues",
77
+ "ownership",
78
+ "provinceBuildings",
79
+ "victoryPoints",
80
+ "ports",
81
+ "supplyNodes",
82
+ "railways",
83
+ "positions",
84
+ "strategicRegion"
85
+ ],
86
+ "additionalProperties": false
87
+ }
88
+ },
89
+ "required": [
90
+ "id",
91
+ "kind",
92
+ "sourceStateId",
93
+ "targetStateId",
94
+ "provinceIds",
95
+ "distribution"
96
+ ],
97
+ "additionalProperties": false
98
+ },
99
+ {
100
+ "type": "object",
101
+ "properties": {
102
+ "id": {
103
+ "$ref": "#/$defs/__schema0"
104
+ },
105
+ "summary": {
106
+ "$ref": "#/$defs/__schema1"
107
+ },
108
+ "kind": {
109
+ "type": "string",
110
+ "const": "add_normal_adjacency"
111
+ },
112
+ "from": {
113
+ "$ref": "#/$defs/__schema3"
114
+ },
115
+ "to": {
116
+ "$ref": "#/$defs/__schema3"
117
+ },
118
+ "pixelTransfers": {
119
+ "minItems": 1,
120
+ "maxItems": 1000000,
121
+ "type": "array",
122
+ "items": {
123
+ "$ref": "#/$defs/__schema4"
124
+ },
125
+ "description": "Exact raster recolors; at most 1000000 transfers per operation"
126
+ }
127
+ },
128
+ "required": [
129
+ "id",
130
+ "kind",
131
+ "from",
132
+ "to",
133
+ "pixelTransfers"
134
+ ],
135
+ "additionalProperties": false
136
+ },
137
+ {
138
+ "type": "object",
139
+ "properties": {
140
+ "id": {
141
+ "$ref": "#/$defs/__schema0"
142
+ },
143
+ "summary": {
144
+ "$ref": "#/$defs/__schema1"
145
+ },
146
+ "kind": {
147
+ "type": "string",
148
+ "const": "remove_normal_adjacency"
149
+ },
150
+ "from": {
151
+ "$ref": "#/$defs/__schema3"
152
+ },
153
+ "to": {
154
+ "$ref": "#/$defs/__schema3"
155
+ },
156
+ "pixelTransfers": {
157
+ "minItems": 1,
158
+ "maxItems": 1000000,
159
+ "type": "array",
160
+ "items": {
161
+ "$ref": "#/$defs/__schema5"
162
+ },
163
+ "description": "Exact raster recolors; at most 1000000 transfers per operation"
164
+ }
165
+ },
166
+ "required": [
167
+ "id",
168
+ "kind",
169
+ "from",
170
+ "to",
171
+ "pixelTransfers"
172
+ ],
173
+ "additionalProperties": false
174
+ },
175
+ {
176
+ "type": "object",
177
+ "properties": {
178
+ "id": {
179
+ "$ref": "#/$defs/__schema0"
180
+ },
181
+ "summary": {
182
+ "$ref": "#/$defs/__schema1"
183
+ },
184
+ "kind": {
185
+ "type": "string",
186
+ "const": "update_state"
187
+ },
188
+ "stateId": {
189
+ "$ref": "#/$defs/__schema2"
190
+ },
191
+ "changes": {
192
+ "type": "object",
193
+ "properties": {
194
+ "capital": {
195
+ "description": "Assertion for the capital derived from the exact victoryPoints payload; never writes a state capital field",
196
+ "$ref": "#/$defs/__schema6"
197
+ },
198
+ "manpower": {
199
+ "type": "number",
200
+ "minimum": 0
201
+ },
202
+ "category": {
203
+ "type": "string",
204
+ "minLength": 1
205
+ },
206
+ "resources": {
207
+ "$ref": "#/$defs/__schema7"
208
+ },
209
+ "stateBuildings": {
210
+ "$ref": "#/$defs/__schema7"
211
+ },
212
+ "owner": {
213
+ "anyOf": [
214
+ {
215
+ "type": "string",
216
+ "minLength": 1
217
+ },
218
+ {
219
+ "type": "null"
220
+ }
221
+ ]
222
+ },
223
+ "controller": {
224
+ "anyOf": [
225
+ {
226
+ "type": "string",
227
+ "minLength": 1
228
+ },
229
+ {
230
+ "type": "null"
231
+ }
232
+ ]
233
+ },
234
+ "cores": {
235
+ "maxItems": 10000,
236
+ "type": "array",
237
+ "items": {
238
+ "$ref": "#/$defs/__schema8"
239
+ }
240
+ },
241
+ "claims": {
242
+ "maxItems": 10000,
243
+ "type": "array",
244
+ "items": {
245
+ "$ref": "#/$defs/__schema9"
246
+ }
247
+ },
248
+ "victoryPoints": {
249
+ "maxItems": 100000,
250
+ "type": "array",
251
+ "items": {
252
+ "$ref": "#/$defs/__schema10"
253
+ }
254
+ },
255
+ "provinceBuildings": {
256
+ "type": "object",
257
+ "propertyNames": {
258
+ "type": "string",
259
+ "pattern": "^\\d+$"
260
+ },
261
+ "additionalProperties": {
262
+ "$ref": "#/$defs/__schema7"
263
+ }
264
+ }
265
+ },
266
+ "additionalProperties": false
267
+ }
268
+ },
269
+ "required": [
270
+ "id",
271
+ "kind",
272
+ "stateId",
273
+ "changes"
274
+ ],
275
+ "additionalProperties": false
276
+ },
277
+ {
278
+ "type": "object",
279
+ "properties": {
280
+ "id": {
281
+ "$ref": "#/$defs/__schema0"
282
+ },
283
+ "summary": {
284
+ "$ref": "#/$defs/__schema1"
285
+ },
286
+ "kind": {
287
+ "type": "string",
288
+ "const": "split_state"
289
+ },
290
+ "sourceStateId": {
291
+ "$ref": "#/$defs/__schema2"
292
+ },
293
+ "stateId": {
294
+ "$ref": "#/$defs/__schema2"
295
+ },
296
+ "provinceIds": {
297
+ "minItems": 1,
298
+ "maxItems": 100000,
299
+ "type": "array",
300
+ "items": {
301
+ "$ref": "#/$defs/__schema3"
302
+ }
303
+ },
304
+ "name": {
305
+ "type": "string",
306
+ "maxLength": 1000
307
+ },
308
+ "fileName": {
309
+ "type": "string",
310
+ "maxLength": 255
311
+ },
312
+ "localisation": {
313
+ "$ref": "#/$defs/__schema11"
314
+ },
315
+ "distribution": {
316
+ "$ref": "#/$defs/__schema12"
317
+ }
318
+ },
319
+ "required": [
320
+ "id",
321
+ "kind",
322
+ "sourceStateId",
323
+ "provinceIds",
324
+ "distribution"
325
+ ],
326
+ "additionalProperties": false
327
+ },
328
+ {
329
+ "type": "object",
330
+ "properties": {
331
+ "id": {
332
+ "$ref": "#/$defs/__schema0"
333
+ },
334
+ "summary": {
335
+ "$ref": "#/$defs/__schema1"
336
+ },
337
+ "kind": {
338
+ "type": "string",
339
+ "const": "create_state"
340
+ },
341
+ "sourceStateId": {
342
+ "$ref": "#/$defs/__schema2"
343
+ },
344
+ "stateId": {
345
+ "$ref": "#/$defs/__schema2"
346
+ },
347
+ "provinceIds": {
348
+ "minItems": 1,
349
+ "maxItems": 100000,
350
+ "type": "array",
351
+ "items": {
352
+ "$ref": "#/$defs/__schema3"
353
+ }
354
+ },
355
+ "name": {
356
+ "type": "string",
357
+ "maxLength": 1000
358
+ },
359
+ "fileName": {
360
+ "type": "string",
361
+ "maxLength": 255
362
+ },
363
+ "localisation": {
364
+ "$ref": "#/$defs/__schema11"
365
+ },
366
+ "distribution": {
367
+ "$ref": "#/$defs/__schema12"
368
+ }
369
+ },
370
+ "required": [
371
+ "id",
372
+ "kind",
373
+ "sourceStateId",
374
+ "provinceIds",
375
+ "distribution"
376
+ ],
377
+ "additionalProperties": false
378
+ },
379
+ {
380
+ "type": "object",
381
+ "properties": {
382
+ "id": {
383
+ "$ref": "#/$defs/__schema0"
384
+ },
385
+ "summary": {
386
+ "$ref": "#/$defs/__schema1"
387
+ },
388
+ "kind": {
389
+ "type": "string",
390
+ "const": "merge_states"
391
+ },
392
+ "sourceStateIds": {
393
+ "minItems": 1,
394
+ "maxItems": 100000,
395
+ "type": "array",
396
+ "items": {
397
+ "$ref": "#/$defs/__schema2"
398
+ }
399
+ },
400
+ "targetStateId": {
401
+ "$ref": "#/$defs/__schema2"
402
+ },
403
+ "distribution": {
404
+ "type": "object",
405
+ "properties": {
406
+ "stateValues": {
407
+ "type": "string",
408
+ "const": "sum-into-target"
409
+ },
410
+ "ownership": {
411
+ "type": "string",
412
+ "const": "retain-target"
413
+ },
414
+ "controller": {
415
+ "type": "string",
416
+ "const": "retain-target"
417
+ },
418
+ "cores": {
419
+ "type": "string",
420
+ "const": "union"
421
+ },
422
+ "claims": {
423
+ "type": "string",
424
+ "const": "union"
425
+ },
426
+ "victoryPoints": {
427
+ "type": "string",
428
+ "const": "follow-province"
429
+ },
430
+ "provinceBuildings": {
431
+ "type": "string",
432
+ "const": "follow-province"
433
+ },
434
+ "ports": {
435
+ "type": "string",
436
+ "const": "follow-province"
437
+ },
438
+ "supplyNodes": {
439
+ "type": "string",
440
+ "const": "follow-province"
441
+ },
442
+ "railways": {
443
+ "type": "string",
444
+ "const": "follow-province"
445
+ },
446
+ "positions": {
447
+ "type": "string",
448
+ "const": "follow-province"
449
+ },
450
+ "strategicRegion": {
451
+ "type": "string",
452
+ "const": "require-same"
453
+ }
454
+ },
455
+ "required": [
456
+ "stateValues",
457
+ "ownership",
458
+ "controller",
459
+ "cores",
460
+ "claims",
461
+ "victoryPoints",
462
+ "provinceBuildings",
463
+ "ports",
464
+ "supplyNodes",
465
+ "railways",
466
+ "positions",
467
+ "strategicRegion"
468
+ ],
469
+ "additionalProperties": false
470
+ }
471
+ },
472
+ "required": [
473
+ "id",
474
+ "kind",
475
+ "sourceStateIds",
476
+ "targetStateId",
477
+ "distribution"
478
+ ],
479
+ "additionalProperties": false
480
+ },
481
+ {
482
+ "type": "object",
483
+ "properties": {
484
+ "id": {
485
+ "$ref": "#/$defs/__schema0"
486
+ },
487
+ "summary": {
488
+ "$ref": "#/$defs/__schema1"
489
+ },
490
+ "kind": {
491
+ "type": "string",
492
+ "const": "split_province"
493
+ },
494
+ "sourceProvinceId": {
495
+ "$ref": "#/$defs/__schema3"
496
+ },
497
+ "provinceId": {
498
+ "$ref": "#/$defs/__schema3"
499
+ },
500
+ "geometry": {
501
+ "$ref": "#/$defs/__schema18"
502
+ },
503
+ "definition": {
504
+ "$ref": "#/$defs/__schema29"
505
+ },
506
+ "distribution": {
507
+ "$ref": "#/$defs/__schema33"
508
+ }
509
+ },
510
+ "required": [
511
+ "id",
512
+ "kind",
513
+ "sourceProvinceId",
514
+ "geometry",
515
+ "definition",
516
+ "distribution"
517
+ ],
518
+ "additionalProperties": false
519
+ },
520
+ {
521
+ "type": "object",
522
+ "properties": {
523
+ "id": {
524
+ "$ref": "#/$defs/__schema0"
525
+ },
526
+ "summary": {
527
+ "$ref": "#/$defs/__schema1"
528
+ },
529
+ "kind": {
530
+ "type": "string",
531
+ "const": "create_province"
532
+ },
533
+ "sourceProvinceId": {
534
+ "$ref": "#/$defs/__schema3"
535
+ },
536
+ "provinceId": {
537
+ "$ref": "#/$defs/__schema3"
538
+ },
539
+ "geometry": {
540
+ "$ref": "#/$defs/__schema18"
541
+ },
542
+ "definition": {
543
+ "$ref": "#/$defs/__schema29"
544
+ },
545
+ "distribution": {
546
+ "$ref": "#/$defs/__schema33"
547
+ }
548
+ },
549
+ "required": [
550
+ "id",
551
+ "kind",
552
+ "sourceProvinceId",
553
+ "geometry",
554
+ "definition",
555
+ "distribution"
556
+ ],
557
+ "additionalProperties": false
558
+ },
559
+ {
560
+ "type": "object",
561
+ "properties": {
562
+ "id": {
563
+ "$ref": "#/$defs/__schema0"
564
+ },
565
+ "summary": {
566
+ "$ref": "#/$defs/__schema1"
567
+ },
568
+ "kind": {
569
+ "type": "string",
570
+ "const": "merge_provinces"
571
+ },
572
+ "sourceProvinceIds": {
573
+ "minItems": 1,
574
+ "maxItems": 100000,
575
+ "type": "array",
576
+ "items": {
577
+ "$ref": "#/$defs/__schema3"
578
+ }
579
+ },
580
+ "targetProvinceId": {
581
+ "$ref": "#/$defs/__schema3"
582
+ },
583
+ "distribution": {
584
+ "$ref": "#/$defs/__schema34"
585
+ }
586
+ },
587
+ "required": [
588
+ "id",
589
+ "kind",
590
+ "sourceProvinceIds",
591
+ "targetProvinceId",
592
+ "distribution"
593
+ ],
594
+ "additionalProperties": false
595
+ },
596
+ {
597
+ "type": "object",
598
+ "properties": {
599
+ "id": {
600
+ "$ref": "#/$defs/__schema0"
601
+ },
602
+ "summary": {
603
+ "$ref": "#/$defs/__schema1"
604
+ },
605
+ "kind": {
606
+ "type": "string",
607
+ "const": "remove_province"
608
+ },
609
+ "provinceId": {
610
+ "$ref": "#/$defs/__schema3"
611
+ },
612
+ "mergeIntoProvinceId": {
613
+ "$ref": "#/$defs/__schema3"
614
+ },
615
+ "distribution": {
616
+ "$ref": "#/$defs/__schema34"
617
+ }
618
+ },
619
+ "required": [
620
+ "id",
621
+ "kind",
622
+ "provinceId",
623
+ "mergeIntoProvinceId",
624
+ "distribution"
625
+ ],
626
+ "additionalProperties": false
627
+ },
628
+ {
629
+ "type": "object",
630
+ "properties": {
631
+ "id": {
632
+ "$ref": "#/$defs/__schema0"
633
+ },
634
+ "summary": {
635
+ "$ref": "#/$defs/__schema1"
636
+ },
637
+ "kind": {
638
+ "type": "string",
639
+ "const": "update_province_definition"
640
+ },
641
+ "provinceId": {
642
+ "$ref": "#/$defs/__schema3"
643
+ },
644
+ "changes": {
645
+ "$ref": "#/$defs/__schema30"
646
+ },
647
+ "distribution": {
648
+ "description": "Required complete dependency policy when changes.type crosses land/sea/lake",
649
+ "$ref": "#/$defs/__schema35"
650
+ }
651
+ },
652
+ "required": [
653
+ "id",
654
+ "kind",
655
+ "provinceId",
656
+ "changes"
657
+ ],
658
+ "additionalProperties": false
659
+ },
660
+ {
661
+ "type": "object",
662
+ "properties": {
663
+ "id": {
664
+ "$ref": "#/$defs/__schema0"
665
+ },
666
+ "summary": {
667
+ "$ref": "#/$defs/__schema1"
668
+ },
669
+ "kind": {
670
+ "type": "string",
671
+ "const": "move_region_provinces"
672
+ },
673
+ "sourceRegionId": {
674
+ "type": "integer",
675
+ "exclusiveMinimum": 0,
676
+ "maximum": 9007199254740991
677
+ },
678
+ "targetRegionId": {
679
+ "type": "integer",
680
+ "exclusiveMinimum": 0,
681
+ "maximum": 9007199254740991
682
+ },
683
+ "provinceIds": {
684
+ "minItems": 1,
685
+ "maxItems": 100000,
686
+ "type": "array",
687
+ "items": {
688
+ "$ref": "#/$defs/__schema3"
689
+ }
690
+ },
691
+ "distribution": {
692
+ "type": "string",
693
+ "const": "move-membership"
694
+ }
695
+ },
696
+ "required": [
697
+ "id",
698
+ "kind",
699
+ "sourceRegionId",
700
+ "targetRegionId",
701
+ "provinceIds",
702
+ "distribution"
703
+ ],
704
+ "additionalProperties": false
705
+ },
706
+ {
707
+ "type": "object",
708
+ "properties": {
709
+ "id": {
710
+ "$ref": "#/$defs/__schema0"
711
+ },
712
+ "summary": {
713
+ "$ref": "#/$defs/__schema1"
714
+ },
715
+ "kind": {
716
+ "type": "string",
717
+ "const": "add_adjacency"
718
+ },
719
+ "adjacency": {
720
+ "type": "object",
721
+ "properties": {
722
+ "from": {
723
+ "$ref": "#/$defs/__schema3"
724
+ },
725
+ "to": {
726
+ "$ref": "#/$defs/__schema3"
727
+ },
728
+ "type": {
729
+ "type": "string"
730
+ },
731
+ "through": {
732
+ "type": "integer",
733
+ "minimum": -9007199254740991,
734
+ "maximum": 9007199254740991
735
+ },
736
+ "startX": {
737
+ "type": "number"
738
+ },
739
+ "startY": {
740
+ "type": "number"
741
+ },
742
+ "stopX": {
743
+ "type": "number"
744
+ },
745
+ "stopY": {
746
+ "type": "number"
747
+ },
748
+ "rule": {
749
+ "type": "string"
750
+ },
751
+ "comment": {
752
+ "type": "string"
753
+ }
754
+ },
755
+ "required": [
756
+ "from",
757
+ "to",
758
+ "type",
759
+ "through",
760
+ "startX",
761
+ "startY",
762
+ "stopX",
763
+ "stopY",
764
+ "rule",
765
+ "comment"
766
+ ],
767
+ "additionalProperties": false
768
+ }
769
+ },
770
+ "required": [
771
+ "id",
772
+ "kind",
773
+ "adjacency"
774
+ ],
775
+ "additionalProperties": false
776
+ },
777
+ {
778
+ "type": "object",
779
+ "properties": {
780
+ "id": {
781
+ "$ref": "#/$defs/__schema0"
782
+ },
783
+ "summary": {
784
+ "$ref": "#/$defs/__schema1"
785
+ },
786
+ "kind": {
787
+ "type": "string",
788
+ "const": "remove_adjacency"
789
+ },
790
+ "from": {
791
+ "$ref": "#/$defs/__schema3"
792
+ },
793
+ "to": {
794
+ "$ref": "#/$defs/__schema3"
795
+ },
796
+ "type": {
797
+ "type": "string"
798
+ }
799
+ },
800
+ "required": [
801
+ "id",
802
+ "kind",
803
+ "from",
804
+ "to"
805
+ ],
806
+ "additionalProperties": false
807
+ },
808
+ {
809
+ "type": "object",
810
+ "properties": {
811
+ "id": {
812
+ "$ref": "#/$defs/__schema0"
813
+ },
814
+ "summary": {
815
+ "$ref": "#/$defs/__schema1"
816
+ },
817
+ "kind": {
818
+ "type": "string",
819
+ "const": "add_supply_node"
820
+ },
821
+ "level": {
822
+ "type": "integer",
823
+ "minimum": 1,
824
+ "maximum": 5
825
+ },
826
+ "provinceId": {
827
+ "$ref": "#/$defs/__schema3"
828
+ }
829
+ },
830
+ "required": [
831
+ "id",
832
+ "kind",
833
+ "level",
834
+ "provinceId"
835
+ ],
836
+ "additionalProperties": false
837
+ },
838
+ {
839
+ "type": "object",
840
+ "properties": {
841
+ "id": {
842
+ "$ref": "#/$defs/__schema0"
843
+ },
844
+ "summary": {
845
+ "$ref": "#/$defs/__schema1"
846
+ },
847
+ "kind": {
848
+ "type": "string",
849
+ "const": "remove_supply_node"
850
+ },
851
+ "provinceId": {
852
+ "$ref": "#/$defs/__schema3"
853
+ }
854
+ },
855
+ "required": [
856
+ "id",
857
+ "kind",
858
+ "provinceId"
859
+ ],
860
+ "additionalProperties": false
861
+ },
862
+ {
863
+ "type": "object",
864
+ "properties": {
865
+ "id": {
866
+ "$ref": "#/$defs/__schema0"
867
+ },
868
+ "summary": {
869
+ "$ref": "#/$defs/__schema1"
870
+ },
871
+ "kind": {
872
+ "type": "string",
873
+ "const": "add_railway"
874
+ },
875
+ "level": {
876
+ "type": "integer",
877
+ "minimum": 1,
878
+ "maximum": 5
879
+ },
880
+ "provinces": {
881
+ "minItems": 2,
882
+ "maxItems": 100000,
883
+ "type": "array",
884
+ "items": {
885
+ "$ref": "#/$defs/__schema3"
886
+ }
887
+ }
888
+ },
889
+ "required": [
890
+ "id",
891
+ "kind",
892
+ "level",
893
+ "provinces"
894
+ ],
895
+ "additionalProperties": false
896
+ },
897
+ {
898
+ "type": "object",
899
+ "properties": {
900
+ "id": {
901
+ "$ref": "#/$defs/__schema0"
902
+ },
903
+ "summary": {
904
+ "$ref": "#/$defs/__schema1"
905
+ },
906
+ "kind": {
907
+ "type": "string",
908
+ "const": "remove_railway"
909
+ },
910
+ "index": {
911
+ "type": "integer",
912
+ "minimum": 0,
913
+ "maximum": 9007199254740991
914
+ }
915
+ },
916
+ "required": [
917
+ "id",
918
+ "kind",
919
+ "index"
920
+ ],
921
+ "additionalProperties": false
922
+ },
923
+ {
924
+ "type": "object",
925
+ "properties": {
926
+ "id": {
927
+ "$ref": "#/$defs/__schema0"
928
+ },
929
+ "summary": {
930
+ "$ref": "#/$defs/__schema1"
931
+ },
932
+ "kind": {
933
+ "type": "string",
934
+ "const": "upsert_building_position"
935
+ },
936
+ "match": {
937
+ "type": "object",
938
+ "properties": {
939
+ "stateId": {
940
+ "$ref": "#/$defs/__schema2"
941
+ },
942
+ "building": {
943
+ "type": "string",
944
+ "minLength": 1
945
+ },
946
+ "occurrence": {
947
+ "$ref": "#/$defs/__schema36"
948
+ }
949
+ },
950
+ "required": [
951
+ "stateId",
952
+ "building"
953
+ ],
954
+ "additionalProperties": false
955
+ },
956
+ "value": {
957
+ "type": "object",
958
+ "properties": {
959
+ "stateId": {
960
+ "$ref": "#/$defs/__schema2"
961
+ },
962
+ "building": {
963
+ "type": "string",
964
+ "minLength": 1
965
+ },
966
+ "x": {
967
+ "type": "number"
968
+ },
969
+ "y": {
970
+ "type": "number"
971
+ },
972
+ "z": {
973
+ "type": "number"
974
+ },
975
+ "rotation": {
976
+ "type": "number"
977
+ },
978
+ "adjacentSeaProvince": {
979
+ "type": "integer",
980
+ "minimum": -9007199254740991,
981
+ "maximum": 9007199254740991
982
+ }
983
+ },
984
+ "required": [
985
+ "stateId",
986
+ "building",
987
+ "x",
988
+ "y",
989
+ "z",
990
+ "rotation",
991
+ "adjacentSeaProvince"
992
+ ],
993
+ "additionalProperties": false
994
+ }
995
+ },
996
+ "required": [
997
+ "id",
998
+ "kind",
999
+ "match",
1000
+ "value"
1001
+ ],
1002
+ "additionalProperties": false
1003
+ },
1004
+ {
1005
+ "type": "object",
1006
+ "properties": {
1007
+ "id": {
1008
+ "$ref": "#/$defs/__schema0"
1009
+ },
1010
+ "summary": {
1011
+ "$ref": "#/$defs/__schema1"
1012
+ },
1013
+ "kind": {
1014
+ "type": "string",
1015
+ "const": "remove_building_position"
1016
+ },
1017
+ "match": {
1018
+ "type": "object",
1019
+ "properties": {
1020
+ "stateId": {
1021
+ "$ref": "#/$defs/__schema2"
1022
+ },
1023
+ "building": {
1024
+ "type": "string",
1025
+ "minLength": 1
1026
+ },
1027
+ "occurrence": {
1028
+ "$ref": "#/$defs/__schema36"
1029
+ }
1030
+ },
1031
+ "required": [
1032
+ "stateId",
1033
+ "building"
1034
+ ],
1035
+ "additionalProperties": false
1036
+ }
1037
+ },
1038
+ "required": [
1039
+ "id",
1040
+ "kind",
1041
+ "match"
1042
+ ],
1043
+ "additionalProperties": false
1044
+ },
1045
+ {
1046
+ "type": "object",
1047
+ "properties": {
1048
+ "id": {
1049
+ "$ref": "#/$defs/__schema0"
1050
+ },
1051
+ "summary": {
1052
+ "$ref": "#/$defs/__schema1"
1053
+ },
1054
+ "kind": {
1055
+ "type": "string",
1056
+ "const": "upsert_unit_position"
1057
+ },
1058
+ "match": {
1059
+ "type": "object",
1060
+ "properties": {
1061
+ "provinceId": {
1062
+ "$ref": "#/$defs/__schema3"
1063
+ },
1064
+ "type": {
1065
+ "type": "integer",
1066
+ "minimum": -9007199254740991,
1067
+ "maximum": 9007199254740991
1068
+ },
1069
+ "occurrence": {
1070
+ "$ref": "#/$defs/__schema36"
1071
+ }
1072
+ },
1073
+ "required": [
1074
+ "provinceId",
1075
+ "type"
1076
+ ],
1077
+ "additionalProperties": false
1078
+ },
1079
+ "value": {
1080
+ "type": "object",
1081
+ "properties": {
1082
+ "provinceId": {
1083
+ "$ref": "#/$defs/__schema3"
1084
+ },
1085
+ "type": {
1086
+ "type": "integer",
1087
+ "minimum": -9007199254740991,
1088
+ "maximum": 9007199254740991
1089
+ },
1090
+ "x": {
1091
+ "type": "number"
1092
+ },
1093
+ "y": {
1094
+ "type": "number"
1095
+ },
1096
+ "z": {
1097
+ "type": "number"
1098
+ },
1099
+ "rotation": {
1100
+ "type": "number"
1101
+ },
1102
+ "offset": {
1103
+ "type": "number"
1104
+ }
1105
+ },
1106
+ "required": [
1107
+ "provinceId",
1108
+ "type",
1109
+ "x",
1110
+ "y",
1111
+ "z",
1112
+ "rotation",
1113
+ "offset"
1114
+ ],
1115
+ "additionalProperties": false
1116
+ }
1117
+ },
1118
+ "required": [
1119
+ "id",
1120
+ "kind",
1121
+ "match",
1122
+ "value"
1123
+ ],
1124
+ "additionalProperties": false
1125
+ },
1126
+ {
1127
+ "type": "object",
1128
+ "properties": {
1129
+ "id": {
1130
+ "$ref": "#/$defs/__schema0"
1131
+ },
1132
+ "summary": {
1133
+ "$ref": "#/$defs/__schema1"
1134
+ },
1135
+ "kind": {
1136
+ "type": "string",
1137
+ "const": "remove_unit_position"
1138
+ },
1139
+ "match": {
1140
+ "type": "object",
1141
+ "properties": {
1142
+ "provinceId": {
1143
+ "$ref": "#/$defs/__schema3"
1144
+ },
1145
+ "type": {
1146
+ "type": "integer",
1147
+ "minimum": -9007199254740991,
1148
+ "maximum": 9007199254740991
1149
+ },
1150
+ "occurrence": {
1151
+ "$ref": "#/$defs/__schema36"
1152
+ }
1153
+ },
1154
+ "required": [
1155
+ "provinceId",
1156
+ "type"
1157
+ ],
1158
+ "additionalProperties": false
1159
+ }
1160
+ },
1161
+ "required": [
1162
+ "id",
1163
+ "kind",
1164
+ "match"
1165
+ ],
1166
+ "additionalProperties": false
1167
+ },
1168
+ {
1169
+ "type": "object",
1170
+ "properties": {
1171
+ "id": {
1172
+ "$ref": "#/$defs/__schema0"
1173
+ },
1174
+ "summary": {
1175
+ "$ref": "#/$defs/__schema1"
1176
+ },
1177
+ "kind": {
1178
+ "type": "string",
1179
+ "const": "upsert_weather_position"
1180
+ },
1181
+ "match": {
1182
+ "type": "object",
1183
+ "properties": {
1184
+ "strategicRegionId": {
1185
+ "type": "integer",
1186
+ "exclusiveMinimum": 0,
1187
+ "maximum": 9007199254740991
1188
+ },
1189
+ "size": {
1190
+ "type": "string"
1191
+ },
1192
+ "occurrence": {
1193
+ "$ref": "#/$defs/__schema36"
1194
+ }
1195
+ },
1196
+ "required": [
1197
+ "strategicRegionId",
1198
+ "size"
1199
+ ],
1200
+ "additionalProperties": false
1201
+ },
1202
+ "value": {
1203
+ "type": "object",
1204
+ "properties": {
1205
+ "strategicRegionId": {
1206
+ "type": "integer",
1207
+ "exclusiveMinimum": 0,
1208
+ "maximum": 9007199254740991
1209
+ },
1210
+ "x": {
1211
+ "type": "number"
1212
+ },
1213
+ "y": {
1214
+ "type": "number"
1215
+ },
1216
+ "z": {
1217
+ "type": "number"
1218
+ },
1219
+ "size": {
1220
+ "type": "string"
1221
+ }
1222
+ },
1223
+ "required": [
1224
+ "strategicRegionId",
1225
+ "x",
1226
+ "y",
1227
+ "z",
1228
+ "size"
1229
+ ],
1230
+ "additionalProperties": false
1231
+ }
1232
+ },
1233
+ "required": [
1234
+ "id",
1235
+ "kind",
1236
+ "match",
1237
+ "value"
1238
+ ],
1239
+ "additionalProperties": false
1240
+ },
1241
+ {
1242
+ "type": "object",
1243
+ "properties": {
1244
+ "id": {
1245
+ "$ref": "#/$defs/__schema0"
1246
+ },
1247
+ "summary": {
1248
+ "$ref": "#/$defs/__schema1"
1249
+ },
1250
+ "kind": {
1251
+ "type": "string",
1252
+ "const": "remove_weather_position"
1253
+ },
1254
+ "match": {
1255
+ "type": "object",
1256
+ "properties": {
1257
+ "strategicRegionId": {
1258
+ "type": "integer",
1259
+ "exclusiveMinimum": 0,
1260
+ "maximum": 9007199254740991
1261
+ },
1262
+ "size": {
1263
+ "type": "string"
1264
+ },
1265
+ "occurrence": {
1266
+ "$ref": "#/$defs/__schema36"
1267
+ }
1268
+ },
1269
+ "required": [
1270
+ "strategicRegionId",
1271
+ "size"
1272
+ ],
1273
+ "additionalProperties": false
1274
+ }
1275
+ },
1276
+ "required": [
1277
+ "id",
1278
+ "kind",
1279
+ "match"
1280
+ ],
1281
+ "additionalProperties": false
1282
+ },
1283
+ {
1284
+ "type": "object",
1285
+ "properties": {
1286
+ "id": {
1287
+ "$ref": "#/$defs/__schema0"
1288
+ },
1289
+ "summary": {
1290
+ "$ref": "#/$defs/__schema1"
1291
+ },
1292
+ "kind": {
1293
+ "type": "string",
1294
+ "const": "update_entity_locator"
1295
+ },
1296
+ "entity": {
1297
+ "type": "string",
1298
+ "minLength": 1
1299
+ },
1300
+ "name": {
1301
+ "type": "string",
1302
+ "minLength": 1
1303
+ },
1304
+ "position": {
1305
+ "type": "array",
1306
+ "prefixItems": [
1307
+ {
1308
+ "type": "number"
1309
+ },
1310
+ {
1311
+ "type": "number"
1312
+ },
1313
+ {
1314
+ "type": "number"
1315
+ }
1316
+ ]
1317
+ }
1318
+ },
1319
+ "required": [
1320
+ "id",
1321
+ "kind",
1322
+ "entity",
1323
+ "name",
1324
+ "position"
1325
+ ],
1326
+ "additionalProperties": false
1327
+ }
1328
+ ],
1329
+ "$defs": {
1330
+ "__schema0": {
1331
+ "type": "string",
1332
+ "minLength": 1,
1333
+ "maxLength": 256
1334
+ },
1335
+ "__schema1": {
1336
+ "type": "string",
1337
+ "maxLength": 1000
1338
+ },
1339
+ "__schema2": {
1340
+ "type": "integer",
1341
+ "exclusiveMinimum": 0,
1342
+ "maximum": 9007199254740991
1343
+ },
1344
+ "__schema3": {
1345
+ "type": "integer",
1346
+ "minimum": 0,
1347
+ "maximum": 9007199254740991
1348
+ },
1349
+ "__schema4": {
1350
+ "type": "object",
1351
+ "properties": {
1352
+ "x": {
1353
+ "type": "integer",
1354
+ "minimum": 0,
1355
+ "maximum": 9007199254740991
1356
+ },
1357
+ "y": {
1358
+ "type": "integer",
1359
+ "minimum": 0,
1360
+ "maximum": 9007199254740991
1361
+ },
1362
+ "sourceProvinceId": {
1363
+ "$ref": "#/$defs/__schema3"
1364
+ },
1365
+ "targetProvinceId": {
1366
+ "$ref": "#/$defs/__schema3"
1367
+ }
1368
+ },
1369
+ "required": [
1370
+ "x",
1371
+ "y",
1372
+ "sourceProvinceId",
1373
+ "targetProvinceId"
1374
+ ],
1375
+ "additionalProperties": false
1376
+ },
1377
+ "__schema5": {
1378
+ "type": "object",
1379
+ "properties": {
1380
+ "x": {
1381
+ "type": "integer",
1382
+ "minimum": 0,
1383
+ "maximum": 9007199254740991
1384
+ },
1385
+ "y": {
1386
+ "type": "integer",
1387
+ "minimum": 0,
1388
+ "maximum": 9007199254740991
1389
+ },
1390
+ "sourceProvinceId": {
1391
+ "$ref": "#/$defs/__schema3"
1392
+ },
1393
+ "targetProvinceId": {
1394
+ "$ref": "#/$defs/__schema3"
1395
+ }
1396
+ },
1397
+ "required": [
1398
+ "x",
1399
+ "y",
1400
+ "sourceProvinceId",
1401
+ "targetProvinceId"
1402
+ ],
1403
+ "additionalProperties": false
1404
+ },
1405
+ "__schema6": {
1406
+ "anyOf": [
1407
+ {
1408
+ "$ref": "#/$defs/__schema3"
1409
+ },
1410
+ {
1411
+ "type": "null"
1412
+ }
1413
+ ]
1414
+ },
1415
+ "__schema7": {
1416
+ "type": "object",
1417
+ "propertyNames": {
1418
+ "type": "string",
1419
+ "minLength": 1
1420
+ },
1421
+ "additionalProperties": {
1422
+ "type": "number",
1423
+ "minimum": 0
1424
+ }
1425
+ },
1426
+ "__schema8": {
1427
+ "type": "string",
1428
+ "minLength": 1
1429
+ },
1430
+ "__schema9": {
1431
+ "type": "string",
1432
+ "minLength": 1
1433
+ },
1434
+ "__schema10": {
1435
+ "type": "object",
1436
+ "properties": {
1437
+ "provinceId": {
1438
+ "$ref": "#/$defs/__schema3"
1439
+ },
1440
+ "value": {
1441
+ "type": "number",
1442
+ "minimum": 0
1443
+ }
1444
+ },
1445
+ "required": [
1446
+ "provinceId",
1447
+ "value"
1448
+ ],
1449
+ "additionalProperties": false
1450
+ },
1451
+ "__schema11": {
1452
+ "oneOf": [
1453
+ {
1454
+ "type": "object",
1455
+ "properties": {
1456
+ "method": {
1457
+ "type": "string",
1458
+ "const": "existing"
1459
+ },
1460
+ "language": {
1461
+ "type": "string",
1462
+ "const": "l_english"
1463
+ }
1464
+ },
1465
+ "required": [
1466
+ "method",
1467
+ "language"
1468
+ ],
1469
+ "additionalProperties": false
1470
+ },
1471
+ {
1472
+ "type": "object",
1473
+ "properties": {
1474
+ "method": {
1475
+ "type": "string",
1476
+ "const": "upsert"
1477
+ },
1478
+ "language": {
1479
+ "type": "string",
1480
+ "const": "l_english"
1481
+ },
1482
+ "value": {
1483
+ "type": "string",
1484
+ "minLength": 1,
1485
+ "maxLength": 100000
1486
+ },
1487
+ "file": {
1488
+ "type": "string",
1489
+ "minLength": 1,
1490
+ "maxLength": 1000
1491
+ }
1492
+ },
1493
+ "required": [
1494
+ "method",
1495
+ "language",
1496
+ "value"
1497
+ ],
1498
+ "additionalProperties": false
1499
+ }
1500
+ ]
1501
+ },
1502
+ "__schema12": {
1503
+ "type": "object",
1504
+ "properties": {
1505
+ "manpower": {
1506
+ "oneOf": [
1507
+ {
1508
+ "type": "object",
1509
+ "properties": {
1510
+ "method": {
1511
+ "type": "string",
1512
+ "const": "retain-in-source"
1513
+ }
1514
+ },
1515
+ "required": [
1516
+ "method"
1517
+ ],
1518
+ "additionalProperties": false
1519
+ },
1520
+ {
1521
+ "type": "object",
1522
+ "properties": {
1523
+ "method": {
1524
+ "type": "string",
1525
+ "const": "proportional-by-land-pixels"
1526
+ }
1527
+ },
1528
+ "required": [
1529
+ "method"
1530
+ ],
1531
+ "additionalProperties": false
1532
+ },
1533
+ {
1534
+ "type": "object",
1535
+ "properties": {
1536
+ "method": {
1537
+ "type": "string",
1538
+ "const": "exact"
1539
+ },
1540
+ "source": {
1541
+ "type": "number",
1542
+ "minimum": 0
1543
+ },
1544
+ "destination": {
1545
+ "type": "number",
1546
+ "minimum": 0
1547
+ }
1548
+ },
1549
+ "required": [
1550
+ "method",
1551
+ "source",
1552
+ "destination"
1553
+ ],
1554
+ "additionalProperties": false
1555
+ }
1556
+ ]
1557
+ },
1558
+ "resources": {
1559
+ "$ref": "#/$defs/__schema13"
1560
+ },
1561
+ "stateBuildings": {
1562
+ "$ref": "#/$defs/__schema13"
1563
+ },
1564
+ "owner": {
1565
+ "$ref": "#/$defs/__schema14"
1566
+ },
1567
+ "controller": {
1568
+ "$ref": "#/$defs/__schema14"
1569
+ },
1570
+ "cores": {
1571
+ "$ref": "#/$defs/__schema15"
1572
+ },
1573
+ "claims": {
1574
+ "$ref": "#/$defs/__schema15"
1575
+ },
1576
+ "victoryPoints": {
1577
+ "type": "string",
1578
+ "const": "follow-province"
1579
+ },
1580
+ "provinceBuildings": {
1581
+ "type": "string",
1582
+ "const": "follow-province"
1583
+ },
1584
+ "ports": {
1585
+ "type": "string",
1586
+ "const": "follow-province"
1587
+ },
1588
+ "supplyNodes": {
1589
+ "type": "string",
1590
+ "const": "follow-province"
1591
+ },
1592
+ "railways": {
1593
+ "type": "string",
1594
+ "const": "follow-province"
1595
+ },
1596
+ "positions": {
1597
+ "type": "string",
1598
+ "const": "follow-province"
1599
+ }
1600
+ },
1601
+ "required": [
1602
+ "manpower",
1603
+ "resources",
1604
+ "stateBuildings",
1605
+ "owner",
1606
+ "controller",
1607
+ "cores",
1608
+ "claims",
1609
+ "victoryPoints",
1610
+ "provinceBuildings",
1611
+ "ports",
1612
+ "supplyNodes",
1613
+ "railways",
1614
+ "positions"
1615
+ ],
1616
+ "additionalProperties": false
1617
+ },
1618
+ "__schema13": {
1619
+ "oneOf": [
1620
+ {
1621
+ "type": "object",
1622
+ "properties": {
1623
+ "method": {
1624
+ "type": "string",
1625
+ "const": "retain-in-source"
1626
+ }
1627
+ },
1628
+ "required": [
1629
+ "method"
1630
+ ],
1631
+ "additionalProperties": false
1632
+ },
1633
+ {
1634
+ "type": "object",
1635
+ "properties": {
1636
+ "method": {
1637
+ "type": "string",
1638
+ "const": "proportional-by-land-pixels"
1639
+ }
1640
+ },
1641
+ "required": [
1642
+ "method"
1643
+ ],
1644
+ "additionalProperties": false
1645
+ },
1646
+ {
1647
+ "type": "object",
1648
+ "properties": {
1649
+ "method": {
1650
+ "type": "string",
1651
+ "const": "exact"
1652
+ },
1653
+ "source": {
1654
+ "$ref": "#/$defs/__schema7"
1655
+ },
1656
+ "destination": {
1657
+ "$ref": "#/$defs/__schema7"
1658
+ }
1659
+ },
1660
+ "required": [
1661
+ "method",
1662
+ "source",
1663
+ "destination"
1664
+ ],
1665
+ "additionalProperties": false
1666
+ }
1667
+ ]
1668
+ },
1669
+ "__schema14": {
1670
+ "oneOf": [
1671
+ {
1672
+ "type": "object",
1673
+ "properties": {
1674
+ "method": {
1675
+ "type": "string",
1676
+ "const": "copy-source"
1677
+ }
1678
+ },
1679
+ "required": [
1680
+ "method"
1681
+ ],
1682
+ "additionalProperties": false
1683
+ },
1684
+ {
1685
+ "type": "object",
1686
+ "properties": {
1687
+ "method": {
1688
+ "type": "string",
1689
+ "const": "exact"
1690
+ },
1691
+ "source": {
1692
+ "anyOf": [
1693
+ {
1694
+ "type": "string",
1695
+ "minLength": 1
1696
+ },
1697
+ {
1698
+ "type": "null"
1699
+ }
1700
+ ]
1701
+ },
1702
+ "destination": {
1703
+ "anyOf": [
1704
+ {
1705
+ "type": "string",
1706
+ "minLength": 1
1707
+ },
1708
+ {
1709
+ "type": "null"
1710
+ }
1711
+ ]
1712
+ }
1713
+ },
1714
+ "required": [
1715
+ "method",
1716
+ "source",
1717
+ "destination"
1718
+ ],
1719
+ "additionalProperties": false
1720
+ }
1721
+ ]
1722
+ },
1723
+ "__schema15": {
1724
+ "oneOf": [
1725
+ {
1726
+ "type": "object",
1727
+ "properties": {
1728
+ "method": {
1729
+ "type": "string",
1730
+ "const": "copy-source"
1731
+ }
1732
+ },
1733
+ "required": [
1734
+ "method"
1735
+ ],
1736
+ "additionalProperties": false
1737
+ },
1738
+ {
1739
+ "type": "object",
1740
+ "properties": {
1741
+ "method": {
1742
+ "type": "string",
1743
+ "const": "exact"
1744
+ },
1745
+ "source": {
1746
+ "maxItems": 10000,
1747
+ "type": "array",
1748
+ "items": {
1749
+ "$ref": "#/$defs/__schema16"
1750
+ }
1751
+ },
1752
+ "destination": {
1753
+ "maxItems": 10000,
1754
+ "type": "array",
1755
+ "items": {
1756
+ "$ref": "#/$defs/__schema17"
1757
+ }
1758
+ }
1759
+ },
1760
+ "required": [
1761
+ "method",
1762
+ "source",
1763
+ "destination"
1764
+ ],
1765
+ "additionalProperties": false
1766
+ }
1767
+ ]
1768
+ },
1769
+ "__schema16": {
1770
+ "type": "string",
1771
+ "minLength": 1
1772
+ },
1773
+ "__schema17": {
1774
+ "type": "string",
1775
+ "minLength": 1
1776
+ },
1777
+ "__schema18": {
1778
+ "oneOf": [
1779
+ {
1780
+ "type": "object",
1781
+ "properties": {
1782
+ "kind": {
1783
+ "type": "string",
1784
+ "const": "pixels"
1785
+ },
1786
+ "pixels": {
1787
+ "minItems": 1,
1788
+ "maxItems": 1000000,
1789
+ "type": "array",
1790
+ "items": {
1791
+ "$ref": "#/$defs/__schema19"
1792
+ },
1793
+ "description": "Exact coordinates to recolor; at most 1000000 pixels per operation"
1794
+ }
1795
+ },
1796
+ "required": [
1797
+ "kind",
1798
+ "pixels"
1799
+ ],
1800
+ "additionalProperties": false
1801
+ },
1802
+ {
1803
+ "type": "object",
1804
+ "properties": {
1805
+ "kind": {
1806
+ "$ref": "#/$defs/__schema20"
1807
+ },
1808
+ "width": {
1809
+ "$ref": "#/$defs/__schema21"
1810
+ },
1811
+ "height": {
1812
+ "$ref": "#/$defs/__schema22"
1813
+ },
1814
+ "origin": {
1815
+ "$ref": "#/$defs/__schema19"
1816
+ },
1817
+ "selectedPixelCount": {
1818
+ "$ref": "#/$defs/__schema23"
1819
+ },
1820
+ "sha256": {
1821
+ "$ref": "#/$defs/__schema24"
1822
+ },
1823
+ "data": {
1824
+ "$ref": "#/$defs/__schema25"
1825
+ }
1826
+ },
1827
+ "required": [
1828
+ "kind",
1829
+ "width",
1830
+ "height",
1831
+ "origin",
1832
+ "selectedPixelCount",
1833
+ "sha256",
1834
+ "data"
1835
+ ],
1836
+ "additionalProperties": false
1837
+ },
1838
+ {
1839
+ "type": "object",
1840
+ "properties": {
1841
+ "kind": {
1842
+ "$ref": "#/$defs/__schema26"
1843
+ },
1844
+ "fillRule": {
1845
+ "$ref": "#/$defs/__schema27"
1846
+ },
1847
+ "points": {
1848
+ "$ref": "#/$defs/__schema28"
1849
+ }
1850
+ },
1851
+ "required": [
1852
+ "kind",
1853
+ "fillRule",
1854
+ "points"
1855
+ ],
1856
+ "additionalProperties": false,
1857
+ "description": "Even-odd polygon rasterization samples pixel centers and is rejected if it selects more than 1000000 pixels"
1858
+ }
1859
+ ]
1860
+ },
1861
+ "__schema19": {
1862
+ "type": "object",
1863
+ "properties": {
1864
+ "x": {
1865
+ "type": "integer",
1866
+ "minimum": 0,
1867
+ "maximum": 9007199254740991
1868
+ },
1869
+ "y": {
1870
+ "type": "integer",
1871
+ "minimum": 0,
1872
+ "maximum": 9007199254740991
1873
+ }
1874
+ },
1875
+ "required": [
1876
+ "x",
1877
+ "y"
1878
+ ],
1879
+ "additionalProperties": false
1880
+ },
1881
+ "__schema20": {
1882
+ "type": "string",
1883
+ "const": "mask"
1884
+ },
1885
+ "__schema21": {
1886
+ "type": "integer",
1887
+ "exclusiveMinimum": 0,
1888
+ "maximum": 16384
1889
+ },
1890
+ "__schema22": {
1891
+ "type": "integer",
1892
+ "exclusiveMinimum": 0,
1893
+ "maximum": 16384
1894
+ },
1895
+ "__schema23": {
1896
+ "type": "integer",
1897
+ "exclusiveMinimum": 0,
1898
+ "maximum": 1000000,
1899
+ "description": "Declared selected cells; at most 1000000 pixels per operation"
1900
+ },
1901
+ "__schema24": {
1902
+ "type": "string",
1903
+ "pattern": "^[a-f0-9]{64}$"
1904
+ },
1905
+ "__schema25": {
1906
+ "type": "string",
1907
+ "minLength": 4,
1908
+ "maxLength": 30000000
1909
+ },
1910
+ "__schema26": {
1911
+ "type": "string",
1912
+ "const": "polygon"
1913
+ },
1914
+ "__schema27": {
1915
+ "type": "string",
1916
+ "const": "even-odd",
1917
+ "description": "Required deterministic polygon fill rule used for pixel-center sampling"
1918
+ },
1919
+ "__schema28": {
1920
+ "minItems": 3,
1921
+ "maxItems": 4096,
1922
+ "type": "array",
1923
+ "items": {
1924
+ "$ref": "#/$defs/__schema19"
1925
+ },
1926
+ "description": "Integer raster-boundary coordinates; runtime bounds are x from 0 through raster width and y from 0 through raster height"
1927
+ },
1928
+ "__schema29": {
1929
+ "oneOf": [
1930
+ {
1931
+ "type": "object",
1932
+ "properties": {
1933
+ "method": {
1934
+ "type": "string",
1935
+ "const": "inherit-source"
1936
+ },
1937
+ "overrides": {
1938
+ "$ref": "#/$defs/__schema30"
1939
+ }
1940
+ },
1941
+ "required": [
1942
+ "method"
1943
+ ],
1944
+ "additionalProperties": false
1945
+ },
1946
+ {
1947
+ "type": "object",
1948
+ "properties": {
1949
+ "method": {
1950
+ "type": "string",
1951
+ "const": "exact"
1952
+ },
1953
+ "value": {
1954
+ "type": "object",
1955
+ "properties": {
1956
+ "color": {
1957
+ "$ref": "#/$defs/__schema31"
1958
+ },
1959
+ "type": {
1960
+ "$ref": "#/$defs/__schema32"
1961
+ },
1962
+ "coastal": {
1963
+ "type": "boolean"
1964
+ },
1965
+ "terrain": {
1966
+ "type": "string",
1967
+ "minLength": 1
1968
+ },
1969
+ "continent": {
1970
+ "type": "integer",
1971
+ "minimum": 0,
1972
+ "maximum": 9007199254740991
1973
+ }
1974
+ },
1975
+ "required": [
1976
+ "type",
1977
+ "coastal",
1978
+ "terrain",
1979
+ "continent"
1980
+ ],
1981
+ "additionalProperties": false
1982
+ }
1983
+ },
1984
+ "required": [
1985
+ "method",
1986
+ "value"
1987
+ ],
1988
+ "additionalProperties": false
1989
+ }
1990
+ ]
1991
+ },
1992
+ "__schema30": {
1993
+ "type": "object",
1994
+ "properties": {
1995
+ "color": {
1996
+ "$ref": "#/$defs/__schema31"
1997
+ },
1998
+ "type": {
1999
+ "$ref": "#/$defs/__schema32"
2000
+ },
2001
+ "coastal": {
2002
+ "type": "boolean"
2003
+ },
2004
+ "terrain": {
2005
+ "type": "string",
2006
+ "minLength": 1
2007
+ },
2008
+ "continent": {
2009
+ "type": "integer",
2010
+ "minimum": 0,
2011
+ "maximum": 9007199254740991
2012
+ }
2013
+ },
2014
+ "additionalProperties": false
2015
+ },
2016
+ "__schema31": {
2017
+ "type": "object",
2018
+ "properties": {
2019
+ "r": {
2020
+ "type": "integer",
2021
+ "minimum": 0,
2022
+ "maximum": 255
2023
+ },
2024
+ "g": {
2025
+ "type": "integer",
2026
+ "minimum": 0,
2027
+ "maximum": 255
2028
+ },
2029
+ "b": {
2030
+ "type": "integer",
2031
+ "minimum": 0,
2032
+ "maximum": 255
2033
+ }
2034
+ },
2035
+ "required": [
2036
+ "r",
2037
+ "g",
2038
+ "b"
2039
+ ],
2040
+ "additionalProperties": false
2041
+ },
2042
+ "__schema32": {
2043
+ "type": "string",
2044
+ "enum": [
2045
+ "land",
2046
+ "sea",
2047
+ "lake"
2048
+ ]
2049
+ },
2050
+ "__schema33": {
2051
+ "type": "object",
2052
+ "properties": {
2053
+ "state": {
2054
+ "type": "string",
2055
+ "enum": [
2056
+ "inherit-source",
2057
+ "none"
2058
+ ]
2059
+ },
2060
+ "strategicRegion": {
2061
+ "type": "string",
2062
+ "const": "inherit-source"
2063
+ },
2064
+ "victoryPoints": {
2065
+ "type": "string",
2066
+ "const": "retain-source"
2067
+ },
2068
+ "provinceBuildings": {
2069
+ "type": "string",
2070
+ "const": "retain-source"
2071
+ },
2072
+ "ports": {
2073
+ "type": "string",
2074
+ "const": "retain-source"
2075
+ },
2076
+ "supplyNodes": {
2077
+ "type": "string",
2078
+ "const": "retain-source"
2079
+ },
2080
+ "railways": {
2081
+ "type": "string",
2082
+ "const": "retain-source"
2083
+ },
2084
+ "adjacencies": {
2085
+ "type": "string",
2086
+ "const": "retain-source"
2087
+ },
2088
+ "positions": {
2089
+ "type": "string",
2090
+ "const": "retain-source"
2091
+ },
2092
+ "entityLocators": {
2093
+ "type": "string",
2094
+ "const": "retain-source"
2095
+ }
2096
+ },
2097
+ "required": [
2098
+ "state",
2099
+ "strategicRegion",
2100
+ "victoryPoints",
2101
+ "provinceBuildings",
2102
+ "ports",
2103
+ "supplyNodes",
2104
+ "railways",
2105
+ "adjacencies",
2106
+ "positions",
2107
+ "entityLocators"
2108
+ ],
2109
+ "additionalProperties": false
2110
+ },
2111
+ "__schema34": {
2112
+ "type": "object",
2113
+ "properties": {
2114
+ "membership": {
2115
+ "type": "string",
2116
+ "const": "require-same"
2117
+ },
2118
+ "victoryPoints": {
2119
+ "type": "string",
2120
+ "const": "sum-into-target"
2121
+ },
2122
+ "provinceBuildings": {
2123
+ "type": "string",
2124
+ "const": "sum-into-target"
2125
+ },
2126
+ "references": {
2127
+ "type": "string",
2128
+ "const": "remap-to-target-and-deduplicate"
2129
+ }
2130
+ },
2131
+ "required": [
2132
+ "membership",
2133
+ "victoryPoints",
2134
+ "provinceBuildings",
2135
+ "references"
2136
+ ],
2137
+ "additionalProperties": false
2138
+ },
2139
+ "__schema35": {
2140
+ "type": "object",
2141
+ "properties": {
2142
+ "stateMembership": {
2143
+ "oneOf": [
2144
+ {
2145
+ "type": "object",
2146
+ "properties": {
2147
+ "method": {
2148
+ "type": "string",
2149
+ "const": "retain"
2150
+ }
2151
+ },
2152
+ "required": [
2153
+ "method"
2154
+ ],
2155
+ "additionalProperties": false
2156
+ },
2157
+ {
2158
+ "type": "object",
2159
+ "properties": {
2160
+ "method": {
2161
+ "type": "string",
2162
+ "const": "remove"
2163
+ },
2164
+ "stateId": {
2165
+ "$ref": "#/$defs/__schema2"
2166
+ }
2167
+ },
2168
+ "required": [
2169
+ "method",
2170
+ "stateId"
2171
+ ],
2172
+ "additionalProperties": false
2173
+ },
2174
+ {
2175
+ "type": "object",
2176
+ "properties": {
2177
+ "method": {
2178
+ "type": "string",
2179
+ "const": "assign"
2180
+ },
2181
+ "stateId": {
2182
+ "$ref": "#/$defs/__schema2"
2183
+ }
2184
+ },
2185
+ "required": [
2186
+ "method",
2187
+ "stateId"
2188
+ ],
2189
+ "additionalProperties": false
2190
+ }
2191
+ ]
2192
+ },
2193
+ "stateValues": {
2194
+ "type": "string",
2195
+ "const": "retain-in-current-states"
2196
+ },
2197
+ "strategicRegion": {
2198
+ "type": "string",
2199
+ "const": "retain-membership"
2200
+ },
2201
+ "victoryPoints": {
2202
+ "type": "string",
2203
+ "enum": [
2204
+ "retain-if-valid",
2205
+ "remove"
2206
+ ]
2207
+ },
2208
+ "provinceBuildings": {
2209
+ "type": "string",
2210
+ "enum": [
2211
+ "retain-if-valid",
2212
+ "remove"
2213
+ ]
2214
+ },
2215
+ "ports": {
2216
+ "type": "string",
2217
+ "enum": [
2218
+ "retain-if-valid",
2219
+ "remove"
2220
+ ]
2221
+ },
2222
+ "supplyNodes": {
2223
+ "type": "string",
2224
+ "enum": [
2225
+ "retain-if-valid",
2226
+ "remove"
2227
+ ]
2228
+ },
2229
+ "railways": {
2230
+ "type": "string",
2231
+ "enum": [
2232
+ "retain-if-valid",
2233
+ "remove-containing"
2234
+ ]
2235
+ },
2236
+ "buildingPositions": {
2237
+ "type": "string",
2238
+ "enum": [
2239
+ "retain-if-valid",
2240
+ "remove"
2241
+ ]
2242
+ },
2243
+ "unitPositions": {
2244
+ "type": "string",
2245
+ "enum": [
2246
+ "retain-if-valid",
2247
+ "remove"
2248
+ ]
2249
+ },
2250
+ "entityLocators": {
2251
+ "type": "string",
2252
+ "const": "retain-at-coordinate"
2253
+ },
2254
+ "adjacencies": {
2255
+ "type": "string",
2256
+ "enum": [
2257
+ "retain-if-valid",
2258
+ "remove-referencing"
2259
+ ]
2260
+ }
2261
+ },
2262
+ "required": [
2263
+ "stateMembership",
2264
+ "stateValues",
2265
+ "strategicRegion",
2266
+ "victoryPoints",
2267
+ "provinceBuildings",
2268
+ "ports",
2269
+ "supplyNodes",
2270
+ "railways",
2271
+ "buildingPositions",
2272
+ "unitPositions",
2273
+ "entityLocators",
2274
+ "adjacencies"
2275
+ ],
2276
+ "additionalProperties": false
2277
+ },
2278
+ "__schema36": {
2279
+ "type": "integer",
2280
+ "minimum": 0,
2281
+ "maximum": 9007199254740991
2282
+ }
2283
+ }
2284
+ }