incanto 0.72.0 → 0.74.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 (84) hide show
  1. package/bin/incanto-check.mjs +114 -42
  2. package/bin/incanto-verify.mjs +9 -2
  3. package/dist/2d.d.ts +29 -4
  4. package/dist/2d.js +3 -3
  5. package/dist/3d.d.ts +137 -15
  6. package/dist/3d.js +6 -6
  7. package/dist/{agent8-BqZ0_O1u.js → agent8-CHTT4unP.js} +1 -1
  8. package/dist/{audio-player-ioZ7VKC6.d.ts → audio-player-BOrk4eQx.d.ts} +1 -1
  9. package/dist/{behavior-Bf9P9oB2.d.ts → behavior-J1cmVah0.d.ts} +8 -0
  10. package/dist/{create-game-CmFAtLZp.js → create-game-BAiA-FjP.js} +7 -7
  11. package/dist/{create-game-C9rWqqAC.js → create-game-ssvGvP7W.js} +7 -7
  12. package/dist/debug.d.ts +1 -1
  13. package/dist/debug.js +1 -1
  14. package/dist/editor.js +965 -893
  15. package/dist/{environment-presets-BeHoaGhy.js → environment-presets-BkqlWewf.js} +277 -60
  16. package/dist/{gameplay-BlQe-M07.js → gameplay-Bxe1sMVT.js} +611 -39
  17. package/dist/gameplay.d.ts +141 -7
  18. package/dist/gameplay.js +2 -2
  19. package/dist/index.d.ts +6 -4
  20. package/dist/index.js +6 -6
  21. package/dist/{loader-CBfQzB6S.d.ts → loader-BAeWMYfF.d.ts} +1 -1
  22. package/dist/net.d.ts +2 -2
  23. package/dist/net.js +2 -2
  24. package/dist/{physics-2d-DrIgTlLk.js → physics-2d-C-SfvjzH.js} +94 -11
  25. package/dist/{physics-3d-BzOCw1VS.js → physics-3d-rOzeg890.js} +202 -15
  26. package/dist/{picking-C9McVJrO.js → picking-BMV34Pjl.js} +2 -2
  27. package/dist/react.d.ts +1 -1
  28. package/dist/react.js +1 -1
  29. package/dist/{register-5IYfooAN.js → register-CjociOtt.js} +19 -4
  30. package/dist/{register-C8HuRkOf.js → register-DRQyZKGU.js} +45 -9
  31. package/dist/{replay-datiAE-b.js → replay-B6BbgGM_.js} +42 -6
  32. package/dist/{replay-CBEChqXq.d.ts → replay-wZK5Ok5c.d.ts} +1 -1
  33. package/dist/{save-slots-CEuJPUle.js → save-slots-CEUGeLuB.js} +11 -2
  34. package/dist/{split-screen-Bm5DTElG.js → split-screen-BxZ5rBe7.js} +4 -4
  35. package/dist/{split-screen-DkqLng6q.d.ts → split-screen-D6sx8z3Z.d.ts} +2 -2
  36. package/dist/{sprite-animation-CqR2o3SA.js → sprite-animation-Bz3DHD_4.js} +1 -1
  37. package/dist/{src-DRSsRleD.js → src-CqtvYtSN.js} +1 -1
  38. package/dist/{test-Djuq3Vhq.js → test-CEl0y2Sw.js} +162 -30
  39. package/dist/test.d.ts +56 -5
  40. package/dist/test.js +2 -2
  41. package/dist/{touch-BnCyPA0G.js → touch-CioTZB-y.js} +1 -1
  42. package/dist/vite.js +3 -3
  43. package/editor/assets/{agent8-CMKz2cax.js → agent8-BlzturGi.js} +1 -1
  44. package/editor/assets/{debug-DLrQm-az.js → debug-BMUi8usj.js} +1 -1
  45. package/editor/assets/{index-BEKuxYcE.js → index-CrUCQoaB.js} +53 -53
  46. package/editor/index.html +1 -1
  47. package/package.json +1 -1
  48. package/schemas/scene.schema.json +634 -10
  49. package/skills/incanto-3d-character.md +113 -5
  50. package/skills/incanto-assets.md +9 -3
  51. package/skills/incanto-behaviors-and-scripts.md +26 -2
  52. package/skills/incanto-building-2d-games.md +9 -0
  53. package/skills/incanto-building-3d-games.md +45 -0
  54. package/skills/incanto-editor.md +6 -1
  55. package/skills/incanto-environment.md +7 -2
  56. package/skills/incanto-game-feel.md +16 -11
  57. package/skills/incanto-gameplay-behaviors.md +179 -16
  58. package/skills/incanto-node-reference.md +124 -45
  59. package/skills/incanto-physics-and-input.md +67 -5
  60. package/skills/incanto-scene-json-authoring.md +9 -3
  61. package/skills/incanto-verifying-your-game.md +19 -2
  62. package/templates-app/beacon-isle-3d/PROJECT/Status.md +8 -0
  63. package/templates-app/beacon-isle-3d/PROJECT/Structure.md +3 -0
  64. package/templates-app/beacon-isle-3d/package.json +1 -1
  65. package/templates-app/beacon-isle-3d/src/game.scene.json +136 -0
  66. package/templates-app/beacon-isle-3d/verify.ts +144 -0
  67. package/templates-app/molehill-2d/package.json +1 -1
  68. package/templates-app/platformer-2d/PROJECT/Status.md +7 -0
  69. package/templates-app/platformer-2d/PROJECT/Structure.md +3 -0
  70. package/templates-app/platformer-2d/package.json +1 -1
  71. package/templates-app/platformer-2d/src/game.scene.json +126 -0
  72. package/templates-app/platformer-2d/verify.ts +54 -0
  73. package/templates-app/star-survivor/package.json +1 -1
  74. package/templates-app/tps-3d/PROJECT/Context.md +1 -1
  75. package/templates-app/tps-3d/PROJECT/Status.md +40 -1
  76. package/templates-app/tps-3d/PROJECT/Structure.md +19 -0
  77. package/templates-app/tps-3d/package.json +1 -1
  78. package/templates-app/tps-3d/src/behaviors.ts +9 -0
  79. package/templates-app/tps-3d/src/cover.scene.json +26 -0
  80. package/templates-app/tps-3d/src/game.scene.json +331 -75
  81. package/templates-app/tps-3d/src/main.ts +14 -0
  82. package/templates-app/tps-3d/src/pillar.scene.json +25 -0
  83. package/templates-app/tps-3d/verify.ts +582 -3
  84. package/templates-app/village-quest-3d/package.json +1 -1
@@ -307,6 +307,9 @@
307
307
  {
308
308
  "$ref": "#/$defs/River3D"
309
309
  },
310
+ {
311
+ "$ref": "#/$defs/SpotLight3D"
312
+ },
310
313
  {
311
314
  "$ref": "#/$defs/Sprite2D"
312
315
  },
@@ -681,6 +684,17 @@
681
684
  "default": "default"
682
685
  },
683
686
  "snapToGround": {
687
+ "anyOf": [
688
+ {
689
+ "type": "null"
690
+ },
691
+ {
692
+ "type": "boolean"
693
+ },
694
+ {
695
+ "type": "number"
696
+ }
697
+ ],
684
698
  "default": null
685
699
  },
686
700
  "texture": {
@@ -987,6 +1001,17 @@
987
1001
  "default": "default"
988
1002
  },
989
1003
  "snapToGround": {
1004
+ "anyOf": [
1005
+ {
1006
+ "type": "null"
1007
+ },
1008
+ {
1009
+ "type": "boolean"
1010
+ },
1011
+ {
1012
+ "type": "number"
1013
+ }
1014
+ ],
990
1015
  "default": null
991
1016
  },
992
1017
  "collider": {
@@ -1244,6 +1269,17 @@
1244
1269
  "default": "default"
1245
1270
  },
1246
1271
  "snapToGround": {
1272
+ "anyOf": [
1273
+ {
1274
+ "type": "null"
1275
+ },
1276
+ {
1277
+ "type": "boolean"
1278
+ },
1279
+ {
1280
+ "type": "number"
1281
+ }
1282
+ ],
1247
1283
  "default": null
1248
1284
  },
1249
1285
  "mode": {
@@ -1363,6 +1399,17 @@
1363
1399
  "default": "default"
1364
1400
  },
1365
1401
  "snapToGround": {
1402
+ "anyOf": [
1403
+ {
1404
+ "type": "null"
1405
+ },
1406
+ {
1407
+ "type": "boolean"
1408
+ },
1409
+ {
1410
+ "type": "number"
1411
+ }
1412
+ ],
1366
1413
  "default": null
1367
1414
  },
1368
1415
  "target": {
@@ -1486,6 +1533,17 @@
1486
1533
  "default": "default"
1487
1534
  },
1488
1535
  "snapToGround": {
1536
+ "anyOf": [
1537
+ {
1538
+ "type": "null"
1539
+ },
1540
+ {
1541
+ "type": "boolean"
1542
+ },
1543
+ {
1544
+ "type": "number"
1545
+ }
1546
+ ],
1489
1547
  "default": null
1490
1548
  },
1491
1549
  "target": {
@@ -1754,6 +1812,17 @@
1754
1812
  "default": "default"
1755
1813
  },
1756
1814
  "snapToGround": {
1815
+ "anyOf": [
1816
+ {
1817
+ "type": "null"
1818
+ },
1819
+ {
1820
+ "type": "boolean"
1821
+ },
1822
+ {
1823
+ "type": "number"
1824
+ }
1825
+ ],
1757
1826
  "default": null
1758
1827
  },
1759
1828
  "fov": {
@@ -1912,6 +1981,10 @@
1912
1981
  "stepHeight": {
1913
1982
  "type": "number",
1914
1983
  "default": 35
1984
+ },
1985
+ "collideWithCharacters": {
1986
+ "type": "boolean",
1987
+ "default": true
1915
1988
  }
1916
1989
  },
1917
1990
  "additionalProperties": false
@@ -2026,6 +2099,17 @@
2026
2099
  "default": "default"
2027
2100
  },
2028
2101
  "snapToGround": {
2102
+ "anyOf": [
2103
+ {
2104
+ "type": "null"
2105
+ },
2106
+ {
2107
+ "type": "boolean"
2108
+ },
2109
+ {
2110
+ "type": "number"
2111
+ }
2112
+ ],
2029
2113
  "default": null
2030
2114
  },
2031
2115
  "collider": {
@@ -2056,6 +2140,10 @@
2056
2140
  "stepHeight": {
2057
2141
  "type": "number",
2058
2142
  "default": 0.35
2143
+ },
2144
+ "collideWithCharacters": {
2145
+ "type": "boolean",
2146
+ "default": true
2059
2147
  }
2060
2148
  },
2061
2149
  "additionalProperties": false
@@ -2232,7 +2320,7 @@
2232
2320
  },
2233
2321
  "CharacterController3D": {
2234
2322
  "type": "object",
2235
- "x-signals": ["movementStateChanged"],
2323
+ "x-signals": ["movementStateChanged", "wallJumped"],
2236
2324
  "properties": {
2237
2325
  "name": {
2238
2326
  "type": "string"
@@ -2300,6 +2388,17 @@
2300
2388
  "default": "default"
2301
2389
  },
2302
2390
  "snapToGround": {
2391
+ "anyOf": [
2392
+ {
2393
+ "type": "null"
2394
+ },
2395
+ {
2396
+ "type": "boolean"
2397
+ },
2398
+ {
2399
+ "type": "number"
2400
+ }
2401
+ ],
2303
2402
  "default": null
2304
2403
  },
2305
2404
  "view": {
@@ -2351,6 +2450,19 @@
2351
2450
  "type": "number",
2352
2451
  "default": 0.2
2353
2452
  },
2453
+ "wallJumpImpulse": {
2454
+ "type": "array",
2455
+ "items": {
2456
+ "type": "number"
2457
+ },
2458
+ "minItems": 2,
2459
+ "maxItems": 2,
2460
+ "default": [0, 0]
2461
+ },
2462
+ "wallSlideSpeed": {
2463
+ "type": "number",
2464
+ "default": 0
2465
+ },
2354
2466
  "fallGravity": {
2355
2467
  "type": "number",
2356
2468
  "default": 2.5
@@ -2668,6 +2780,17 @@
2668
2780
  "default": "default"
2669
2781
  },
2670
2782
  "snapToGround": {
2783
+ "anyOf": [
2784
+ {
2785
+ "type": "null"
2786
+ },
2787
+ {
2788
+ "type": "boolean"
2789
+ },
2790
+ {
2791
+ "type": "number"
2792
+ }
2793
+ ],
2671
2794
  "default": null
2672
2795
  },
2673
2796
  "color": {
@@ -2806,6 +2929,17 @@
2806
2929
  "default": "default"
2807
2930
  },
2808
2931
  "snapToGround": {
2932
+ "anyOf": [
2933
+ {
2934
+ "type": "null"
2935
+ },
2936
+ {
2937
+ "type": "boolean"
2938
+ },
2939
+ {
2940
+ "type": "number"
2941
+ }
2942
+ ],
2809
2943
  "default": null
2810
2944
  },
2811
2945
  "density": {
@@ -2854,6 +2988,14 @@
2854
2988
  "default": 0.5
2855
2989
  },
2856
2990
  "drape": {
2991
+ "anyOf": [
2992
+ {
2993
+ "type": "null"
2994
+ },
2995
+ {
2996
+ "type": "boolean"
2997
+ }
2998
+ ],
2857
2999
  "default": null
2858
3000
  },
2859
3001
  "avoidWater": {
@@ -2977,6 +3119,17 @@
2977
3119
  "default": "default"
2978
3120
  },
2979
3121
  "snapToGround": {
3122
+ "anyOf": [
3123
+ {
3124
+ "type": "null"
3125
+ },
3126
+ {
3127
+ "type": "boolean"
3128
+ },
3129
+ {
3130
+ "type": "number"
3131
+ }
3132
+ ],
2980
3133
  "default": null
2981
3134
  },
2982
3135
  "kind": {
@@ -3065,6 +3218,14 @@
3065
3218
  "default": 1
3066
3219
  },
3067
3220
  "drape": {
3221
+ "anyOf": [
3222
+ {
3223
+ "type": "null"
3224
+ },
3225
+ {
3226
+ "type": "boolean"
3227
+ }
3228
+ ],
3068
3229
  "default": null
3069
3230
  },
3070
3231
  "avoidWater": {
@@ -3267,6 +3428,17 @@
3267
3428
  "default": "default"
3268
3429
  },
3269
3430
  "snapToGround": {
3431
+ "anyOf": [
3432
+ {
3433
+ "type": "null"
3434
+ },
3435
+ {
3436
+ "type": "boolean"
3437
+ },
3438
+ {
3439
+ "type": "number"
3440
+ }
3441
+ ],
3270
3442
  "default": null
3271
3443
  },
3272
3444
  "mesh": {
@@ -3300,6 +3472,14 @@
3300
3472
  "default": false
3301
3473
  },
3302
3474
  "collider": {
3475
+ "anyOf": [
3476
+ {
3477
+ "type": "null"
3478
+ },
3479
+ {
3480
+ "type": "object"
3481
+ }
3482
+ ],
3303
3483
  "default": null
3304
3484
  }
3305
3485
  },
@@ -3449,6 +3629,14 @@
3449
3629
  "default": 5
3450
3630
  },
3451
3631
  "collide": {
3632
+ "anyOf": [
3633
+ {
3634
+ "type": "null"
3635
+ },
3636
+ {
3637
+ "type": "boolean"
3638
+ }
3639
+ ],
3452
3640
  "default": null
3453
3641
  }
3454
3642
  },
@@ -3563,6 +3751,17 @@
3563
3751
  "default": "default"
3564
3752
  },
3565
3753
  "snapToGround": {
3754
+ "anyOf": [
3755
+ {
3756
+ "type": "null"
3757
+ },
3758
+ {
3759
+ "type": "boolean"
3760
+ },
3761
+ {
3762
+ "type": "number"
3763
+ }
3764
+ ],
3566
3765
  "default": null
3567
3766
  },
3568
3767
  "type": {
@@ -3606,6 +3805,14 @@
3606
3805
  "default": 5
3607
3806
  },
3608
3807
  "collide": {
3808
+ "anyOf": [
3809
+ {
3810
+ "type": "null"
3811
+ },
3812
+ {
3813
+ "type": "boolean"
3814
+ }
3815
+ ],
3609
3816
  "default": null
3610
3817
  }
3611
3818
  },
@@ -3850,6 +4057,17 @@
3850
4057
  "default": "default"
3851
4058
  },
3852
4059
  "snapToGround": {
4060
+ "anyOf": [
4061
+ {
4062
+ "type": "null"
4063
+ },
4064
+ {
4065
+ "type": "boolean"
4066
+ },
4067
+ {
4068
+ "type": "number"
4069
+ }
4070
+ ],
3853
4071
  "default": null
3854
4072
  },
3855
4073
  "texture": {
@@ -4040,6 +4258,17 @@
4040
4258
  "default": "default"
4041
4259
  },
4042
4260
  "snapToGround": {
4261
+ "anyOf": [
4262
+ {
4263
+ "type": "null"
4264
+ },
4265
+ {
4266
+ "type": "boolean"
4267
+ },
4268
+ {
4269
+ "type": "number"
4270
+ }
4271
+ ],
4043
4272
  "default": null
4044
4273
  },
4045
4274
  "sections": {
@@ -4178,6 +4407,17 @@
4178
4407
  "default": "default"
4179
4408
  },
4180
4409
  "snapToGround": {
4410
+ "anyOf": [
4411
+ {
4412
+ "type": "null"
4413
+ },
4414
+ {
4415
+ "type": "boolean"
4416
+ },
4417
+ {
4418
+ "type": "number"
4419
+ }
4420
+ ],
4181
4421
  "default": null
4182
4422
  },
4183
4423
  "mesh": {
@@ -4319,6 +4559,17 @@
4319
4559
  "default": "default"
4320
4560
  },
4321
4561
  "snapToGround": {
4562
+ "anyOf": [
4563
+ {
4564
+ "type": "null"
4565
+ },
4566
+ {
4567
+ "type": "boolean"
4568
+ },
4569
+ {
4570
+ "type": "number"
4571
+ }
4572
+ ],
4322
4573
  "default": null
4323
4574
  },
4324
4575
  "model": {
@@ -4741,6 +4992,17 @@
4741
4992
  "default": "default"
4742
4993
  },
4743
4994
  "snapToGround": {
4995
+ "anyOf": [
4996
+ {
4997
+ "type": "null"
4998
+ },
4999
+ {
5000
+ "type": "boolean"
5001
+ },
5002
+ {
5003
+ "type": "number"
5004
+ }
5005
+ ],
4744
5006
  "default": null
4745
5007
  }
4746
5008
  },
@@ -4855,6 +5117,17 @@
4855
5117
  "default": "default"
4856
5118
  },
4857
5119
  "snapToGround": {
5120
+ "anyOf": [
5121
+ {
5122
+ "type": "null"
5123
+ },
5124
+ {
5125
+ "type": "boolean"
5126
+ },
5127
+ {
5128
+ "type": "number"
5129
+ }
5130
+ ],
4858
5131
  "default": null
4859
5132
  },
4860
5133
  "color": {
@@ -5202,15 +5475,26 @@
5202
5475
  "default": "effects"
5203
5476
  },
5204
5477
  "snapToGround": {
5205
- "default": null
5206
- },
5207
- "preset": {
5208
- "type": "string",
5209
- "enum": [
5210
- "custom",
5211
- "fire",
5212
- "smoke",
5213
- "sparks",
5478
+ "anyOf": [
5479
+ {
5480
+ "type": "null"
5481
+ },
5482
+ {
5483
+ "type": "boolean"
5484
+ },
5485
+ {
5486
+ "type": "number"
5487
+ }
5488
+ ],
5489
+ "default": null
5490
+ },
5491
+ "preset": {
5492
+ "type": "string",
5493
+ "enum": [
5494
+ "custom",
5495
+ "fire",
5496
+ "smoke",
5497
+ "sparks",
5214
5498
  "fireworks",
5215
5499
  "explosion",
5216
5500
  "flash",
@@ -5395,6 +5679,14 @@
5395
5679
  "default": ".."
5396
5680
  },
5397
5681
  "below": {
5682
+ "anyOf": [
5683
+ {
5684
+ "type": "null"
5685
+ },
5686
+ {
5687
+ "type": "number"
5688
+ }
5689
+ ],
5398
5690
  "default": null
5399
5691
  },
5400
5692
  "to": {
@@ -5552,6 +5844,14 @@
5552
5844
  "angularVelocity": {
5553
5845
  "type": "number",
5554
5846
  "default": 0
5847
+ },
5848
+ "linearDamping": {
5849
+ "type": "number",
5850
+ "default": 0
5851
+ },
5852
+ "angularDamping": {
5853
+ "type": "number",
5854
+ "default": 0
5555
5855
  }
5556
5856
  },
5557
5857
  "additionalProperties": false
@@ -5666,6 +5966,17 @@
5666
5966
  "default": "default"
5667
5967
  },
5668
5968
  "snapToGround": {
5969
+ "anyOf": [
5970
+ {
5971
+ "type": "null"
5972
+ },
5973
+ {
5974
+ "type": "boolean"
5975
+ },
5976
+ {
5977
+ "type": "number"
5978
+ }
5979
+ ],
5669
5980
  "default": null
5670
5981
  },
5671
5982
  "collider": {
@@ -5713,6 +6024,14 @@
5713
6024
  "minItems": 3,
5714
6025
  "maxItems": 3,
5715
6026
  "default": [0, 0, 0]
6027
+ },
6028
+ "linearDamping": {
6029
+ "type": "number",
6030
+ "default": 0
6031
+ },
6032
+ "angularDamping": {
6033
+ "type": "number",
6034
+ "default": 0
5716
6035
  }
5717
6036
  },
5718
6037
  "additionalProperties": false
@@ -5826,6 +6145,17 @@
5826
6145
  "default": "default"
5827
6146
  },
5828
6147
  "snapToGround": {
6148
+ "anyOf": [
6149
+ {
6150
+ "type": "null"
6151
+ },
6152
+ {
6153
+ "type": "boolean"
6154
+ },
6155
+ {
6156
+ "type": "number"
6157
+ }
6158
+ ],
5829
6159
  "default": null
5830
6160
  },
5831
6161
  "path": {
@@ -5945,6 +6275,164 @@
5945
6275
  },
5946
6276
  "required": ["name", "type"]
5947
6277
  },
6278
+ "SpotLight3D": {
6279
+ "type": "object",
6280
+ "properties": {
6281
+ "name": {
6282
+ "type": "string"
6283
+ },
6284
+ "uid": {
6285
+ "type": "string"
6286
+ },
6287
+ "type": {
6288
+ "const": "SpotLight3D"
6289
+ },
6290
+ "groups": {
6291
+ "type": "array",
6292
+ "items": {
6293
+ "type": "string"
6294
+ }
6295
+ },
6296
+ "tags": {
6297
+ "type": "object"
6298
+ },
6299
+ "props": {
6300
+ "type": "object",
6301
+ "properties": {
6302
+ "position": {
6303
+ "type": "array",
6304
+ "items": {
6305
+ "type": "number"
6306
+ },
6307
+ "minItems": 3,
6308
+ "maxItems": 3,
6309
+ "default": [0, 0, 0]
6310
+ },
6311
+ "rotation": {
6312
+ "type": "array",
6313
+ "items": {
6314
+ "type": "number"
6315
+ },
6316
+ "minItems": 3,
6317
+ "maxItems": 3,
6318
+ "default": [0, 0, 0]
6319
+ },
6320
+ "static": {
6321
+ "type": "boolean",
6322
+ "default": false
6323
+ },
6324
+ "scale": {
6325
+ "type": "array",
6326
+ "items": {
6327
+ "type": "number"
6328
+ },
6329
+ "minItems": 3,
6330
+ "maxItems": 3,
6331
+ "default": [1, 1, 1]
6332
+ },
6333
+ "visible": {
6334
+ "type": "boolean",
6335
+ "default": true
6336
+ },
6337
+ "renderOrder": {
6338
+ "type": "number",
6339
+ "default": 0
6340
+ },
6341
+ "orderGroup": {
6342
+ "type": "string",
6343
+ "enum": ["background", "terrain", "default", "characters", "effects", "overlay"],
6344
+ "default": "default"
6345
+ },
6346
+ "snapToGround": {
6347
+ "anyOf": [
6348
+ {
6349
+ "type": "null"
6350
+ },
6351
+ {
6352
+ "type": "boolean"
6353
+ },
6354
+ {
6355
+ "type": "number"
6356
+ }
6357
+ ],
6358
+ "default": null
6359
+ },
6360
+ "color": {
6361
+ "type": "string",
6362
+ "default": "#ffffff"
6363
+ },
6364
+ "intensity": {
6365
+ "type": "number",
6366
+ "default": 1
6367
+ },
6368
+ "range": {
6369
+ "type": "number",
6370
+ "default": 0
6371
+ },
6372
+ "coneDeg": {
6373
+ "type": "number",
6374
+ "default": 60
6375
+ },
6376
+ "penumbra": {
6377
+ "type": "number",
6378
+ "default": 0.3
6379
+ },
6380
+ "castShadow": {
6381
+ "type": "boolean",
6382
+ "default": false
6383
+ },
6384
+ "shadowMapSize": {
6385
+ "type": "number",
6386
+ "default": 1024
6387
+ },
6388
+ "lookAt": {
6389
+ "type": "string",
6390
+ "description": "A node path: '%UniqueName', '/Absolute/From/Root', or relative to this node ('../Skin').",
6391
+ "default": ""
6392
+ }
6393
+ },
6394
+ "additionalProperties": false
6395
+ },
6396
+ "script": {
6397
+ "type": "object",
6398
+ "properties": {
6399
+ "name": {
6400
+ "type": "string"
6401
+ },
6402
+ "props": {
6403
+ "type": "object"
6404
+ }
6405
+ },
6406
+ "required": ["name"]
6407
+ },
6408
+ "network": {
6409
+ "type": "object",
6410
+ "properties": {
6411
+ "mode": {
6412
+ "enum": ["owner", "observer"]
6413
+ },
6414
+ "sync": {
6415
+ "type": "array",
6416
+ "items": {
6417
+ "type": "string",
6418
+ "minLength": 1
6419
+ }
6420
+ },
6421
+ "throttleMs": {
6422
+ "type": "number"
6423
+ }
6424
+ },
6425
+ "additionalProperties": false
6426
+ },
6427
+ "children": {
6428
+ "type": "array",
6429
+ "items": {
6430
+ "$ref": "#/$defs/node"
6431
+ }
6432
+ }
6433
+ },
6434
+ "required": ["name", "type"]
6435
+ },
5948
6436
  "Sprite2D": {
5949
6437
  "type": "object",
5950
6438
  "properties": {
@@ -6149,6 +6637,17 @@
6149
6637
  "default": "default"
6150
6638
  },
6151
6639
  "snapToGround": {
6640
+ "anyOf": [
6641
+ {
6642
+ "type": "null"
6643
+ },
6644
+ {
6645
+ "type": "boolean"
6646
+ },
6647
+ {
6648
+ "type": "number"
6649
+ }
6650
+ ],
6152
6651
  "default": null
6153
6652
  },
6154
6653
  "texture": {
@@ -6321,6 +6820,14 @@
6321
6820
  "enabled": {
6322
6821
  "type": "boolean",
6323
6822
  "default": true
6823
+ },
6824
+ "friction": {
6825
+ "type": "number",
6826
+ "default": 0.5
6827
+ },
6828
+ "restitution": {
6829
+ "type": "number",
6830
+ "default": 0
6324
6831
  }
6325
6832
  },
6326
6833
  "additionalProperties": false
@@ -6435,6 +6942,17 @@
6435
6942
  "default": "default"
6436
6943
  },
6437
6944
  "snapToGround": {
6945
+ "anyOf": [
6946
+ {
6947
+ "type": "null"
6948
+ },
6949
+ {
6950
+ "type": "boolean"
6951
+ },
6952
+ {
6953
+ "type": "number"
6954
+ }
6955
+ ],
6438
6956
  "default": null
6439
6957
  },
6440
6958
  "collider": {
@@ -6444,6 +6962,14 @@
6444
6962
  "enabled": {
6445
6963
  "type": "boolean",
6446
6964
  "default": true
6965
+ },
6966
+ "friction": {
6967
+ "type": "number",
6968
+ "default": 0.5
6969
+ },
6970
+ "restitution": {
6971
+ "type": "number",
6972
+ "default": 0
6447
6973
  }
6448
6974
  },
6449
6975
  "additionalProperties": false
@@ -6557,6 +7083,17 @@
6557
7083
  "default": "terrain"
6558
7084
  },
6559
7085
  "snapToGround": {
7086
+ "anyOf": [
7087
+ {
7088
+ "type": "null"
7089
+ },
7090
+ {
7091
+ "type": "boolean"
7092
+ },
7093
+ {
7094
+ "type": "number"
7095
+ }
7096
+ ],
6560
7097
  "default": null
6561
7098
  },
6562
7099
  "size": {
@@ -6610,6 +7147,14 @@
6610
7147
  "default": 0.95
6611
7148
  },
6612
7149
  "islandEdge": {
7150
+ "anyOf": [
7151
+ {
7152
+ "type": "null"
7153
+ },
7154
+ {
7155
+ "type": "boolean"
7156
+ }
7157
+ ],
6613
7158
  "default": null
6614
7159
  },
6615
7160
  "layers": {
@@ -6629,6 +7174,14 @@
6629
7174
  "default": []
6630
7175
  },
6631
7176
  "wetline": {
7177
+ "anyOf": [
7178
+ {
7179
+ "type": "null"
7180
+ },
7181
+ {
7182
+ "type": "object"
7183
+ }
7184
+ ],
6632
7185
  "default": null
6633
7186
  }
6634
7187
  },
@@ -6961,6 +7514,17 @@
6961
7514
  "default": "default"
6962
7515
  },
6963
7516
  "snapToGround": {
7517
+ "anyOf": [
7518
+ {
7519
+ "type": "null"
7520
+ },
7521
+ {
7522
+ "type": "boolean"
7523
+ },
7524
+ {
7525
+ "type": "number"
7526
+ }
7527
+ ],
6964
7528
  "default": null
6965
7529
  },
6966
7530
  "width": {
@@ -7103,6 +7667,17 @@
7103
7667
  "default": "default"
7104
7668
  },
7105
7669
  "snapToGround": {
7670
+ "anyOf": [
7671
+ {
7672
+ "type": "null"
7673
+ },
7674
+ {
7675
+ "type": "boolean"
7676
+ },
7677
+ {
7678
+ "type": "number"
7679
+ }
7680
+ ],
7106
7681
  "default": null
7107
7682
  },
7108
7683
  "tier": {
@@ -7161,6 +7736,14 @@
7161
7736
  "default": true
7162
7737
  },
7163
7738
  "drape": {
7739
+ "anyOf": [
7740
+ {
7741
+ "type": "null"
7742
+ },
7743
+ {
7744
+ "type": "boolean"
7745
+ }
7746
+ ],
7164
7747
  "default": null
7165
7748
  },
7166
7749
  "terrain": {
@@ -9246,6 +9829,17 @@
9246
9829
  "default": "default"
9247
9830
  },
9248
9831
  "snapToGround": {
9832
+ "anyOf": [
9833
+ {
9834
+ "type": "null"
9835
+ },
9836
+ {
9837
+ "type": "boolean"
9838
+ },
9839
+ {
9840
+ "type": "number"
9841
+ }
9842
+ ],
9249
9843
  "default": null
9250
9844
  },
9251
9845
  "voxels": {
@@ -9365,6 +9959,17 @@
9365
9959
  "default": "default"
9366
9960
  },
9367
9961
  "snapToGround": {
9962
+ "anyOf": [
9963
+ {
9964
+ "type": "null"
9965
+ },
9966
+ {
9967
+ "type": "boolean"
9968
+ },
9969
+ {
9970
+ "type": "number"
9971
+ }
9972
+ ],
9368
9973
  "default": null
9369
9974
  },
9370
9975
  "size": {
@@ -9426,6 +10031,14 @@
9426
10031
  "default": true
9427
10032
  },
9428
10033
  "reflectivity": {
10034
+ "anyOf": [
10035
+ {
10036
+ "type": "null"
10037
+ },
10038
+ {
10039
+ "type": "number"
10040
+ }
10041
+ ],
9429
10042
  "default": null
9430
10043
  },
9431
10044
  "interaction": {
@@ -9617,6 +10230,17 @@
9617
10230
  "default": "default"
9618
10231
  },
9619
10232
  "snapToGround": {
10233
+ "anyOf": [
10234
+ {
10235
+ "type": "null"
10236
+ },
10237
+ {
10238
+ "type": "boolean"
10239
+ },
10240
+ {
10241
+ "type": "number"
10242
+ }
10243
+ ],
9620
10244
  "default": null
9621
10245
  },
9622
10246
  "size": {