@almadar/core 11.0.1 → 11.2.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 (63) hide show
  1. package/dist/{builders-BdgbY7Th.d.ts → builders-C4TIhiks.d.ts} +292 -292
  2. package/dist/builders.d.ts +5 -5
  3. package/dist/builders.js +3 -3
  4. package/dist/{bus-C0hFDNFR.d.ts → bus-do1P9luP.d.ts} +4 -4
  5. package/dist/{chunk-ENOCKYGA.js → chunk-2NKK2X53.js} +3 -3
  6. package/dist/{chunk-ENOCKYGA.js.map → chunk-2NKK2X53.js.map} +1 -1
  7. package/dist/{chunk-TDNQT3M3.js → chunk-3DZOFI53.js} +4 -4
  8. package/dist/{chunk-TDNQT3M3.js.map → chunk-3DZOFI53.js.map} +1 -1
  9. package/dist/{chunk-5YTPYMPZ.js → chunk-6H3UIZR2.js} +3 -3
  10. package/dist/{chunk-5YTPYMPZ.js.map → chunk-6H3UIZR2.js.map} +1 -1
  11. package/dist/{chunk-FGT5OS2Y.js → chunk-7B4JRMRL.js} +15 -3
  12. package/dist/chunk-7B4JRMRL.js.map +1 -0
  13. package/dist/{chunk-5WQ3U7NJ.js → chunk-IE6WCCJP.js} +14 -2
  14. package/dist/chunk-IE6WCCJP.js.map +1 -0
  15. package/dist/{chunk-PNGFWLHD.js → chunk-LPJ7GKRM.js} +18 -8
  16. package/dist/chunk-LPJ7GKRM.js.map +1 -0
  17. package/dist/{chunk-SNZYN7UA.js → chunk-N3CK4AYW.js} +106 -16
  18. package/dist/{chunk-SNZYN7UA.js.map → chunk-N3CK4AYW.js.map} +1 -1
  19. package/dist/{chunk-E4T2MQAV.js → chunk-PYYHDYTD.js} +3 -3
  20. package/dist/{chunk-E4T2MQAV.js.map → chunk-PYYHDYTD.js.map} +1 -1
  21. package/dist/{chunk-Z7BI7DE7.js → chunk-VIHQKKTZ.js} +45 -15
  22. package/dist/chunk-VIHQKKTZ.js.map +1 -0
  23. package/dist/{chunk-GF7KCLNR.js → chunk-VOFHP52Z.js} +29 -4
  24. package/dist/chunk-VOFHP52Z.js.map +1 -0
  25. package/dist/{chunk-66Q5VX2F.js → chunk-ZDIHVDTW.js} +6 -6
  26. package/dist/chunk-ZDIHVDTW.js.map +1 -0
  27. package/dist/{effect-DZaXwSAz.d.ts → effect-Dr--GXRe.d.ts} +59 -51
  28. package/dist/{effect-result-1HpXgeBc.d.ts → effect-result-geymPT9w.d.ts} +39 -5
  29. package/dist/factory/index.d.ts +2 -2
  30. package/dist/factory/index.js +4 -4
  31. package/dist/factory-runtime/index.d.ts +3 -3
  32. package/dist/factory-runtime/index.js +10 -10
  33. package/dist/fixtures.d.ts +3 -3
  34. package/dist/fixtures.js +2 -2
  35. package/dist/i18n/index.js +1 -1
  36. package/dist/{index-D7SxwNdv.d.ts → index-C8mF8btS.d.ts} +39 -28
  37. package/dist/index.d.ts +14 -14
  38. package/dist/index.js +15 -15
  39. package/dist/kernel-wire.d.ts +2 -2
  40. package/dist/kernel-wire.js +1 -1
  41. package/dist/language/validation-codes.json +25 -0
  42. package/dist/language/vocabulary.json +2 -0
  43. package/dist/language-data.js +1 -1
  44. package/dist/patterns/component-mapping.json +1 -1
  45. package/dist/patterns/definitions.d.ts +1 -1
  46. package/dist/patterns/definitions.js +1 -1
  47. package/dist/patterns/event-contracts.json +1 -1
  48. package/dist/patterns/index.d.ts +2 -2
  49. package/dist/patterns/index.js +2 -2
  50. package/dist/patterns/patterns-registry.json +104 -14
  51. package/dist/patterns/registry.json +104 -14
  52. package/dist/{trait-sRjIivFq.d.ts → trait-D9MjuwGC.d.ts} +86 -86
  53. package/dist/types/index.d.ts +8 -8
  54. package/dist/types/index.js +7 -7
  55. package/dist/{types-C6_yPMpn.d.ts → types-Bi-KSa0a.d.ts} +2 -2
  56. package/package.json +4 -4
  57. package/dist/chunk-5WQ3U7NJ.js.map +0 -1
  58. package/dist/chunk-66Q5VX2F.js.map +0 -1
  59. package/dist/chunk-FGT5OS2Y.js.map +0 -1
  60. package/dist/chunk-GF7KCLNR.js.map +0 -1
  61. package/dist/chunk-PNGFWLHD.js.map +0 -1
  62. package/dist/chunk-Z7BI7DE7.js.map +0 -1
  63. package/dist/{domain-Cpmja5ak.d.ts → domain-JuWUUeJ3.d.ts} +51 -51
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "1.0.0",
3
- "exportedAt": "2026-11-06T03:25:33.553Z",
3
+ "exportedAt": "2026-11-07T03:57:49.631Z",
4
4
  "contracts": {
5
5
  "form": {
6
6
  "emits": [
@@ -1,6 +1,6 @@
1
- import { A as AnyPatternConfig, o as PatternType } from '../effect-DZaXwSAz.js';
1
+ import { A as AnyPatternConfig, o as PatternType } from '../effect-Dr--GXRe.js';
2
2
  import { RenderBinding, FieldValue, Effect } from '../index.js';
3
- export { p as PATTERN_TYPES, q as PatternConfig, r as PatternProps, s as PatternPropsMap, t as isValidPatternType } from '../effect-DZaXwSAz.js';
3
+ export { p as PATTERN_TYPES, q as PatternConfig, r as PatternProps, s as PatternPropsMap, t as isValidPatternType } from '../effect-Dr--GXRe.js';
4
4
  import { JsonValue } from '../factory/index.js';
5
5
  import { EventPayloadValue, EventPayload, SExprObject, SExpr } from '../index.js';
6
6
  import 'zod';
@@ -1,5 +1,5 @@
1
- export { COMPONENT_MAPPING, EVENT_CONTRACTS, PATTERN_TYPES, PROP_KINDS, SELF_OVERLAY_PATTERN_TYPES, SERVICES_REGISTRY, collectRenderUiPatternTypes, component_mapping_default as componentMapping, event_contracts_default as eventContracts, eventKeyPropsOf, eventListPropsOf, generatePatternDescription, getAllPatternTypes, getComponentForPattern, getOrbAllowedPatterns, getOrbAllowedPatternsCompact, getOrbAllowedPatternsFiltered, getOrbAllowedPatternsSlim, getPatternActionsRef, getPatternFieldsContract, getPatternMetadata, getPatternMinUsableWidths, getPatternPropsCompact, getPatternRuntimeDefinition, getPatternsGroupedByCategory, isBrowserOnlyService, isContentBodyPattern, isContentBodyPatternType, isDrawHostPattern, isDrawablePattern, isEntityAwarePattern, isMainSlotRenderUi, isValidPatternType, isValueInputPattern, renderUiEntriesOf, renderUiPatternTypesOf, services_registry_default as servicesRegistry } from '../chunk-66Q5VX2F.js';
1
+ export { COMPONENT_MAPPING, EVENT_CONTRACTS, PATTERN_TYPES, PROP_KINDS, SELF_OVERLAY_PATTERN_TYPES, SERVICES_REGISTRY, collectRenderUiPatternTypes, component_mapping_default as componentMapping, event_contracts_default as eventContracts, eventKeyPropsOf, eventListPropsOf, generatePatternDescription, getAllPatternTypes, getComponentForPattern, getOrbAllowedPatterns, getOrbAllowedPatternsCompact, getOrbAllowedPatternsFiltered, getOrbAllowedPatternsSlim, getPatternActionsRef, getPatternFieldsContract, getPatternMetadata, getPatternMinUsableWidths, getPatternPropsCompact, getPatternRuntimeDefinition, getPatternsGroupedByCategory, isBrowserOnlyService, isContentBodyPattern, isContentBodyPatternType, isDrawHostPattern, isDrawablePattern, isEntityAwarePattern, isMainSlotRenderUi, isValidPatternType, isValueInputPattern, renderUiEntriesOf, renderUiPatternTypesOf, services_registry_default as servicesRegistry } from '../chunk-ZDIHVDTW.js';
2
2
  import '../chunk-7GHJU5WI.js';
3
- export { PATTERN_REGISTRY, getPatternDefinition, patternsRegistry, registry } from '../chunk-SNZYN7UA.js';
3
+ export { PATTERN_REGISTRY, getPatternDefinition, patternsRegistry, registry } from '../chunk-N3CK4AYW.js';
4
4
  //# sourceMappingURL=index.js.map
5
5
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "1.0.0",
3
- "exportedAt": "2026-11-06T03:25:33.553Z",
3
+ "exportedAt": "2026-11-07T03:57:49.631Z",
4
4
  "patterns": {
5
5
  "detail-panel": {
6
6
  "type": "detail-panel",
@@ -97003,6 +97003,49 @@
97003
97003
  },
97004
97004
  "default": []
97005
97005
  },
97006
+ "particles": {
97007
+ "types": [
97008
+ "object"
97009
+ ],
97010
+ "description": "Packed particles drawn under the shapes in one pass ({@link LearningParticles}).",
97011
+ "properties": {
97012
+ "data": {
97013
+ "types": [
97014
+ "string"
97015
+ ]
97016
+ },
97017
+ "buffer": {
97018
+ "types": [
97019
+ "GpuBuffer"
97020
+ ]
97021
+ },
97022
+ "stride": {
97023
+ "types": [
97024
+ "number"
97025
+ ]
97026
+ },
97027
+ "radius": {
97028
+ "types": [
97029
+ "number"
97030
+ ]
97031
+ },
97032
+ "palette": {
97033
+ "types": [
97034
+ "array"
97035
+ ],
97036
+ "items": {
97037
+ "types": [
97038
+ "string"
97039
+ ]
97040
+ }
97041
+ }
97042
+ },
97043
+ "propertyRequired": [
97044
+ "stride",
97045
+ "radius",
97046
+ "palette"
97047
+ ]
97048
+ },
97006
97049
  "drawables": {
97007
97050
  "types": [
97008
97051
  "array"
@@ -97735,7 +97778,7 @@
97735
97778
  "types": [
97736
97779
  "string"
97737
97780
  ],
97738
- "description": "Painter: 2D raster (default) or 3D mesh scene via the lazy three.js host.",
97781
+ "description": "Painter: 2D raster (default) or 3D mesh scene, both drawn by orbital-canvas.",
97739
97782
  "enumValues": [
97740
97783
  "2d",
97741
97784
  "3d"
@@ -98906,7 +98949,7 @@
98906
98949
  "types": [
98907
98950
  "array"
98908
98951
  ],
98909
- "description": "Top-right status chip row, forwarded to LearningCanvas verbatim.",
98952
+ "description": "Top-right status chip row (the LearningCanvas vocabulary).",
98910
98953
  "items": {
98911
98954
  "types": [
98912
98955
  "object"
@@ -98939,7 +98982,7 @@
98939
98982
  "types": [
98940
98983
  "array"
98941
98984
  ],
98942
- "description": "Inset sparkline panels, forwarded to LearningCanvas verbatim.",
98985
+ "description": "Inset sparkline panels (the LearningCanvas vocabulary).",
98943
98986
  "items": {
98944
98987
  "types": [
98945
98988
  "object"
@@ -99519,7 +99562,7 @@
99519
99562
  "types": [
99520
99563
  "string"
99521
99564
  ],
99522
- "description": "Painter: 2D raster (default) or 3D mesh scene via the lazy three.js host.",
99565
+ "description": "Painter: 2D raster (default) or 3D mesh scene, both drawn by orbital-canvas.",
99523
99566
  "enumValues": [
99524
99567
  "2d",
99525
99568
  "3d"
@@ -100675,7 +100718,7 @@
100675
100718
  "types": [
100676
100719
  "array"
100677
100720
  ],
100678
- "description": "Top-right status chip row, forwarded to LearningCanvas verbatim.",
100721
+ "description": "Top-right status chip row (the LearningCanvas vocabulary).",
100679
100722
  "items": {
100680
100723
  "types": [
100681
100724
  "object"
@@ -100708,7 +100751,7 @@
100708
100751
  "types": [
100709
100752
  "array"
100710
100753
  ],
100711
- "description": "Inset sparkline panels, forwarded to LearningCanvas verbatim.",
100754
+ "description": "Inset sparkline panels (the LearningCanvas vocabulary).",
100712
100755
  "items": {
100713
100756
  "types": [
100714
100757
  "object"
@@ -102169,7 +102212,7 @@
102169
102212
  "types": [
102170
102213
  "array"
102171
102214
  ],
102172
- "description": "Top-right status chips, forwarded verbatim to LearningCanvas.",
102215
+ "description": "Top-right status chips (the LearningCanvas vocabulary).",
102173
102216
  "items": {
102174
102217
  "types": [
102175
102218
  "object"
@@ -102202,7 +102245,7 @@
102202
102245
  "types": [
102203
102246
  "array"
102204
102247
  ],
102205
- "description": "Inset sparkline panels, forwarded verbatim to LearningCanvas.",
102248
+ "description": "Inset sparkline panels (the LearningCanvas vocabulary).",
102206
102249
  "items": {
102207
102250
  "types": [
102208
102251
  "object"
@@ -102798,7 +102841,7 @@
102798
102841
  "types": [
102799
102842
  "string"
102800
102843
  ],
102801
- "description": "Painter: 2D raster (default) or 3D mesh scene via the lazy three.js host.",
102844
+ "description": "Painter: 2D raster (default) or 3D mesh scene, both drawn by orbital-canvas.",
102802
102845
  "enumValues": [
102803
102846
  "2d",
102804
102847
  "3d"
@@ -103231,6 +103274,49 @@
103231
103274
  },
103232
103275
  "default": []
103233
103276
  },
103277
+ "particles": {
103278
+ "types": [
103279
+ "object"
103280
+ ],
103281
+ "description": "2D mode: packed particles drawn in one pass under the bodies (a GPU readback), instead of a body per particle.",
103282
+ "properties": {
103283
+ "data": {
103284
+ "types": [
103285
+ "string"
103286
+ ]
103287
+ },
103288
+ "buffer": {
103289
+ "types": [
103290
+ "GpuBuffer"
103291
+ ]
103292
+ },
103293
+ "stride": {
103294
+ "types": [
103295
+ "number"
103296
+ ]
103297
+ },
103298
+ "radius": {
103299
+ "types": [
103300
+ "number"
103301
+ ]
103302
+ },
103303
+ "palette": {
103304
+ "types": [
103305
+ "array"
103306
+ ],
103307
+ "items": {
103308
+ "types": [
103309
+ "string"
103310
+ ]
103311
+ }
103312
+ }
103313
+ },
103314
+ "propertyRequired": [
103315
+ "stride",
103316
+ "radius",
103317
+ "palette"
103318
+ ]
103319
+ },
103234
103320
  "constraints": {
103235
103321
  "types": [
103236
103322
  "array"
@@ -104190,7 +104276,7 @@
104190
104276
  "types": [
104191
104277
  "array"
104192
104278
  ],
104193
- "description": "Top-right status chip row, forwarded to LearningCanvas verbatim.",
104279
+ "description": "Top-right status chip row (the LearningCanvas vocabulary).",
104194
104280
  "items": {
104195
104281
  "types": [
104196
104282
  "object"
@@ -104223,7 +104309,7 @@
104223
104309
  "types": [
104224
104310
  "array"
104225
104311
  ],
104226
- "description": "Inset sparkline panels, forwarded to LearningCanvas verbatim.",
104312
+ "description": "Inset sparkline panels (the LearningCanvas vocabulary).",
104227
104313
  "items": {
104228
104314
  "types": [
104229
104315
  "object"
@@ -115119,7 +115205,7 @@
115119
115205
  "types": [
115120
115206
  "array"
115121
115207
  ],
115122
- "description": "Consumer-declared effect vocabulary — one row per fx `type` (look + recipe). Unknown types fall back to a neutral spark burst.",
115208
+ "description": "Consumer-declared effect vocabulary — one row per fx `type` (look, recipe and motion). An item whose `type` has no row draws only from its own fields, and a missing required field is a typed error.",
115123
115209
  "items": {
115124
115210
  "types": [
115125
115211
  "object"
@@ -115220,7 +115306,11 @@
115220
115306
  }
115221
115307
  },
115222
115308
  "required": [
115223
- "type"
115309
+ "type",
115310
+ "gravity",
115311
+ "vx",
115312
+ "vy",
115313
+ "vz"
115224
115314
  ]
115225
115315
  }
115226
115316
  },
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "1.0.0",
3
- "exportedAt": "2026-11-06T03:25:33.553Z",
3
+ "exportedAt": "2026-11-07T03:57:49.631Z",
4
4
  "patterns": {
5
5
  "detail-panel": {
6
6
  "type": "detail-panel",
@@ -97003,6 +97003,49 @@
97003
97003
  },
97004
97004
  "default": []
97005
97005
  },
97006
+ "particles": {
97007
+ "types": [
97008
+ "object"
97009
+ ],
97010
+ "description": "Packed particles drawn under the shapes in one pass ({@link LearningParticles}).",
97011
+ "properties": {
97012
+ "data": {
97013
+ "types": [
97014
+ "string"
97015
+ ]
97016
+ },
97017
+ "buffer": {
97018
+ "types": [
97019
+ "GpuBuffer"
97020
+ ]
97021
+ },
97022
+ "stride": {
97023
+ "types": [
97024
+ "number"
97025
+ ]
97026
+ },
97027
+ "radius": {
97028
+ "types": [
97029
+ "number"
97030
+ ]
97031
+ },
97032
+ "palette": {
97033
+ "types": [
97034
+ "array"
97035
+ ],
97036
+ "items": {
97037
+ "types": [
97038
+ "string"
97039
+ ]
97040
+ }
97041
+ }
97042
+ },
97043
+ "propertyRequired": [
97044
+ "stride",
97045
+ "radius",
97046
+ "palette"
97047
+ ]
97048
+ },
97006
97049
  "drawables": {
97007
97050
  "types": [
97008
97051
  "array"
@@ -97735,7 +97778,7 @@
97735
97778
  "types": [
97736
97779
  "string"
97737
97780
  ],
97738
- "description": "Painter: 2D raster (default) or 3D mesh scene via the lazy three.js host.",
97781
+ "description": "Painter: 2D raster (default) or 3D mesh scene, both drawn by orbital-canvas.",
97739
97782
  "enumValues": [
97740
97783
  "2d",
97741
97784
  "3d"
@@ -98906,7 +98949,7 @@
98906
98949
  "types": [
98907
98950
  "array"
98908
98951
  ],
98909
- "description": "Top-right status chip row, forwarded to LearningCanvas verbatim.",
98952
+ "description": "Top-right status chip row (the LearningCanvas vocabulary).",
98910
98953
  "items": {
98911
98954
  "types": [
98912
98955
  "object"
@@ -98939,7 +98982,7 @@
98939
98982
  "types": [
98940
98983
  "array"
98941
98984
  ],
98942
- "description": "Inset sparkline panels, forwarded to LearningCanvas verbatim.",
98985
+ "description": "Inset sparkline panels (the LearningCanvas vocabulary).",
98943
98986
  "items": {
98944
98987
  "types": [
98945
98988
  "object"
@@ -99519,7 +99562,7 @@
99519
99562
  "types": [
99520
99563
  "string"
99521
99564
  ],
99522
- "description": "Painter: 2D raster (default) or 3D mesh scene via the lazy three.js host.",
99565
+ "description": "Painter: 2D raster (default) or 3D mesh scene, both drawn by orbital-canvas.",
99523
99566
  "enumValues": [
99524
99567
  "2d",
99525
99568
  "3d"
@@ -100675,7 +100718,7 @@
100675
100718
  "types": [
100676
100719
  "array"
100677
100720
  ],
100678
- "description": "Top-right status chip row, forwarded to LearningCanvas verbatim.",
100721
+ "description": "Top-right status chip row (the LearningCanvas vocabulary).",
100679
100722
  "items": {
100680
100723
  "types": [
100681
100724
  "object"
@@ -100708,7 +100751,7 @@
100708
100751
  "types": [
100709
100752
  "array"
100710
100753
  ],
100711
- "description": "Inset sparkline panels, forwarded to LearningCanvas verbatim.",
100754
+ "description": "Inset sparkline panels (the LearningCanvas vocabulary).",
100712
100755
  "items": {
100713
100756
  "types": [
100714
100757
  "object"
@@ -102169,7 +102212,7 @@
102169
102212
  "types": [
102170
102213
  "array"
102171
102214
  ],
102172
- "description": "Top-right status chips, forwarded verbatim to LearningCanvas.",
102215
+ "description": "Top-right status chips (the LearningCanvas vocabulary).",
102173
102216
  "items": {
102174
102217
  "types": [
102175
102218
  "object"
@@ -102202,7 +102245,7 @@
102202
102245
  "types": [
102203
102246
  "array"
102204
102247
  ],
102205
- "description": "Inset sparkline panels, forwarded verbatim to LearningCanvas.",
102248
+ "description": "Inset sparkline panels (the LearningCanvas vocabulary).",
102206
102249
  "items": {
102207
102250
  "types": [
102208
102251
  "object"
@@ -102798,7 +102841,7 @@
102798
102841
  "types": [
102799
102842
  "string"
102800
102843
  ],
102801
- "description": "Painter: 2D raster (default) or 3D mesh scene via the lazy three.js host.",
102844
+ "description": "Painter: 2D raster (default) or 3D mesh scene, both drawn by orbital-canvas.",
102802
102845
  "enumValues": [
102803
102846
  "2d",
102804
102847
  "3d"
@@ -103231,6 +103274,49 @@
103231
103274
  },
103232
103275
  "default": []
103233
103276
  },
103277
+ "particles": {
103278
+ "types": [
103279
+ "object"
103280
+ ],
103281
+ "description": "2D mode: packed particles drawn in one pass under the bodies (a GPU readback), instead of a body per particle.",
103282
+ "properties": {
103283
+ "data": {
103284
+ "types": [
103285
+ "string"
103286
+ ]
103287
+ },
103288
+ "buffer": {
103289
+ "types": [
103290
+ "GpuBuffer"
103291
+ ]
103292
+ },
103293
+ "stride": {
103294
+ "types": [
103295
+ "number"
103296
+ ]
103297
+ },
103298
+ "radius": {
103299
+ "types": [
103300
+ "number"
103301
+ ]
103302
+ },
103303
+ "palette": {
103304
+ "types": [
103305
+ "array"
103306
+ ],
103307
+ "items": {
103308
+ "types": [
103309
+ "string"
103310
+ ]
103311
+ }
103312
+ }
103313
+ },
103314
+ "propertyRequired": [
103315
+ "stride",
103316
+ "radius",
103317
+ "palette"
103318
+ ]
103319
+ },
103234
103320
  "constraints": {
103235
103321
  "types": [
103236
103322
  "array"
@@ -104190,7 +104276,7 @@
104190
104276
  "types": [
104191
104277
  "array"
104192
104278
  ],
104193
- "description": "Top-right status chip row, forwarded to LearningCanvas verbatim.",
104279
+ "description": "Top-right status chip row (the LearningCanvas vocabulary).",
104194
104280
  "items": {
104195
104281
  "types": [
104196
104282
  "object"
@@ -104223,7 +104309,7 @@
104223
104309
  "types": [
104224
104310
  "array"
104225
104311
  ],
104226
- "description": "Inset sparkline panels, forwarded to LearningCanvas verbatim.",
104312
+ "description": "Inset sparkline panels (the LearningCanvas vocabulary).",
104227
104313
  "items": {
104228
104314
  "types": [
104229
104315
  "object"
@@ -115119,7 +115205,7 @@
115119
115205
  "types": [
115120
115206
  "array"
115121
115207
  ],
115122
- "description": "Consumer-declared effect vocabulary — one row per fx `type` (look + recipe). Unknown types fall back to a neutral spark burst.",
115208
+ "description": "Consumer-declared effect vocabulary — one row per fx `type` (look, recipe and motion). An item whose `type` has no row draws only from its own fields, and a missing required field is a typed error.",
115123
115209
  "items": {
115124
115210
  "types": [
115125
115211
  "object"
@@ -115220,7 +115306,11 @@
115220
115306
  }
115221
115307
  },
115222
115308
  "required": [
115223
- "type"
115309
+ "type",
115310
+ "gravity",
115311
+ "vx",
115312
+ "vy",
115313
+ "vz"
115224
115314
  ]
115225
115315
  }
115226
115316
  },