@bitmagic/world-forger 0.1.1 → 0.1.2

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.
@@ -0,0 +1,1908 @@
1
+ // GENERATED by scripts/generate-world-schema.mjs from game/src/types/game.ts — do not edit.
2
+ // Regenerate with: pnpm --filter @bitmagic/world-forger run generate:world-schema
3
+ export const gameDataSchema = {
4
+ "$schema": "http://json-schema.org/draft-07/schema#",
5
+ "$ref": "#/definitions/GameData",
6
+ "definitions": {
7
+ "GameData": {
8
+ "type": "object",
9
+ "properties": {
10
+ "gameId": {
11
+ "type": "string"
12
+ },
13
+ "gameGenre": {
14
+ "type": "string"
15
+ },
16
+ "characterUrl": {
17
+ "type": "string"
18
+ },
19
+ "gameName": {
20
+ "type": "string"
21
+ },
22
+ "gameDescription": {
23
+ "type": "string"
24
+ },
25
+ "thumbnailUrl": {
26
+ "type": "string"
27
+ },
28
+ "environmentObjectsGeneratedProcedurally": {
29
+ "type": "boolean"
30
+ },
31
+ "gameDimension": {
32
+ "type": "string",
33
+ "enum": [
34
+ "2d",
35
+ "3d"
36
+ ]
37
+ },
38
+ "physicsMode": {
39
+ "type": "string",
40
+ "enum": [
41
+ "2d",
42
+ "3d"
43
+ ]
44
+ },
45
+ "worldProfileData": {
46
+ "$ref": "#/definitions/WorldProfileData"
47
+ },
48
+ "assets": {
49
+ "type": "array",
50
+ "items": {
51
+ "$ref": "#/definitions/Asset"
52
+ }
53
+ },
54
+ "environmentObjects": {
55
+ "type": "array",
56
+ "items": {}
57
+ },
58
+ "mechanisms": {
59
+ "type": "array",
60
+ "items": {
61
+ "type": "object",
62
+ "additionalProperties": {}
63
+ }
64
+ }
65
+ }
66
+ },
67
+ "WorldProfileData": {
68
+ "type": "object",
69
+ "properties": {
70
+ "skyboxUrl": {
71
+ "type": "string"
72
+ },
73
+ "thumbnailUrlOverride": {
74
+ "type": "string"
75
+ },
76
+ "descriptionOverride": {
77
+ "type": "string"
78
+ },
79
+ "heightmapUrl": {
80
+ "type": "string"
81
+ },
82
+ "characterHeight": {
83
+ "type": "number"
84
+ },
85
+ "playerSpawnPosition": {
86
+ "$ref": "#/definitions/Vector3Like"
87
+ },
88
+ "playerSpawnRotationY": {
89
+ "type": "number"
90
+ },
91
+ "spawnPoints": {
92
+ "type": "array",
93
+ "items": {
94
+ "$ref": "#/definitions/SpawnPoint"
95
+ }
96
+ },
97
+ "worldSeed": {
98
+ "type": "number"
99
+ },
100
+ "useHighResCharacter": {
101
+ "type": "boolean"
102
+ },
103
+ "useBlockCharacter": {
104
+ "type": "boolean"
105
+ },
106
+ "characterUrl": {
107
+ "type": "string"
108
+ },
109
+ "characterModelRotationY": {
110
+ "type": "number"
111
+ },
112
+ "characterPoseVersion": {
113
+ "type": "number"
114
+ },
115
+ "playerMovement": {
116
+ "type": "object",
117
+ "properties": {
118
+ "mode": {
119
+ "type": "string",
120
+ "const": "ski"
121
+ },
122
+ "ski": {
123
+ "type": "object",
124
+ "additionalProperties": {
125
+ "type": [
126
+ "number",
127
+ "boolean"
128
+ ]
129
+ }
130
+ }
131
+ },
132
+ "required": [
133
+ "mode"
134
+ ]
135
+ },
136
+ "persistentWorld": {
137
+ "type": "boolean"
138
+ },
139
+ "bloomConfig": {
140
+ "$ref": "#/definitions/BloomConfig"
141
+ },
142
+ "renderConfig": {
143
+ "$ref": "#/definitions/RenderConfig"
144
+ },
145
+ "fogConfig": {
146
+ "$ref": "#/definitions/FogConfig"
147
+ },
148
+ "lightingConfig": {
149
+ "$ref": "#/definitions/LightingConfig"
150
+ },
151
+ "dofConfig": {
152
+ "$ref": "#/definitions/DofConfig"
153
+ },
154
+ "aoConfig": {
155
+ "$ref": "#/definitions/AoConfig"
156
+ },
157
+ "groundCoverConfig": {
158
+ "$ref": "#/definitions/GroundCoverConfig"
159
+ },
160
+ "weatherConfig": {
161
+ "$ref": "#/definitions/WeatherConfig"
162
+ },
163
+ "animations": {
164
+ "type": "array",
165
+ "items": {
166
+ "$ref": "#/definitions/AnimationDefinition"
167
+ }
168
+ },
169
+ "baseAnimations": {
170
+ "type": "array",
171
+ "items": {
172
+ "$ref": "#/definitions/BaseAnimationDefinition"
173
+ }
174
+ },
175
+ "meleeWeaponAnimations": {
176
+ "type": "array",
177
+ "items": {
178
+ "$ref": "#/definitions/BaseAnimationDefinition"
179
+ }
180
+ },
181
+ "combat": {
182
+ "$ref": "#/definitions/CombatConfig"
183
+ },
184
+ "groundRenderingType": {
185
+ "type": "string",
186
+ "enum": [
187
+ "smooth",
188
+ "polygonal"
189
+ ]
190
+ },
191
+ "groundPolygonSize": {
192
+ "type": "number"
193
+ },
194
+ "groundWorldSizeX": {
195
+ "type": "number"
196
+ },
197
+ "groundWorldSizeZ": {
198
+ "type": "number"
199
+ },
200
+ "groundYGranularity": {
201
+ "type": "number"
202
+ },
203
+ "terrain": {
204
+ "type": "object",
205
+ "properties": {
206
+ "shape": {
207
+ "type": "string",
208
+ "enum": [
209
+ "flat",
210
+ "default"
211
+ ]
212
+ },
213
+ "groundBlockType": {
214
+ "type": "string"
215
+ }
216
+ }
217
+ },
218
+ "groundConfig": {
219
+ "type": "object",
220
+ "properties": {
221
+ "surfaceBlockType": {
222
+ "type": "string"
223
+ },
224
+ "subLayers": {
225
+ "type": "array",
226
+ "items": {
227
+ "type": "string"
228
+ }
229
+ }
230
+ }
231
+ },
232
+ "customBlockTypes": {
233
+ "type": "array",
234
+ "items": {
235
+ "$ref": "#/definitions/CustomBlockType"
236
+ }
237
+ },
238
+ "hotspots": {
239
+ "type": "array",
240
+ "items": {
241
+ "$ref": "#/definitions/Hotspot"
242
+ }
243
+ },
244
+ "voxelBlockSize": {
245
+ "type": "number"
246
+ },
247
+ "renderDistance": {
248
+ "type": "number"
249
+ },
250
+ "vegetationRenderDistance": {
251
+ "type": "number"
252
+ },
253
+ "cameraMode": {
254
+ "$ref": "#/definitions/CameraMode"
255
+ },
256
+ "topDownFitWorld": {
257
+ "type": "boolean"
258
+ },
259
+ "topDownFitWorldMargin": {
260
+ "type": "number"
261
+ },
262
+ "topDownFitWorldRegion": {
263
+ "$ref": "#/definitions/FitWorldRegion"
264
+ },
265
+ "topDownFitWorldBackground": {
266
+ "type": "string"
267
+ },
268
+ "hasPlayerCharacter": {
269
+ "type": "boolean"
270
+ },
271
+ "useFreeMouse": {
272
+ "type": "boolean"
273
+ },
274
+ "mobileOrientation": {
275
+ "type": "string",
276
+ "enum": [
277
+ "portrait",
278
+ "landscape"
279
+ ]
280
+ },
281
+ "environmentObjectsGeneratedProcedurally": {
282
+ "type": "boolean"
283
+ },
284
+ "markers": {
285
+ "type": "array",
286
+ "items": {
287
+ "type": "object",
288
+ "properties": {
289
+ "id": {
290
+ "type": "string"
291
+ },
292
+ "name": {
293
+ "type": "string"
294
+ },
295
+ "color": {
296
+ "type": "string"
297
+ },
298
+ "position": {
299
+ "type": "object",
300
+ "properties": {
301
+ "x": {
302
+ "type": "number"
303
+ },
304
+ "y": {
305
+ "type": "number"
306
+ },
307
+ "z": {
308
+ "type": "number"
309
+ }
310
+ },
311
+ "required": [
312
+ "x",
313
+ "y",
314
+ "z"
315
+ ]
316
+ },
317
+ "rotation": {
318
+ "type": "object",
319
+ "properties": {
320
+ "x": {
321
+ "type": "number"
322
+ },
323
+ "y": {
324
+ "type": "number"
325
+ },
326
+ "z": {
327
+ "type": "number"
328
+ }
329
+ },
330
+ "required": [
331
+ "x",
332
+ "y",
333
+ "z"
334
+ ]
335
+ }
336
+ },
337
+ "required": [
338
+ "id",
339
+ "name",
340
+ "color",
341
+ "position",
342
+ "rotation"
343
+ ]
344
+ }
345
+ },
346
+ "voxelUrl": {
347
+ "type": "string"
348
+ },
349
+ "voxelTimestamp": {
350
+ "type": "number"
351
+ },
352
+ "levels": {
353
+ "type": "array",
354
+ "items": {
355
+ "$ref": "#/definitions/WorldLevel"
356
+ }
357
+ },
358
+ "startLevelId": {
359
+ "type": "string"
360
+ },
361
+ "floorMeshUrl": {
362
+ "type": "string"
363
+ },
364
+ "colliderUrl": {
365
+ "type": "string"
366
+ },
367
+ "walkableUrl": {
368
+ "type": "string"
369
+ },
370
+ "walkableFileSize": {
371
+ "type": "number"
372
+ },
373
+ "pvsUrl": {
374
+ "type": "string"
375
+ },
376
+ "pvsFileSize": {
377
+ "type": "number"
378
+ },
379
+ "cameraPathUrl": {
380
+ "type": "string"
381
+ },
382
+ "waterLevelY": {
383
+ "type": "number"
384
+ },
385
+ "hud": {
386
+ "type": "object",
387
+ "properties": {
388
+ "theme": {
389
+ "anyOf": [
390
+ {
391
+ "type": "string"
392
+ },
393
+ {
394
+ "type": "object",
395
+ "additionalProperties": {}
396
+ }
397
+ ]
398
+ },
399
+ "startScreen": {
400
+ "type": "object",
401
+ "properties": {
402
+ "imageUrl": {
403
+ "type": "string"
404
+ },
405
+ "title": {
406
+ "type": "string"
407
+ },
408
+ "playLabel": {
409
+ "type": "string"
410
+ },
411
+ "hideTitle": {
412
+ "type": "boolean"
413
+ },
414
+ "cardPlacement": {
415
+ "type": "string",
416
+ "enum": [
417
+ "center",
418
+ "start",
419
+ "end"
420
+ ]
421
+ }
422
+ }
423
+ }
424
+ }
425
+ },
426
+ "decalSystem": {
427
+ "type": "object",
428
+ "properties": {
429
+ "maxDecals": {
430
+ "type": "number"
431
+ },
432
+ "decalSize": {
433
+ "type": "number"
434
+ },
435
+ "defaultColor": {
436
+ "type": "number"
437
+ },
438
+ "enabled": {
439
+ "type": "boolean"
440
+ }
441
+ }
442
+ },
443
+ "characterConfig": {
444
+ "$ref": "#/definitions/CharacterConfig"
445
+ },
446
+ "combatConfig": {
447
+ "$ref": "#/definitions/DeathCombatConfig"
448
+ },
449
+ "runtimeAI": {
450
+ "$ref": "#/definitions/RuntimeAIConfig"
451
+ },
452
+ "networkSendRate": {
453
+ "type": "number"
454
+ },
455
+ "mapAssetId": {
456
+ "type": "string"
457
+ },
458
+ "unitAssets": {
459
+ "type": "object",
460
+ "additionalProperties": {
461
+ "type": "string"
462
+ }
463
+ },
464
+ "achievements": {
465
+ "type": "array",
466
+ "items": {
467
+ "$ref": "#/definitions/AchievementDefinition"
468
+ }
469
+ },
470
+ "doors": {
471
+ "type": "array",
472
+ "items": {
473
+ "$ref": "#/definitions/DoorDefinition"
474
+ }
475
+ },
476
+ "keyItems": {
477
+ "type": "array",
478
+ "items": {
479
+ "$ref": "#/definitions/KeyItemDefinition"
480
+ }
481
+ }
482
+ }
483
+ },
484
+ "Vector3Like": {
485
+ "type": "object",
486
+ "properties": {
487
+ "x": {
488
+ "type": "number"
489
+ },
490
+ "y": {
491
+ "type": "number"
492
+ },
493
+ "z": {
494
+ "type": "number"
495
+ }
496
+ },
497
+ "required": [
498
+ "x",
499
+ "y",
500
+ "z"
501
+ ]
502
+ },
503
+ "SpawnPoint": {
504
+ "type": "object",
505
+ "properties": {
506
+ "id": {
507
+ "type": "string"
508
+ },
509
+ "type": {
510
+ "type": "string"
511
+ },
512
+ "position": {
513
+ "$ref": "#/definitions/Vector3Like"
514
+ },
515
+ "rotationY": {
516
+ "type": "number"
517
+ },
518
+ "name": {
519
+ "type": "string"
520
+ },
521
+ "params": {
522
+ "type": "object",
523
+ "additionalProperties": {}
524
+ }
525
+ },
526
+ "required": [
527
+ "id",
528
+ "type",
529
+ "position",
530
+ "rotationY"
531
+ ]
532
+ },
533
+ "BloomConfig": {
534
+ "type": "object",
535
+ "properties": {
536
+ "enabled": {
537
+ "type": "boolean"
538
+ },
539
+ "strength": {
540
+ "type": "number"
541
+ },
542
+ "radius": {
543
+ "type": "number"
544
+ },
545
+ "threshold": {
546
+ "type": "number"
547
+ }
548
+ },
549
+ "required": [
550
+ "enabled"
551
+ ]
552
+ },
553
+ "RenderConfig": {
554
+ "type": "object",
555
+ "properties": {
556
+ "toneMapping": {
557
+ "$ref": "#/definitions/ToneMappingMode"
558
+ },
559
+ "exposure": {
560
+ "type": "number"
561
+ },
562
+ "shadowDistance": {
563
+ "type": "number"
564
+ },
565
+ "vehicleFinish": {
566
+ "$ref": "#/definitions/VehicleFinishMode"
567
+ }
568
+ }
569
+ },
570
+ "ToneMappingMode": {
571
+ "type": "string",
572
+ "enum": [
573
+ "aces",
574
+ "neutral",
575
+ "reinhard",
576
+ "linear",
577
+ "cineon"
578
+ ]
579
+ },
580
+ "VehicleFinishMode": {
581
+ "type": "string",
582
+ "enum": [
583
+ "flat",
584
+ "paint"
585
+ ]
586
+ },
587
+ "FogConfig": {
588
+ "type": "object",
589
+ "properties": {
590
+ "enabled": {
591
+ "type": "boolean"
592
+ },
593
+ "color": {
594
+ "type": "string"
595
+ },
596
+ "near": {
597
+ "type": "number"
598
+ },
599
+ "far": {
600
+ "type": "number"
601
+ }
602
+ }
603
+ },
604
+ "LightingConfig": {
605
+ "type": "object",
606
+ "properties": {
607
+ "sunIntensity": {
608
+ "type": "number"
609
+ },
610
+ "sunColor": {
611
+ "type": "string"
612
+ },
613
+ "environmentIntensity": {
614
+ "type": "number"
615
+ },
616
+ "skyboxIntensity": {
617
+ "type": "number"
618
+ },
619
+ "ambientFloor": {
620
+ "type": "number"
621
+ }
622
+ }
623
+ },
624
+ "DofConfig": {
625
+ "type": "object",
626
+ "properties": {
627
+ "enabled": {
628
+ "type": "boolean"
629
+ },
630
+ "focus": {
631
+ "type": "number"
632
+ },
633
+ "aperture": {
634
+ "type": "number"
635
+ },
636
+ "maxblur": {
637
+ "type": "number"
638
+ }
639
+ }
640
+ },
641
+ "AoConfig": {
642
+ "type": "object",
643
+ "properties": {
644
+ "enabled": {
645
+ "type": "boolean"
646
+ },
647
+ "intensity": {
648
+ "type": "number"
649
+ },
650
+ "radius": {
651
+ "type": "number"
652
+ },
653
+ "scale": {
654
+ "type": "number"
655
+ }
656
+ }
657
+ },
658
+ "GroundCoverConfig": {
659
+ "type": "object",
660
+ "properties": {
661
+ "density": {
662
+ "type": "number"
663
+ },
664
+ "scale": {
665
+ "type": "number"
666
+ },
667
+ "distance": {
668
+ "type": "number"
669
+ }
670
+ }
671
+ },
672
+ "WeatherConfig": {
673
+ "type": "object",
674
+ "properties": {
675
+ "precipitation": {
676
+ "type": "string",
677
+ "enum": [
678
+ "none",
679
+ "rain"
680
+ ]
681
+ },
682
+ "intensity": {
683
+ "type": "number"
684
+ },
685
+ "wind": {
686
+ "type": "object",
687
+ "properties": {
688
+ "x": {
689
+ "type": "number"
690
+ },
691
+ "z": {
692
+ "type": "number"
693
+ }
694
+ },
695
+ "required": [
696
+ "x",
697
+ "z"
698
+ ]
699
+ },
700
+ "wetness": {
701
+ "type": "number"
702
+ },
703
+ "puddles": {
704
+ "type": "number"
705
+ },
706
+ "reflections": {
707
+ "type": "string",
708
+ "enum": [
709
+ "ssr",
710
+ "env"
711
+ ]
712
+ },
713
+ "reflectionStrength": {
714
+ "type": "number"
715
+ },
716
+ "reflectionHighlight": {
717
+ "type": "number"
718
+ },
719
+ "reflectionStreak": {
720
+ "type": "number"
721
+ },
722
+ "reflectionDistance": {
723
+ "type": "number"
724
+ },
725
+ "filmGloss": {
726
+ "type": "number"
727
+ },
728
+ "surfaceDarkening": {
729
+ "type": "number"
730
+ },
731
+ "envSheen": {
732
+ "type": "number"
733
+ },
734
+ "rippleStrength": {
735
+ "type": "number"
736
+ },
737
+ "spray": {
738
+ "type": "boolean"
739
+ },
740
+ "trailStrength": {
741
+ "type": "number"
742
+ }
743
+ }
744
+ },
745
+ "AnimationDefinition": {
746
+ "type": "object",
747
+ "properties": {
748
+ "animationUrl": {
749
+ "type": "string"
750
+ },
751
+ "motionId": {
752
+ "type": "string"
753
+ },
754
+ "prompt": {
755
+ "type": "string"
756
+ }
757
+ },
758
+ "required": [
759
+ "animationUrl",
760
+ "motionId"
761
+ ]
762
+ },
763
+ "BaseAnimationDefinition": {
764
+ "type": "object",
765
+ "properties": {
766
+ "animationUrl": {
767
+ "type": "string"
768
+ },
769
+ "motionId": {
770
+ "type": "string"
771
+ },
772
+ "name": {
773
+ "type": "string"
774
+ },
775
+ "worksWithAttachedObjects": {
776
+ "type": "boolean"
777
+ },
778
+ "source": {
779
+ "type": "string",
780
+ "const": "mixamo"
781
+ },
782
+ "designSpeed": {
783
+ "type": "number"
784
+ }
785
+ },
786
+ "required": [
787
+ "animationUrl",
788
+ "motionId",
789
+ "name"
790
+ ]
791
+ },
792
+ "CombatConfig": {
793
+ "type": "object",
794
+ "properties": {
795
+ "customMoves": {
796
+ "type": "array",
797
+ "items": {
798
+ "$ref": "#/definitions/CustomAttackMove"
799
+ }
800
+ },
801
+ "useOnlyCustomMoves": {
802
+ "type": "boolean"
803
+ }
804
+ }
805
+ },
806
+ "CustomAttackMove": {
807
+ "type": "object",
808
+ "properties": {
809
+ "name": {
810
+ "type": "string"
811
+ },
812
+ "animationMotionId": {
813
+ "type": "string"
814
+ },
815
+ "type": {
816
+ "type": "string",
817
+ "enum": [
818
+ "punch",
819
+ "kick",
820
+ "attack"
821
+ ]
822
+ },
823
+ "side": {
824
+ "type": "string",
825
+ "enum": [
826
+ "left",
827
+ "right"
828
+ ]
829
+ },
830
+ "damage": {
831
+ "type": "number"
832
+ },
833
+ "range": {
834
+ "type": "number"
835
+ },
836
+ "force": {
837
+ "type": "number"
838
+ },
839
+ "speed": {
840
+ "type": "number"
841
+ },
842
+ "interruptOnMovement": {
843
+ "type": "boolean"
844
+ },
845
+ "splitBodyOnRun": {
846
+ "type": "boolean"
847
+ },
848
+ "filterRootMotion": {
849
+ "type": "boolean"
850
+ }
851
+ },
852
+ "required": [
853
+ "name",
854
+ "animationMotionId",
855
+ "type"
856
+ ]
857
+ },
858
+ "CustomBlockType": {
859
+ "type": "object",
860
+ "properties": {
861
+ "name": {
862
+ "type": "string"
863
+ },
864
+ "displayName": {
865
+ "type": "string"
866
+ },
867
+ "description": {
868
+ "type": "string"
869
+ },
870
+ "textureUrl": {
871
+ "type": "string"
872
+ },
873
+ "sideTextureUrl": {
874
+ "type": [
875
+ "string",
876
+ "null"
877
+ ]
878
+ },
879
+ "textureSize": {
880
+ "type": "number"
881
+ },
882
+ "isFluid": {
883
+ "type": "boolean"
884
+ },
885
+ "opacity": {
886
+ "type": "number"
887
+ },
888
+ "createdAt": {
889
+ "type": "string"
890
+ }
891
+ },
892
+ "required": [
893
+ "name",
894
+ "textureUrl",
895
+ "textureSize"
896
+ ]
897
+ },
898
+ "Hotspot": {
899
+ "anyOf": [
900
+ {
901
+ "$ref": "#/definitions/VillageHotspot"
902
+ },
903
+ {
904
+ "$ref": "#/definitions/TowerHotspot"
905
+ },
906
+ {
907
+ "$ref": "#/definitions/BuildingHotspot"
908
+ }
909
+ ]
910
+ },
911
+ "VillageHotspot": {
912
+ "type": "object",
913
+ "properties": {
914
+ "id": {
915
+ "type": "string"
916
+ },
917
+ "type": {
918
+ "type": "string",
919
+ "const": "village"
920
+ },
921
+ "center": {
922
+ "type": "object",
923
+ "properties": {
924
+ "x": {
925
+ "type": "number"
926
+ },
927
+ "z": {
928
+ "type": "number"
929
+ }
930
+ },
931
+ "required": [
932
+ "x",
933
+ "z"
934
+ ]
935
+ },
936
+ "radius": {
937
+ "type": "number"
938
+ },
939
+ "buildingAssetIds": {
940
+ "type": "array",
941
+ "items": {
942
+ "type": "string"
943
+ }
944
+ },
945
+ "density": {
946
+ "type": "number"
947
+ },
948
+ "foundationBlockType": {
949
+ "type": "string"
950
+ }
951
+ },
952
+ "required": [
953
+ "id",
954
+ "type",
955
+ "center",
956
+ "radius",
957
+ "buildingAssetIds"
958
+ ]
959
+ },
960
+ "TowerHotspot": {
961
+ "type": "object",
962
+ "properties": {
963
+ "id": {
964
+ "type": "string"
965
+ },
966
+ "type": {
967
+ "type": "string",
968
+ "const": "tower"
969
+ },
970
+ "center": {
971
+ "type": "object",
972
+ "properties": {
973
+ "x": {
974
+ "type": "number"
975
+ },
976
+ "z": {
977
+ "type": "number"
978
+ }
979
+ },
980
+ "required": [
981
+ "x",
982
+ "z"
983
+ ]
984
+ },
985
+ "assetId": {
986
+ "type": "string"
987
+ },
988
+ "foundationBlockType": {
989
+ "type": "string"
990
+ }
991
+ },
992
+ "required": [
993
+ "id",
994
+ "type",
995
+ "center",
996
+ "assetId"
997
+ ]
998
+ },
999
+ "BuildingHotspot": {
1000
+ "type": "object",
1001
+ "properties": {
1002
+ "id": {
1003
+ "type": "string"
1004
+ },
1005
+ "type": {
1006
+ "type": "string",
1007
+ "const": "building"
1008
+ },
1009
+ "center": {
1010
+ "type": "object",
1011
+ "properties": {
1012
+ "x": {
1013
+ "type": "number"
1014
+ },
1015
+ "z": {
1016
+ "type": "number"
1017
+ }
1018
+ },
1019
+ "required": [
1020
+ "x",
1021
+ "z"
1022
+ ]
1023
+ },
1024
+ "size": {
1025
+ "type": "object",
1026
+ "properties": {
1027
+ "x": {
1028
+ "type": "number"
1029
+ },
1030
+ "z": {
1031
+ "type": "number"
1032
+ }
1033
+ },
1034
+ "required": [
1035
+ "x",
1036
+ "z"
1037
+ ]
1038
+ },
1039
+ "wallHeight": {
1040
+ "type": "number"
1041
+ },
1042
+ "wallBlockType": {
1043
+ "type": "string"
1044
+ },
1045
+ "roof": {
1046
+ "type": "string",
1047
+ "enum": [
1048
+ "flat",
1049
+ "none"
1050
+ ]
1051
+ },
1052
+ "roofBlockType": {
1053
+ "type": "string"
1054
+ },
1055
+ "foundationBlockType": {
1056
+ "type": "string"
1057
+ },
1058
+ "doors": {
1059
+ "type": "array",
1060
+ "items": {
1061
+ "$ref": "#/definitions/BuildingOpening"
1062
+ }
1063
+ },
1064
+ "windows": {
1065
+ "type": "array",
1066
+ "items": {
1067
+ "type": "object",
1068
+ "properties": {
1069
+ "sillY": {
1070
+ "type": "number"
1071
+ },
1072
+ "side": {
1073
+ "type": "string",
1074
+ "enum": [
1075
+ "north",
1076
+ "south",
1077
+ "east",
1078
+ "west"
1079
+ ]
1080
+ },
1081
+ "offset": {
1082
+ "type": "number"
1083
+ },
1084
+ "width": {
1085
+ "type": "number"
1086
+ },
1087
+ "height": {
1088
+ "type": "number"
1089
+ }
1090
+ },
1091
+ "required": [
1092
+ "side"
1093
+ ]
1094
+ }
1095
+ }
1096
+ },
1097
+ "required": [
1098
+ "id",
1099
+ "type",
1100
+ "center",
1101
+ "size"
1102
+ ]
1103
+ },
1104
+ "BuildingOpening": {
1105
+ "type": "object",
1106
+ "properties": {
1107
+ "side": {
1108
+ "type": "string",
1109
+ "enum": [
1110
+ "north",
1111
+ "south",
1112
+ "east",
1113
+ "west"
1114
+ ]
1115
+ },
1116
+ "offset": {
1117
+ "type": "number"
1118
+ },
1119
+ "width": {
1120
+ "type": "number"
1121
+ },
1122
+ "height": {
1123
+ "type": "number"
1124
+ }
1125
+ },
1126
+ "required": [
1127
+ "side"
1128
+ ]
1129
+ },
1130
+ "CameraMode": {
1131
+ "type": "string",
1132
+ "enum": [
1133
+ "first-person",
1134
+ "third-person",
1135
+ "top-down"
1136
+ ]
1137
+ },
1138
+ "FitWorldRegion": {
1139
+ "type": "object",
1140
+ "properties": {
1141
+ "left": {
1142
+ "$ref": "#/definitions/FitWorldInset"
1143
+ },
1144
+ "right": {
1145
+ "$ref": "#/definitions/FitWorldInset"
1146
+ },
1147
+ "top": {
1148
+ "$ref": "#/definitions/FitWorldInset"
1149
+ },
1150
+ "bottom": {
1151
+ "$ref": "#/definitions/FitWorldInset"
1152
+ }
1153
+ }
1154
+ },
1155
+ "FitWorldInset": {
1156
+ "type": "object",
1157
+ "properties": {
1158
+ "px": {
1159
+ "type": "number"
1160
+ },
1161
+ "fraction": {
1162
+ "type": "number"
1163
+ }
1164
+ }
1165
+ },
1166
+ "WorldLevel": {
1167
+ "type": "object",
1168
+ "properties": {
1169
+ "id": {
1170
+ "type": "string"
1171
+ },
1172
+ "name": {
1173
+ "type": "string"
1174
+ },
1175
+ "vwldAssetId": {
1176
+ "type": "string"
1177
+ },
1178
+ "spawnPoints": {
1179
+ "type": "array",
1180
+ "items": {
1181
+ "$ref": "#/definitions/SpawnPoint"
1182
+ }
1183
+ },
1184
+ "overrides": {
1185
+ "$ref": "#/definitions/WorldLevelOverrides"
1186
+ }
1187
+ },
1188
+ "required": [
1189
+ "id",
1190
+ "name",
1191
+ "vwldAssetId"
1192
+ ]
1193
+ },
1194
+ "WorldLevelOverrides": {
1195
+ "type": "object",
1196
+ "properties": {
1197
+ "skyboxUrl": {
1198
+ "type": "string"
1199
+ },
1200
+ "fogConfig": {
1201
+ "$ref": "#/definitions/FogConfig"
1202
+ },
1203
+ "lightingConfig": {
1204
+ "$ref": "#/definitions/LightingConfig"
1205
+ },
1206
+ "waterLevelY": {
1207
+ "type": "number"
1208
+ },
1209
+ "weatherConfig": {
1210
+ "$ref": "#/definitions/WeatherConfig"
1211
+ }
1212
+ }
1213
+ },
1214
+ "CharacterConfig": {
1215
+ "type": "object",
1216
+ "properties": {
1217
+ "height": {
1218
+ "type": "number"
1219
+ },
1220
+ "runSpeed": {
1221
+ "type": "number"
1222
+ }
1223
+ }
1224
+ },
1225
+ "DeathCombatConfig": {
1226
+ "type": "object",
1227
+ "properties": {
1228
+ "ragdollOnDeath": {
1229
+ "type": "boolean"
1230
+ },
1231
+ "ragdollJointLimits": {
1232
+ "type": "boolean"
1233
+ },
1234
+ "ragdollSelfCollision": {
1235
+ "type": "boolean"
1236
+ }
1237
+ }
1238
+ },
1239
+ "RuntimeAIConfig": {
1240
+ "type": "object",
1241
+ "properties": {
1242
+ "defaultSystemPrompt": {
1243
+ "type": "string"
1244
+ },
1245
+ "defaultTemperature": {
1246
+ "type": "number"
1247
+ },
1248
+ "defaultMaxTokens": {
1249
+ "type": "number"
1250
+ },
1251
+ "timeoutMs": {
1252
+ "type": "number"
1253
+ },
1254
+ "think": {
1255
+ "type": "boolean"
1256
+ },
1257
+ "stream": {
1258
+ "type": "boolean"
1259
+ }
1260
+ }
1261
+ },
1262
+ "AchievementDefinition": {
1263
+ "type": "object",
1264
+ "properties": {
1265
+ "achievementId": {
1266
+ "type": "string"
1267
+ },
1268
+ "name": {
1269
+ "type": "string"
1270
+ },
1271
+ "description": {
1272
+ "type": "string"
1273
+ },
1274
+ "imageUrl": {
1275
+ "type": [
1276
+ "string",
1277
+ "null"
1278
+ ]
1279
+ },
1280
+ "xp": {
1281
+ "type": "number"
1282
+ },
1283
+ "hidden": {
1284
+ "type": "boolean"
1285
+ }
1286
+ },
1287
+ "required": [
1288
+ "achievementId",
1289
+ "name"
1290
+ ]
1291
+ },
1292
+ "DoorDefinition": {
1293
+ "type": "object",
1294
+ "properties": {
1295
+ "id": {
1296
+ "type": "string"
1297
+ },
1298
+ "levelId": {
1299
+ "type": "string"
1300
+ },
1301
+ "position": {
1302
+ "$ref": "#/definitions/Vector3Like"
1303
+ },
1304
+ "rotationY": {
1305
+ "type": "number"
1306
+ },
1307
+ "width": {
1308
+ "type": "number"
1309
+ },
1310
+ "height": {
1311
+ "type": "number"
1312
+ },
1313
+ "thickness": {
1314
+ "type": "number"
1315
+ },
1316
+ "kind": {
1317
+ "type": "string",
1318
+ "enum": [
1319
+ "plain",
1320
+ "locked"
1321
+ ]
1322
+ },
1323
+ "keyId": {
1324
+ "type": "string"
1325
+ },
1326
+ "animation": {
1327
+ "type": "string",
1328
+ "enum": [
1329
+ "hinge",
1330
+ "slide",
1331
+ "dissolve"
1332
+ ]
1333
+ },
1334
+ "maxOpenAngleDeg": {
1335
+ "type": "number"
1336
+ },
1337
+ "assetId": {
1338
+ "type": "string"
1339
+ },
1340
+ "color": {
1341
+ "type": "string"
1342
+ },
1343
+ "autoOpenRadius": {
1344
+ "type": "number"
1345
+ }
1346
+ },
1347
+ "required": [
1348
+ "id",
1349
+ "position",
1350
+ "rotationY",
1351
+ "width",
1352
+ "height",
1353
+ "thickness",
1354
+ "kind",
1355
+ "animation"
1356
+ ]
1357
+ },
1358
+ "KeyItemDefinition": {
1359
+ "type": "object",
1360
+ "properties": {
1361
+ "id": {
1362
+ "type": "string"
1363
+ },
1364
+ "keyId": {
1365
+ "type": "string"
1366
+ },
1367
+ "levelId": {
1368
+ "type": "string"
1369
+ },
1370
+ "name": {
1371
+ "type": "string"
1372
+ },
1373
+ "position": {
1374
+ "$ref": "#/definitions/Vector3Like"
1375
+ },
1376
+ "assetId": {
1377
+ "type": "string"
1378
+ },
1379
+ "color": {
1380
+ "type": "string"
1381
+ }
1382
+ },
1383
+ "required": [
1384
+ "id",
1385
+ "keyId",
1386
+ "name",
1387
+ "position"
1388
+ ]
1389
+ },
1390
+ "Asset": {
1391
+ "type": "object",
1392
+ "properties": {
1393
+ "id": {
1394
+ "type": "string"
1395
+ },
1396
+ "name": {
1397
+ "type": "string"
1398
+ },
1399
+ "url": {
1400
+ "type": "string"
1401
+ },
1402
+ "type": {
1403
+ "type": "string"
1404
+ },
1405
+ "screenshotUrl": {
1406
+ "type": "string"
1407
+ },
1408
+ "size": {
1409
+ "type": "number"
1410
+ },
1411
+ "voxelSize": {
1412
+ "type": "number"
1413
+ },
1414
+ "opacityThreshold": {
1415
+ "type": "number"
1416
+ },
1417
+ "voxelizeMode": {
1418
+ "type": "string",
1419
+ "enum": [
1420
+ "center",
1421
+ "coverage"
1422
+ ]
1423
+ },
1424
+ "voxelizeSettings": {
1425
+ "type": "object",
1426
+ "properties": {
1427
+ "roundedEdges": {
1428
+ "type": "boolean"
1429
+ }
1430
+ }
1431
+ },
1432
+ "shadowCatcher": {
1433
+ "type": "boolean"
1434
+ },
1435
+ "shadowCatcherYOffset": {
1436
+ "type": "number"
1437
+ },
1438
+ "boundingBoxInMeters": {
1439
+ "type": "boolean"
1440
+ },
1441
+ "flattenTerrain": {
1442
+ "type": "boolean"
1443
+ },
1444
+ "flattenMargin": {
1445
+ "type": "number"
1446
+ },
1447
+ "collision": {
1448
+ "type": "boolean"
1449
+ },
1450
+ "colliderShape": {
1451
+ "type": "string",
1452
+ "enum": [
1453
+ "box",
1454
+ "sphere"
1455
+ ]
1456
+ },
1457
+ "light": {
1458
+ "$ref": "#/definitions/AssetLightEmitter"
1459
+ },
1460
+ "boundingBox": {
1461
+ "type": "object",
1462
+ "properties": {
1463
+ "minX": {
1464
+ "type": "number"
1465
+ },
1466
+ "minY": {
1467
+ "type": "number"
1468
+ },
1469
+ "minZ": {
1470
+ "type": "number"
1471
+ },
1472
+ "maxX": {
1473
+ "type": "number"
1474
+ },
1475
+ "maxY": {
1476
+ "type": "number"
1477
+ },
1478
+ "maxZ": {
1479
+ "type": "number"
1480
+ }
1481
+ },
1482
+ "required": [
1483
+ "minX",
1484
+ "minY",
1485
+ "minZ",
1486
+ "maxX",
1487
+ "maxY",
1488
+ "maxZ"
1489
+ ]
1490
+ },
1491
+ "voxelCount": {
1492
+ "type": "number"
1493
+ },
1494
+ "fitBox": {
1495
+ "type": "object",
1496
+ "properties": {
1497
+ "x": {
1498
+ "type": "number"
1499
+ },
1500
+ "z": {
1501
+ "type": "number"
1502
+ },
1503
+ "height": {
1504
+ "type": "number"
1505
+ }
1506
+ },
1507
+ "required": [
1508
+ "x",
1509
+ "z",
1510
+ "height"
1511
+ ]
1512
+ },
1513
+ "description": {
1514
+ "type": "string"
1515
+ },
1516
+ "placeholder": {
1517
+ "type": "boolean"
1518
+ },
1519
+ "sourceGlbUrl": {
1520
+ "type": "string"
1521
+ },
1522
+ "sourceModelUrl": {
1523
+ "type": "string"
1524
+ },
1525
+ "sourceVxlMasterUrl": {
1526
+ "type": "string"
1527
+ },
1528
+ "sourceVxlMasterResolution": {
1529
+ "type": "number"
1530
+ },
1531
+ "voxelEdited": {
1532
+ "type": "boolean"
1533
+ },
1534
+ "vxlUrl": {
1535
+ "type": "string"
1536
+ },
1537
+ "sourceGlbType": {
1538
+ "type": "string"
1539
+ },
1540
+ "targetHeight": {
1541
+ "type": "number"
1542
+ },
1543
+ "glbDimensions": {
1544
+ "type": "object",
1545
+ "properties": {
1546
+ "width": {
1547
+ "type": "number"
1548
+ },
1549
+ "height": {
1550
+ "type": "number"
1551
+ },
1552
+ "depth": {
1553
+ "type": "number"
1554
+ }
1555
+ },
1556
+ "required": [
1557
+ "width",
1558
+ "height",
1559
+ "depth"
1560
+ ]
1561
+ },
1562
+ "colliderUrl": {
1563
+ "type": "string"
1564
+ },
1565
+ "colliderType": {
1566
+ "type": "string",
1567
+ "enum": [
1568
+ "mesh",
1569
+ "voxel"
1570
+ ]
1571
+ },
1572
+ "vehicleFitment": {
1573
+ "$ref": "#/definitions/VehicleAssetFitment"
1574
+ },
1575
+ "splatCount": {
1576
+ "type": "number"
1577
+ },
1578
+ "denormScale": {
1579
+ "type": "number"
1580
+ },
1581
+ "centerY": {
1582
+ "type": "number"
1583
+ },
1584
+ "source": {
1585
+ "type": "string",
1586
+ "enum": [
1587
+ "generated",
1588
+ "uploaded"
1589
+ ]
1590
+ },
1591
+ "duration": {
1592
+ "type": "number"
1593
+ },
1594
+ "prompt": {
1595
+ "type": "string"
1596
+ },
1597
+ "cropBounds": {
1598
+ "type": "object",
1599
+ "properties": {
1600
+ "minX": {
1601
+ "type": "number"
1602
+ },
1603
+ "minY": {
1604
+ "type": "number"
1605
+ },
1606
+ "minZ": {
1607
+ "type": "number"
1608
+ },
1609
+ "maxX": {
1610
+ "type": "number"
1611
+ },
1612
+ "maxY": {
1613
+ "type": "number"
1614
+ },
1615
+ "maxZ": {
1616
+ "type": "number"
1617
+ }
1618
+ },
1619
+ "required": [
1620
+ "minX",
1621
+ "minY",
1622
+ "minZ",
1623
+ "maxX",
1624
+ "maxY",
1625
+ "maxZ"
1626
+ ]
1627
+ },
1628
+ "cleanupBounds": {
1629
+ "type": "object",
1630
+ "properties": {
1631
+ "minX": {
1632
+ "type": "number"
1633
+ },
1634
+ "minY": {
1635
+ "type": "number"
1636
+ },
1637
+ "minZ": {
1638
+ "type": "number"
1639
+ },
1640
+ "maxX": {
1641
+ "type": "number"
1642
+ },
1643
+ "maxY": {
1644
+ "type": "number"
1645
+ },
1646
+ "maxZ": {
1647
+ "type": "number"
1648
+ }
1649
+ },
1650
+ "required": [
1651
+ "minX",
1652
+ "minY",
1653
+ "minZ",
1654
+ "maxX",
1655
+ "maxY",
1656
+ "maxZ"
1657
+ ]
1658
+ },
1659
+ "navUrl": {
1660
+ "type": "string"
1661
+ }
1662
+ },
1663
+ "required": [
1664
+ "id",
1665
+ "name",
1666
+ "url",
1667
+ "type"
1668
+ ]
1669
+ },
1670
+ "AssetLightEmitter": {
1671
+ "type": "object",
1672
+ "properties": {
1673
+ "color": {
1674
+ "type": "string"
1675
+ },
1676
+ "intensity": {
1677
+ "type": "number"
1678
+ },
1679
+ "distance": {
1680
+ "type": "number"
1681
+ },
1682
+ "offset": {
1683
+ "$ref": "#/definitions/Vector3Like"
1684
+ },
1685
+ "flicker": {
1686
+ "type": "boolean"
1687
+ }
1688
+ }
1689
+ },
1690
+ "VehicleAssetFitment": {
1691
+ "type": "object",
1692
+ "properties": {
1693
+ "version": {
1694
+ "type": "number",
1695
+ "const": 1
1696
+ },
1697
+ "platform": {
1698
+ "type": "object",
1699
+ "properties": {
1700
+ "width": {
1701
+ "type": "number"
1702
+ },
1703
+ "length": {
1704
+ "type": "number"
1705
+ }
1706
+ },
1707
+ "required": [
1708
+ "width",
1709
+ "length"
1710
+ ]
1711
+ },
1712
+ "axles": {
1713
+ "type": "array",
1714
+ "items": {
1715
+ "$ref": "#/definitions/VehicleFitmentAxle"
1716
+ }
1717
+ },
1718
+ "bodyBounds": {
1719
+ "type": "object",
1720
+ "properties": {
1721
+ "min": {
1722
+ "type": "array",
1723
+ "items": {
1724
+ "type": "number"
1725
+ },
1726
+ "minItems": 3,
1727
+ "maxItems": 3
1728
+ },
1729
+ "max": {
1730
+ "type": "array",
1731
+ "items": {
1732
+ "type": "number"
1733
+ },
1734
+ "minItems": 3,
1735
+ "maxItems": 3
1736
+ }
1737
+ },
1738
+ "required": [
1739
+ "min",
1740
+ "max"
1741
+ ]
1742
+ },
1743
+ "hasWheelNodes": {
1744
+ "type": "boolean"
1745
+ },
1746
+ "collisionBoxes": {
1747
+ "type": "array",
1748
+ "items": {
1749
+ "$ref": "#/definitions/VehicleFitmentBox"
1750
+ }
1751
+ },
1752
+ "mass": {
1753
+ "type": "number"
1754
+ },
1755
+ "handling": {
1756
+ "type": "object",
1757
+ "properties": {
1758
+ "topSpeed": {
1759
+ "type": "number"
1760
+ },
1761
+ "accelerationScale": {
1762
+ "type": "number"
1763
+ },
1764
+ "maxSteerAngle": {
1765
+ "type": "number"
1766
+ },
1767
+ "downforce": {
1768
+ "type": "number"
1769
+ }
1770
+ }
1771
+ },
1772
+ "preferredVoxelSizeM": {
1773
+ "type": "number"
1774
+ },
1775
+ "seat": {
1776
+ "type": "object",
1777
+ "properties": {
1778
+ "x": {
1779
+ "type": "number"
1780
+ },
1781
+ "y": {
1782
+ "type": "number"
1783
+ },
1784
+ "z": {
1785
+ "type": "number"
1786
+ }
1787
+ },
1788
+ "required": [
1789
+ "x",
1790
+ "y",
1791
+ "z"
1792
+ ]
1793
+ }
1794
+ },
1795
+ "required": [
1796
+ "version",
1797
+ "platform",
1798
+ "axles",
1799
+ "bodyBounds",
1800
+ "hasWheelNodes",
1801
+ "collisionBoxes",
1802
+ "mass"
1803
+ ]
1804
+ },
1805
+ "VehicleFitmentAxle": {
1806
+ "type": "object",
1807
+ "properties": {
1808
+ "z": {
1809
+ "type": "number"
1810
+ },
1811
+ "y": {
1812
+ "type": "number"
1813
+ },
1814
+ "radius": {
1815
+ "type": "number"
1816
+ },
1817
+ "width": {
1818
+ "type": "number"
1819
+ },
1820
+ "track": {
1821
+ "type": "number"
1822
+ },
1823
+ "steering": {
1824
+ "type": "boolean"
1825
+ },
1826
+ "driven": {
1827
+ "type": "boolean"
1828
+ },
1829
+ "dual": {
1830
+ "type": "boolean"
1831
+ },
1832
+ "wheelStyle": {
1833
+ "$ref": "#/definitions/BmWheelStyle"
1834
+ }
1835
+ },
1836
+ "required": [
1837
+ "z",
1838
+ "y",
1839
+ "radius",
1840
+ "width",
1841
+ "track",
1842
+ "steering",
1843
+ "driven",
1844
+ "dual",
1845
+ "wheelStyle"
1846
+ ]
1847
+ },
1848
+ "BmWheelStyle": {
1849
+ "type": "string",
1850
+ "enum": [
1851
+ "steel",
1852
+ "alloy5",
1853
+ "alloy6",
1854
+ "lug",
1855
+ "moon",
1856
+ "classic"
1857
+ ]
1858
+ },
1859
+ "VehicleFitmentBox": {
1860
+ "type": "object",
1861
+ "properties": {
1862
+ "position": {
1863
+ "type": "object",
1864
+ "properties": {
1865
+ "x": {
1866
+ "type": "number"
1867
+ },
1868
+ "y": {
1869
+ "type": "number"
1870
+ },
1871
+ "z": {
1872
+ "type": "number"
1873
+ }
1874
+ },
1875
+ "required": [
1876
+ "x",
1877
+ "y",
1878
+ "z"
1879
+ ]
1880
+ },
1881
+ "size": {
1882
+ "type": "object",
1883
+ "properties": {
1884
+ "x": {
1885
+ "type": "number"
1886
+ },
1887
+ "y": {
1888
+ "type": "number"
1889
+ },
1890
+ "z": {
1891
+ "type": "number"
1892
+ }
1893
+ },
1894
+ "required": [
1895
+ "x",
1896
+ "y",
1897
+ "z"
1898
+ ]
1899
+ }
1900
+ },
1901
+ "required": [
1902
+ "position",
1903
+ "size"
1904
+ ]
1905
+ }
1906
+ }
1907
+ };
1908
+ //# sourceMappingURL=game-data-schema.js.map