hoi4-agent-tools 4.3.0 → 4.4.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 (110) hide show
  1. package/CHANGELOG.md +25 -1
  2. package/dist/hoi4_agent_tools/core/bounded-source.js +31 -9
  3. package/dist/hoi4_agent_tools/core/configuration.js +11 -0
  4. package/dist/hoi4_agent_tools/core/operation-context.js +17 -1
  5. package/dist/hoi4_agent_tools/core/temporary-directories.js +7 -2
  6. package/dist/hoi4_agent_tools/core/transaction-limits.js +18 -4
  7. package/dist/hoi4_agent_tools/core/transactions.js +23 -4
  8. package/dist/hoi4_agent_tools/core/workspace-json.js +54 -0
  9. package/dist/hoi4_agent_tools/core/workspace.js +42 -6
  10. package/dist/hoi4_agent_tools/map/appearance-validation.js +1110 -0
  11. package/dist/hoi4_agent_tools/map/bmp.js +9 -1
  12. package/dist/hoi4_agent_tools/map/border-quality-input.js +209 -0
  13. package/dist/hoi4_agent_tools/map/border-quality.js +1180 -0
  14. package/dist/hoi4_agent_tools/map/colormap.js +128 -0
  15. package/dist/hoi4_agent_tools/map/geography/geometry.js +284 -0
  16. package/dist/hoi4_agent_tools/map/geography/index.js +6 -0
  17. package/dist/hoi4_agent_tools/map/geography/model.js +196 -0
  18. package/dist/hoi4_agent_tools/map/geography/preparation.js +120 -0
  19. package/dist/hoi4_agent_tools/map/geography/preview.js +647 -0
  20. package/dist/hoi4_agent_tools/map/geography/raster.js +253 -0
  21. package/dist/hoi4_agent_tools/map/geography/resolve.js +1467 -0
  22. package/dist/hoi4_agent_tools/map/model.js +15 -2
  23. package/dist/hoi4_agent_tools/map/operations.js +111 -8
  24. package/dist/hoi4_agent_tools/map/partition-fields.js +398 -0
  25. package/dist/hoi4_agent_tools/map/partition-geography.js +113 -0
  26. package/dist/hoi4_agent_tools/map/partition-graph.js +165 -0
  27. package/dist/hoi4_agent_tools/map/partition-groups.js +164 -0
  28. package/dist/hoi4_agent_tools/map/partition-provinces.js +727 -0
  29. package/dist/hoi4_agent_tools/map/partition-tuning.js +101 -0
  30. package/dist/hoi4_agent_tools/map/partition-watershed.js +252 -0
  31. package/dist/hoi4_agent_tools/map/partition.js +163 -0
  32. package/dist/hoi4_agent_tools/map/reference-import.js +333 -0
  33. package/dist/hoi4_agent_tools/map/reference-preparation.js +138 -5
  34. package/dist/hoi4_agent_tools/map/reference-sheets.js +231 -0
  35. package/dist/hoi4_agent_tools/map/reference-world.js +104 -13
  36. package/dist/hoi4_agent_tools/map/relief/checks.js +281 -0
  37. package/dist/hoi4_agent_tools/map/relief/fields.js +15 -0
  38. package/dist/hoi4_agent_tools/map/relief/full-resolution.js +133 -0
  39. package/dist/hoi4_agent_tools/map/relief/grid.js +190 -0
  40. package/dist/hoi4_agent_tools/map/relief/hydrology.js +1315 -0
  41. package/dist/hoi4_agent_tools/map/relief/index.js +27 -0
  42. package/dist/hoi4_agent_tools/map/relief/land.js +110 -0
  43. package/dist/hoi4_agent_tools/map/relief/macro-relief.js +535 -0
  44. package/dist/hoi4_agent_tools/map/relief/math.js +93 -0
  45. package/dist/hoi4_agent_tools/map/relief/river-raster.js +680 -0
  46. package/dist/hoi4_agent_tools/map/relief/terrain-synthesis.js +304 -0
  47. package/dist/hoi4_agent_tools/map/render.js +36 -0
  48. package/dist/hoi4_agent_tools/map/service.js +191 -16
  49. package/dist/hoi4_agent_tools/map/tool-operations.js +208 -2
  50. package/dist/hoi4_agent_tools/map/validation.js +9 -0
  51. package/dist/hoi4_agent_tools/map/water.js +227 -0
  52. package/dist/hoi4_agent_tools/map/world-context.js +24 -1
  53. package/dist/hoi4_agent_tools/map/world-edge.js +335 -0
  54. package/dist/hoi4_agent_tools/map/world-noise.js +34 -0
  55. package/dist/hoi4_agent_tools/map/world-partition.js +119 -0
  56. package/dist/hoi4_agent_tools/map/world-provinces.js +131 -56
  57. package/dist/hoi4_agent_tools/map/world.js +462 -124
  58. package/dist/hoi4_agent_tools/mcp/tools/map.js +69 -1
  59. package/dist/hoi4_agent_tools/reference/operations.js +3 -2
  60. package/dist/hoi4_agent_tools/schemas/geography.js +325 -0
  61. package/dist/hoi4_agent_tools/schemas/map-requests.js +20 -2
  62. package/dist/hoi4_agent_tools/schemas/map.js +209 -2
  63. package/dist/hoi4_agent_tools/schemas/reference-sheets.js +92 -0
  64. package/dist/hoi4_agent_tools/version.js +1 -1
  65. package/docs/configuration.md +17 -14
  66. package/docs/map.md +258 -15
  67. package/docs/tools.md +4 -4
  68. package/docs/troubleshooting.md +11 -11
  69. package/npm-shrinkwrap.json +109 -91
  70. package/package.json +3 -3
  71. package/schemas/configuration.schema.json +65 -58
  72. package/schemas/continuous-focus-palette.schema.json +1 -1
  73. package/schemas/custom-weighted-pool.schema.json +1 -1
  74. package/schemas/decision-inspect-input.schema.json +1 -1
  75. package/schemas/error-log-input.schema.json +1 -1
  76. package/schemas/event-feature-manifest.schema.json +1 -1
  77. package/schemas/focus-plan.schema.json +1 -1
  78. package/schemas/focus-planning-sidecar.schema.json +1 -1
  79. package/schemas/geography-model.schema.json +1148 -0
  80. package/schemas/gui-animation-source.schema.json +1 -1
  81. package/schemas/gui-helper.schema.json +5 -11
  82. package/schemas/gui-scenario.schema.json +1 -1
  83. package/schemas/helper-expansion-request.schema.json +1 -1
  84. package/schemas/helper-expansion-summary.schema.json +1 -1
  85. package/schemas/impact-inspect-input.schema.json +1 -1
  86. package/schemas/map-operation.schema.json +2156 -259
  87. package/schemas/mechanic-test-input.schema.json +1 -1
  88. package/schemas/mod-index-input.schema.json +1 -1
  89. package/schemas/operation-result.schema.json +1 -1
  90. package/schemas/package-check-input.schema.json +1 -1
  91. package/schemas/package-manifest.schema.json +1 -1
  92. package/schemas/probability-analysis-result.schema.json +25 -7
  93. package/schemas/probability-compare-input.schema.json +1 -1
  94. package/schemas/probability-evaluate-input.schema.json +1 -1
  95. package/schemas/probability-inspect-input.schema.json +1 -1
  96. package/schemas/probability-render-input.schema.json +1 -1
  97. package/schemas/probability-scenario-set.schema.json +1 -1
  98. package/schemas/probability-sequence-input.schema.json +1 -1
  99. package/schemas/probability-simulate-input.schema.json +1 -1
  100. package/schemas/probability-sweep-input.schema.json +1 -1
  101. package/schemas/reference-context-input.schema.json +1 -1
  102. package/schemas/reference-read-input.schema.json +1 -1
  103. package/schemas/reference-search-input.schema.json +1 -1
  104. package/schemas/reference-sheets.schema.json +267 -0
  105. package/schemas/scenario-suite.schema.json +1 -1
  106. package/schemas/scenario-test-input.schema.json +1 -1
  107. package/schemas/script-validate-input.schema.json +1 -1
  108. package/schemas/shared-scenario.schema.json +1 -1
  109. package/schemas/source-lookup-input.schema.json +1 -1
  110. package/server.json +2 -2
@@ -0,0 +1,1148 @@
1
+ {
2
+ "$id": "https://github.com/klimPaskov/hoi4-agent-tools/blob/v4.4.0/schemas/geography-model.schema.json",
3
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
4
+ "type": "object",
5
+ "properties": {
6
+ "version": {
7
+ "$ref": "#/$defs/__schema0"
8
+ },
9
+ "name": {
10
+ "$ref": "#/$defs/__schema1"
11
+ },
12
+ "description": {
13
+ "$ref": "#/$defs/__schema3"
14
+ },
15
+ "seas": {
16
+ "$ref": "#/$defs/__schema4"
17
+ },
18
+ "lands": {
19
+ "$ref": "#/$defs/__schema17"
20
+ },
21
+ "regions": {
22
+ "$ref": "#/$defs/__schema20"
23
+ },
24
+ "ranges": {
25
+ "$ref": "#/$defs/__schema23"
26
+ },
27
+ "passes": {
28
+ "$ref": "#/$defs/__schema26"
29
+ },
30
+ "volcanoes": {
31
+ "$ref": "#/$defs/__schema28"
32
+ },
33
+ "plateaus": {
34
+ "$ref": "#/$defs/__schema30"
35
+ },
36
+ "rivers": {
37
+ "$ref": "#/$defs/__schema32"
38
+ },
39
+ "lakes": {
40
+ "$ref": "#/$defs/__schema34"
41
+ },
42
+ "biomes": {
43
+ "$ref": "#/$defs/__schema36"
44
+ },
45
+ "straits": {
46
+ "$ref": "#/$defs/__schema38"
47
+ },
48
+ "sites": {
49
+ "$ref": "#/$defs/__schema41"
50
+ },
51
+ "roads": {
52
+ "$ref": "#/$defs/__schema43"
53
+ },
54
+ "places": {
55
+ "$ref": "#/$defs/__schema45"
56
+ },
57
+ "climate": {
58
+ "$ref": "#/$defs/__schema47"
59
+ }
60
+ },
61
+ "required": [
62
+ "version"
63
+ ],
64
+ "additionalProperties": false,
65
+ "description": "Geography model version 1. Normalized 0..1 coordinates over the whole world frame, origin top-left; lengths are fractions of the map width.",
66
+ "$defs": {
67
+ "__schema0": {
68
+ "type": "number",
69
+ "const": 1
70
+ },
71
+ "__schema1": {
72
+ "$ref": "#/$defs/__schema2"
73
+ },
74
+ "__schema2": {
75
+ "type": "string",
76
+ "minLength": 1,
77
+ "maxLength": 64,
78
+ "pattern": "^[^\\u0000-\\u001f\\u007f]+$"
79
+ },
80
+ "__schema3": {
81
+ "type": "string",
82
+ "maxLength": 2000
83
+ },
84
+ "__schema4": {
85
+ "maxItems": 4000,
86
+ "type": "array",
87
+ "items": {
88
+ "$ref": "#/$defs/__schema5"
89
+ }
90
+ },
91
+ "__schema5": {
92
+ "type": "object",
93
+ "properties": {
94
+ "id": {
95
+ "$ref": "#/$defs/__schema6"
96
+ },
97
+ "name": {
98
+ "$ref": "#/$defs/__schema7"
99
+ },
100
+ "tags": {
101
+ "$ref": "#/$defs/__schema8"
102
+ },
103
+ "note": {
104
+ "$ref": "#/$defs/__schema10"
105
+ },
106
+ "polygons": {
107
+ "$ref": "#/$defs/__schema11"
108
+ },
109
+ "holes": {
110
+ "$ref": "#/$defs/__schema15"
111
+ },
112
+ "depthClass": {
113
+ "$ref": "#/$defs/__schema16"
114
+ },
115
+ "ice": {
116
+ "$ref": "#/$defs/__schema14"
117
+ },
118
+ "kind": {
119
+ "type": "string",
120
+ "enum": [
121
+ "ocean",
122
+ "sea",
123
+ "gulf",
124
+ "fjord"
125
+ ]
126
+ }
127
+ },
128
+ "required": [
129
+ "id",
130
+ "polygons"
131
+ ],
132
+ "additionalProperties": false
133
+ },
134
+ "__schema6": {
135
+ "type": "string",
136
+ "pattern": "^[A-Za-z][A-Za-z0-9_.-]{0,63}$"
137
+ },
138
+ "__schema7": {
139
+ "$ref": "#/$defs/__schema2"
140
+ },
141
+ "__schema8": {
142
+ "maxItems": 16,
143
+ "type": "array",
144
+ "items": {
145
+ "$ref": "#/$defs/__schema9"
146
+ }
147
+ },
148
+ "__schema9": {
149
+ "type": "string",
150
+ "minLength": 1,
151
+ "maxLength": 48
152
+ },
153
+ "__schema10": {
154
+ "type": "string",
155
+ "maxLength": 2000
156
+ },
157
+ "__schema11": {
158
+ "minItems": 1,
159
+ "maxItems": 64,
160
+ "type": "array",
161
+ "items": {
162
+ "$ref": "#/$defs/__schema12"
163
+ }
164
+ },
165
+ "__schema12": {
166
+ "minItems": 3,
167
+ "maxItems": 2000,
168
+ "type": "array",
169
+ "items": {
170
+ "$ref": "#/$defs/__schema13"
171
+ }
172
+ },
173
+ "__schema13": {
174
+ "anyOf": [
175
+ {
176
+ "type": "object",
177
+ "properties": {
178
+ "x": {
179
+ "$ref": "#/$defs/__schema14"
180
+ },
181
+ "y": {
182
+ "$ref": "#/$defs/__schema14"
183
+ }
184
+ },
185
+ "required": [
186
+ "x",
187
+ "y"
188
+ ],
189
+ "additionalProperties": false
190
+ },
191
+ {
192
+ "type": "array",
193
+ "prefixItems": [
194
+ {
195
+ "$ref": "#/$defs/__schema14"
196
+ },
197
+ {
198
+ "$ref": "#/$defs/__schema14"
199
+ }
200
+ ],
201
+ "items": false,
202
+ "minItems": 2,
203
+ "maxItems": 2
204
+ }
205
+ ]
206
+ },
207
+ "__schema14": {
208
+ "type": "number",
209
+ "minimum": 0,
210
+ "maximum": 1
211
+ },
212
+ "__schema15": {
213
+ "maxItems": 64,
214
+ "type": "array",
215
+ "items": {
216
+ "$ref": "#/$defs/__schema12"
217
+ }
218
+ },
219
+ "__schema16": {
220
+ "type": "string",
221
+ "enum": [
222
+ "shelf",
223
+ "open",
224
+ "abyss"
225
+ ]
226
+ },
227
+ "__schema17": {
228
+ "maxItems": 4000,
229
+ "type": "array",
230
+ "items": {
231
+ "$ref": "#/$defs/__schema18"
232
+ }
233
+ },
234
+ "__schema18": {
235
+ "type": "object",
236
+ "properties": {
237
+ "id": {
238
+ "$ref": "#/$defs/__schema6"
239
+ },
240
+ "name": {
241
+ "$ref": "#/$defs/__schema7"
242
+ },
243
+ "tags": {
244
+ "$ref": "#/$defs/__schema8"
245
+ },
246
+ "note": {
247
+ "$ref": "#/$defs/__schema10"
248
+ },
249
+ "polygons": {
250
+ "$ref": "#/$defs/__schema11"
251
+ },
252
+ "holes": {
253
+ "$ref": "#/$defs/__schema15"
254
+ },
255
+ "kind": {
256
+ "type": "string",
257
+ "enum": [
258
+ "continent",
259
+ "island",
260
+ "archipelago",
261
+ "peninsula"
262
+ ]
263
+ },
264
+ "region": {
265
+ "$ref": "#/$defs/__schema6"
266
+ },
267
+ "biome": {
268
+ "$ref": "#/$defs/__schema19"
269
+ },
270
+ "fertility": {
271
+ "$ref": "#/$defs/__schema14"
272
+ },
273
+ "elevationBase": {
274
+ "$ref": "#/$defs/__schema14"
275
+ },
276
+ "coastDetail": {
277
+ "$ref": "#/$defs/__schema14"
278
+ }
279
+ },
280
+ "required": [
281
+ "id",
282
+ "polygons"
283
+ ],
284
+ "additionalProperties": false
285
+ },
286
+ "__schema19": {
287
+ "type": "string",
288
+ "enum": [
289
+ "forest",
290
+ "desert",
291
+ "marsh",
292
+ "ice",
293
+ "plains",
294
+ "farmland",
295
+ "jungle",
296
+ "steppe",
297
+ "tundra",
298
+ "hills"
299
+ ]
300
+ },
301
+ "__schema20": {
302
+ "maxItems": 4000,
303
+ "type": "array",
304
+ "items": {
305
+ "$ref": "#/$defs/__schema21"
306
+ }
307
+ },
308
+ "__schema21": {
309
+ "type": "object",
310
+ "properties": {
311
+ "id": {
312
+ "$ref": "#/$defs/__schema6"
313
+ },
314
+ "name": {
315
+ "$ref": "#/$defs/__schema7"
316
+ },
317
+ "tags": {
318
+ "$ref": "#/$defs/__schema8"
319
+ },
320
+ "note": {
321
+ "$ref": "#/$defs/__schema10"
322
+ },
323
+ "polygons": {
324
+ "$ref": "#/$defs/__schema11"
325
+ },
326
+ "holes": {
327
+ "$ref": "#/$defs/__schema15"
328
+ },
329
+ "terrain": {
330
+ "type": "object",
331
+ "properties": {
332
+ "plains": {
333
+ "$ref": "#/$defs/__schema14"
334
+ },
335
+ "forest": {
336
+ "$ref": "#/$defs/__schema14"
337
+ },
338
+ "hills": {
339
+ "$ref": "#/$defs/__schema14"
340
+ },
341
+ "mountain": {
342
+ "$ref": "#/$defs/__schema14"
343
+ },
344
+ "desert": {
345
+ "$ref": "#/$defs/__schema14"
346
+ },
347
+ "marsh": {
348
+ "$ref": "#/$defs/__schema14"
349
+ },
350
+ "jungle": {
351
+ "$ref": "#/$defs/__schema14"
352
+ },
353
+ "urban": {
354
+ "$ref": "#/$defs/__schema14"
355
+ },
356
+ "snow": {
357
+ "$ref": "#/$defs/__schema14"
358
+ }
359
+ },
360
+ "additionalProperties": false
361
+ },
362
+ "density": {
363
+ "type": "object",
364
+ "properties": {
365
+ "provincesPerState": {
366
+ "type": "array",
367
+ "prefixItems": [
368
+ {
369
+ "$ref": "#/$defs/__schema22"
370
+ },
371
+ {
372
+ "$ref": "#/$defs/__schema22"
373
+ },
374
+ {
375
+ "$ref": "#/$defs/__schema22"
376
+ }
377
+ ],
378
+ "items": false,
379
+ "minItems": 3,
380
+ "maxItems": 3
381
+ },
382
+ "provinceAreaPx": {
383
+ "type": "integer",
384
+ "minimum": 20,
385
+ "maximum": 50000
386
+ }
387
+ },
388
+ "additionalProperties": false
389
+ }
390
+ },
391
+ "required": [
392
+ "id"
393
+ ],
394
+ "additionalProperties": false
395
+ },
396
+ "__schema22": {
397
+ "type": "integer",
398
+ "minimum": 1,
399
+ "maximum": 64
400
+ },
401
+ "__schema23": {
402
+ "maxItems": 4000,
403
+ "type": "array",
404
+ "items": {
405
+ "$ref": "#/$defs/__schema24"
406
+ }
407
+ },
408
+ "__schema24": {
409
+ "type": "object",
410
+ "properties": {
411
+ "id": {
412
+ "$ref": "#/$defs/__schema6"
413
+ },
414
+ "name": {
415
+ "$ref": "#/$defs/__schema7"
416
+ },
417
+ "tags": {
418
+ "$ref": "#/$defs/__schema8"
419
+ },
420
+ "note": {
421
+ "$ref": "#/$defs/__schema10"
422
+ },
423
+ "path": {
424
+ "minItems": 2,
425
+ "maxItems": 2000,
426
+ "type": "array",
427
+ "items": {
428
+ "$ref": "#/$defs/__schema25"
429
+ }
430
+ },
431
+ "closed": {
432
+ "type": "boolean"
433
+ },
434
+ "halfWidth": {
435
+ "type": "number",
436
+ "exclusiveMinimum": 0,
437
+ "maximum": 0.25
438
+ },
439
+ "peak": {
440
+ "$ref": "#/$defs/__schema14"
441
+ },
442
+ "profile": {
443
+ "type": "string",
444
+ "enum": [
445
+ "ridge",
446
+ "massif",
447
+ "escarpment",
448
+ "wall"
449
+ ]
450
+ },
451
+ "asymmetry": {
452
+ "type": "number",
453
+ "minimum": -1,
454
+ "maximum": 1
455
+ },
456
+ "snowline": {
457
+ "$ref": "#/$defs/__schema14"
458
+ },
459
+ "spurs": {
460
+ "$ref": "#/$defs/__schema14"
461
+ },
462
+ "barrier": {
463
+ "type": "string",
464
+ "enum": [
465
+ "none",
466
+ "impassable",
467
+ "fort-line"
468
+ ]
469
+ }
470
+ },
471
+ "required": [
472
+ "id",
473
+ "path"
474
+ ],
475
+ "additionalProperties": false
476
+ },
477
+ "__schema25": {
478
+ "anyOf": [
479
+ {
480
+ "type": "object",
481
+ "properties": {
482
+ "x": {
483
+ "$ref": "#/$defs/__schema14"
484
+ },
485
+ "y": {
486
+ "$ref": "#/$defs/__schema14"
487
+ },
488
+ "halfWidth": {
489
+ "type": "number",
490
+ "exclusiveMinimum": 0,
491
+ "maximum": 0.25
492
+ },
493
+ "peak": {
494
+ "$ref": "#/$defs/__schema14"
495
+ }
496
+ },
497
+ "required": [
498
+ "x",
499
+ "y"
500
+ ],
501
+ "additionalProperties": false
502
+ },
503
+ {
504
+ "type": "array",
505
+ "prefixItems": [
506
+ {
507
+ "$ref": "#/$defs/__schema14"
508
+ },
509
+ {
510
+ "$ref": "#/$defs/__schema14"
511
+ }
512
+ ],
513
+ "items": false,
514
+ "minItems": 2,
515
+ "maxItems": 2
516
+ }
517
+ ]
518
+ },
519
+ "__schema26": {
520
+ "maxItems": 4000,
521
+ "type": "array",
522
+ "items": {
523
+ "$ref": "#/$defs/__schema27"
524
+ }
525
+ },
526
+ "__schema27": {
527
+ "type": "object",
528
+ "properties": {
529
+ "id": {
530
+ "$ref": "#/$defs/__schema6"
531
+ },
532
+ "name": {
533
+ "$ref": "#/$defs/__schema7"
534
+ },
535
+ "tags": {
536
+ "$ref": "#/$defs/__schema8"
537
+ },
538
+ "note": {
539
+ "$ref": "#/$defs/__schema10"
540
+ },
541
+ "range": {
542
+ "$ref": "#/$defs/__schema6"
543
+ },
544
+ "at": {
545
+ "$ref": "#/$defs/__schema14"
546
+ },
547
+ "position": {
548
+ "$ref": "#/$defs/__schema13"
549
+ },
550
+ "width": {
551
+ "type": "number",
552
+ "exclusiveMinimum": 0,
553
+ "maximum": 0.1
554
+ },
555
+ "depth": {
556
+ "$ref": "#/$defs/__schema14"
557
+ },
558
+ "fort": {
559
+ "type": "integer",
560
+ "minimum": 0,
561
+ "maximum": 5
562
+ }
563
+ },
564
+ "required": [
565
+ "id"
566
+ ],
567
+ "additionalProperties": false
568
+ },
569
+ "__schema28": {
570
+ "maxItems": 4000,
571
+ "type": "array",
572
+ "items": {
573
+ "$ref": "#/$defs/__schema29"
574
+ }
575
+ },
576
+ "__schema29": {
577
+ "type": "object",
578
+ "properties": {
579
+ "id": {
580
+ "$ref": "#/$defs/__schema6"
581
+ },
582
+ "name": {
583
+ "$ref": "#/$defs/__schema7"
584
+ },
585
+ "tags": {
586
+ "$ref": "#/$defs/__schema8"
587
+ },
588
+ "note": {
589
+ "$ref": "#/$defs/__schema10"
590
+ },
591
+ "at": {
592
+ "$ref": "#/$defs/__schema13"
593
+ },
594
+ "radius": {
595
+ "type": "number",
596
+ "exclusiveMinimum": 0,
597
+ "maximum": 0.25
598
+ },
599
+ "peak": {
600
+ "$ref": "#/$defs/__schema14"
601
+ },
602
+ "crater": {
603
+ "type": "number",
604
+ "exclusiveMinimum": 0,
605
+ "maximum": 0.25
606
+ },
607
+ "active": {
608
+ "type": "boolean"
609
+ }
610
+ },
611
+ "required": [
612
+ "id",
613
+ "at"
614
+ ],
615
+ "additionalProperties": false
616
+ },
617
+ "__schema30": {
618
+ "maxItems": 4000,
619
+ "type": "array",
620
+ "items": {
621
+ "$ref": "#/$defs/__schema31"
622
+ }
623
+ },
624
+ "__schema31": {
625
+ "type": "object",
626
+ "properties": {
627
+ "id": {
628
+ "$ref": "#/$defs/__schema6"
629
+ },
630
+ "name": {
631
+ "$ref": "#/$defs/__schema7"
632
+ },
633
+ "tags": {
634
+ "$ref": "#/$defs/__schema8"
635
+ },
636
+ "note": {
637
+ "$ref": "#/$defs/__schema10"
638
+ },
639
+ "polygons": {
640
+ "$ref": "#/$defs/__schema11"
641
+ },
642
+ "holes": {
643
+ "$ref": "#/$defs/__schema15"
644
+ },
645
+ "height": {
646
+ "$ref": "#/$defs/__schema14"
647
+ },
648
+ "edge": {
649
+ "type": "string",
650
+ "enum": [
651
+ "cliff",
652
+ "ramp"
653
+ ]
654
+ }
655
+ },
656
+ "required": [
657
+ "id",
658
+ "polygons",
659
+ "height"
660
+ ],
661
+ "additionalProperties": false
662
+ },
663
+ "__schema32": {
664
+ "maxItems": 4000,
665
+ "type": "array",
666
+ "items": {
667
+ "$ref": "#/$defs/__schema33"
668
+ }
669
+ },
670
+ "__schema33": {
671
+ "type": "object",
672
+ "properties": {
673
+ "id": {
674
+ "$ref": "#/$defs/__schema6"
675
+ },
676
+ "name": {
677
+ "$ref": "#/$defs/__schema7"
678
+ },
679
+ "tags": {
680
+ "$ref": "#/$defs/__schema8"
681
+ },
682
+ "note": {
683
+ "$ref": "#/$defs/__schema10"
684
+ },
685
+ "source": {
686
+ "anyOf": [
687
+ {
688
+ "$ref": "#/$defs/__schema13"
689
+ },
690
+ {
691
+ "type": "object",
692
+ "properties": {
693
+ "lake": {
694
+ "$ref": "#/$defs/__schema6"
695
+ }
696
+ },
697
+ "required": [
698
+ "lake"
699
+ ],
700
+ "additionalProperties": false
701
+ }
702
+ ]
703
+ },
704
+ "mouth": {
705
+ "anyOf": [
706
+ {
707
+ "$ref": "#/$defs/__schema13"
708
+ },
709
+ {
710
+ "type": "object",
711
+ "properties": {
712
+ "sea": {
713
+ "$ref": "#/$defs/__schema6"
714
+ }
715
+ },
716
+ "required": [
717
+ "sea"
718
+ ],
719
+ "additionalProperties": false
720
+ },
721
+ {
722
+ "type": "object",
723
+ "properties": {
724
+ "lake": {
725
+ "$ref": "#/$defs/__schema6"
726
+ }
727
+ },
728
+ "required": [
729
+ "lake"
730
+ ],
731
+ "additionalProperties": false
732
+ },
733
+ {
734
+ "type": "object",
735
+ "properties": {
736
+ "river": {
737
+ "$ref": "#/$defs/__schema6"
738
+ }
739
+ },
740
+ "required": [
741
+ "river"
742
+ ],
743
+ "additionalProperties": false
744
+ }
745
+ ]
746
+ },
747
+ "via": {
748
+ "maxItems": 512,
749
+ "type": "array",
750
+ "items": {
751
+ "$ref": "#/$defs/__schema13"
752
+ }
753
+ },
754
+ "size": {
755
+ "type": "integer",
756
+ "minimum": 1,
757
+ "maximum": 5
758
+ },
759
+ "delta": {
760
+ "type": "boolean"
761
+ }
762
+ },
763
+ "required": [
764
+ "id",
765
+ "source",
766
+ "mouth"
767
+ ],
768
+ "additionalProperties": false
769
+ },
770
+ "__schema34": {
771
+ "maxItems": 4000,
772
+ "type": "array",
773
+ "items": {
774
+ "$ref": "#/$defs/__schema35"
775
+ }
776
+ },
777
+ "__schema35": {
778
+ "type": "object",
779
+ "properties": {
780
+ "id": {
781
+ "$ref": "#/$defs/__schema6"
782
+ },
783
+ "name": {
784
+ "$ref": "#/$defs/__schema7"
785
+ },
786
+ "tags": {
787
+ "$ref": "#/$defs/__schema8"
788
+ },
789
+ "note": {
790
+ "$ref": "#/$defs/__schema10"
791
+ },
792
+ "polygons": {
793
+ "$ref": "#/$defs/__schema11"
794
+ },
795
+ "holes": {
796
+ "$ref": "#/$defs/__schema15"
797
+ },
798
+ "center": {
799
+ "$ref": "#/$defs/__schema13"
800
+ },
801
+ "radius": {
802
+ "type": "number",
803
+ "exclusiveMinimum": 0,
804
+ "maximum": 0.25
805
+ },
806
+ "depthClass": {
807
+ "$ref": "#/$defs/__schema16"
808
+ },
809
+ "outflow": {
810
+ "$ref": "#/$defs/__schema6"
811
+ },
812
+ "gameplay": {
813
+ "type": "string",
814
+ "enum": [
815
+ "lake",
816
+ "inland-sea"
817
+ ]
818
+ }
819
+ },
820
+ "required": [
821
+ "id"
822
+ ],
823
+ "additionalProperties": false
824
+ },
825
+ "__schema36": {
826
+ "maxItems": 4000,
827
+ "type": "array",
828
+ "items": {
829
+ "$ref": "#/$defs/__schema37"
830
+ }
831
+ },
832
+ "__schema37": {
833
+ "type": "object",
834
+ "properties": {
835
+ "id": {
836
+ "$ref": "#/$defs/__schema6"
837
+ },
838
+ "name": {
839
+ "$ref": "#/$defs/__schema7"
840
+ },
841
+ "tags": {
842
+ "$ref": "#/$defs/__schema8"
843
+ },
844
+ "note": {
845
+ "$ref": "#/$defs/__schema10"
846
+ },
847
+ "polygons": {
848
+ "$ref": "#/$defs/__schema11"
849
+ },
850
+ "holes": {
851
+ "$ref": "#/$defs/__schema15"
852
+ },
853
+ "kind": {
854
+ "$ref": "#/$defs/__schema19"
855
+ },
856
+ "density": {
857
+ "$ref": "#/$defs/__schema14"
858
+ },
859
+ "fertility": {
860
+ "$ref": "#/$defs/__schema14"
861
+ },
862
+ "z": {
863
+ "type": "integer",
864
+ "minimum": -1000,
865
+ "maximum": 1000
866
+ }
867
+ },
868
+ "required": [
869
+ "id",
870
+ "polygons",
871
+ "kind"
872
+ ],
873
+ "additionalProperties": false
874
+ },
875
+ "__schema38": {
876
+ "maxItems": 4000,
877
+ "type": "array",
878
+ "items": {
879
+ "$ref": "#/$defs/__schema39"
880
+ }
881
+ },
882
+ "__schema39": {
883
+ "type": "object",
884
+ "properties": {
885
+ "id": {
886
+ "$ref": "#/$defs/__schema6"
887
+ },
888
+ "name": {
889
+ "$ref": "#/$defs/__schema7"
890
+ },
891
+ "tags": {
892
+ "$ref": "#/$defs/__schema8"
893
+ },
894
+ "note": {
895
+ "$ref": "#/$defs/__schema10"
896
+ },
897
+ "between": {
898
+ "type": "array",
899
+ "prefixItems": [
900
+ {
901
+ "$ref": "#/$defs/__schema40"
902
+ },
903
+ {
904
+ "$ref": "#/$defs/__schema40"
905
+ }
906
+ ],
907
+ "items": false,
908
+ "minItems": 2,
909
+ "maxItems": 2
910
+ },
911
+ "path": {
912
+ "minItems": 2,
913
+ "maxItems": 64,
914
+ "type": "array",
915
+ "items": {
916
+ "$ref": "#/$defs/__schema13"
917
+ }
918
+ },
919
+ "rule": {
920
+ "type": "string",
921
+ "enum": [
922
+ "open",
923
+ "army-closed",
924
+ "navy-closed"
925
+ ]
926
+ },
927
+ "width": {
928
+ "type": "number",
929
+ "exclusiveMinimum": 0,
930
+ "maximum": 0.1
931
+ }
932
+ },
933
+ "required": [
934
+ "id"
935
+ ],
936
+ "additionalProperties": false
937
+ },
938
+ "__schema40": {
939
+ "anyOf": [
940
+ {
941
+ "$ref": "#/$defs/__schema13"
942
+ },
943
+ {
944
+ "type": "object",
945
+ "properties": {
946
+ "land": {
947
+ "$ref": "#/$defs/__schema6"
948
+ }
949
+ },
950
+ "required": [
951
+ "land"
952
+ ],
953
+ "additionalProperties": false
954
+ }
955
+ ]
956
+ },
957
+ "__schema41": {
958
+ "maxItems": 4000,
959
+ "type": "array",
960
+ "items": {
961
+ "$ref": "#/$defs/__schema42"
962
+ }
963
+ },
964
+ "__schema42": {
965
+ "type": "object",
966
+ "properties": {
967
+ "id": {
968
+ "$ref": "#/$defs/__schema6"
969
+ },
970
+ "name": {
971
+ "$ref": "#/$defs/__schema7"
972
+ },
973
+ "tags": {
974
+ "$ref": "#/$defs/__schema8"
975
+ },
976
+ "note": {
977
+ "$ref": "#/$defs/__schema10"
978
+ },
979
+ "kind": {
980
+ "type": "string",
981
+ "enum": [
982
+ "capital",
983
+ "city",
984
+ "fortress",
985
+ "port",
986
+ "ruin",
987
+ "temple",
988
+ "mine",
989
+ "landmark"
990
+ ]
991
+ },
992
+ "at": {
993
+ "$ref": "#/$defs/__schema13"
994
+ },
995
+ "importance": {
996
+ "type": "integer",
997
+ "minimum": 1,
998
+ "maximum": 5
999
+ },
1000
+ "country": {
1001
+ "type": "string",
1002
+ "pattern": "^[A-Z][A-Z0-9]{2}$"
1003
+ },
1004
+ "onWater": {
1005
+ "type": "boolean"
1006
+ },
1007
+ "lake": {
1008
+ "$ref": "#/$defs/__schema6"
1009
+ }
1010
+ },
1011
+ "required": [
1012
+ "id",
1013
+ "kind",
1014
+ "at"
1015
+ ],
1016
+ "additionalProperties": false
1017
+ },
1018
+ "__schema43": {
1019
+ "maxItems": 4000,
1020
+ "type": "array",
1021
+ "items": {
1022
+ "$ref": "#/$defs/__schema44"
1023
+ }
1024
+ },
1025
+ "__schema44": {
1026
+ "type": "object",
1027
+ "properties": {
1028
+ "id": {
1029
+ "$ref": "#/$defs/__schema6"
1030
+ },
1031
+ "name": {
1032
+ "$ref": "#/$defs/__schema7"
1033
+ },
1034
+ "tags": {
1035
+ "$ref": "#/$defs/__schema8"
1036
+ },
1037
+ "note": {
1038
+ "$ref": "#/$defs/__schema10"
1039
+ },
1040
+ "path": {
1041
+ "minItems": 2,
1042
+ "maxItems": 2000,
1043
+ "type": "array",
1044
+ "items": {
1045
+ "$ref": "#/$defs/__schema13"
1046
+ }
1047
+ },
1048
+ "importance": {
1049
+ "type": "integer",
1050
+ "minimum": 1,
1051
+ "maximum": 3
1052
+ }
1053
+ },
1054
+ "required": [
1055
+ "id",
1056
+ "path"
1057
+ ],
1058
+ "additionalProperties": false
1059
+ },
1060
+ "__schema45": {
1061
+ "maxItems": 4000,
1062
+ "type": "array",
1063
+ "items": {
1064
+ "$ref": "#/$defs/__schema46"
1065
+ }
1066
+ },
1067
+ "__schema46": {
1068
+ "type": "object",
1069
+ "properties": {
1070
+ "id": {
1071
+ "$ref": "#/$defs/__schema6"
1072
+ },
1073
+ "name": {
1074
+ "$ref": "#/$defs/__schema7"
1075
+ },
1076
+ "tags": {
1077
+ "$ref": "#/$defs/__schema8"
1078
+ },
1079
+ "note": {
1080
+ "$ref": "#/$defs/__schema10"
1081
+ },
1082
+ "kind": {
1083
+ "type": "string",
1084
+ "enum": [
1085
+ "cape",
1086
+ "bay",
1087
+ "gulf",
1088
+ "peninsula",
1089
+ "reef",
1090
+ "landmark",
1091
+ "other"
1092
+ ]
1093
+ },
1094
+ "at": {
1095
+ "$ref": "#/$defs/__schema13"
1096
+ }
1097
+ },
1098
+ "required": [
1099
+ "id",
1100
+ "kind",
1101
+ "at"
1102
+ ],
1103
+ "additionalProperties": false
1104
+ },
1105
+ "__schema47": {
1106
+ "type": "object",
1107
+ "properties": {
1108
+ "windFrom": {
1109
+ "type": "number",
1110
+ "minimum": 0,
1111
+ "exclusiveMaximum": 360
1112
+ },
1113
+ "temperature": {
1114
+ "type": "object",
1115
+ "properties": {
1116
+ "warm": {
1117
+ "type": "number",
1118
+ "minimum": -60,
1119
+ "maximum": 60
1120
+ },
1121
+ "cold": {
1122
+ "type": "number",
1123
+ "minimum": -90,
1124
+ "maximum": 40
1125
+ }
1126
+ },
1127
+ "required": [
1128
+ "warm",
1129
+ "cold"
1130
+ ],
1131
+ "additionalProperties": false
1132
+ },
1133
+ "warmBandY": {
1134
+ "$ref": "#/$defs/__schema14"
1135
+ },
1136
+ "rainScale": {
1137
+ "type": "number",
1138
+ "minimum": 0.1,
1139
+ "maximum": 4
1140
+ },
1141
+ "seasonality": {
1142
+ "$ref": "#/$defs/__schema14"
1143
+ }
1144
+ },
1145
+ "additionalProperties": false
1146
+ }
1147
+ }
1148
+ }