@almadar/core 10.89.0 → 10.91.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 (36) hide show
  1. package/dist/builders.d.ts +3 -3
  2. package/dist/builders.js +11 -3
  3. package/dist/builders.js.map +1 -1
  4. package/dist/{effect-CdLBg9zL.d.ts → effect-Bt8vKHwd.d.ts} +66 -42
  5. package/dist/{entityAccess-BmZHpQUv.d.ts → entityAccess-BdDX85rM.d.ts} +1 -1
  6. package/dist/factory/index.d.ts +4 -4
  7. package/dist/factory/index.js +662 -49
  8. package/dist/factory/index.js.map +1 -1
  9. package/dist/factory-runtime/index.d.ts +3 -3
  10. package/dist/factory-runtime/index.js +11 -3
  11. package/dist/factory-runtime/index.js.map +1 -1
  12. package/dist/i18n/index.js +12 -0
  13. package/dist/i18n/index.js.map +1 -1
  14. package/dist/{index-CV_iM5Cm.d.ts → index-rOBf1Oag.d.ts} +83 -6
  15. package/dist/index.d.ts +34 -12
  16. package/dist/index.js +975 -57
  17. package/dist/index.js.map +1 -1
  18. package/dist/mock/index.d.ts +60 -5
  19. package/dist/mock/index.js +35 -4
  20. package/dist/mock/index.js.map +1 -1
  21. package/dist/patterns/component-mapping.json +6 -1
  22. package/dist/patterns/event-contracts.json +1 -1
  23. package/dist/patterns/index.d.ts +1875 -53
  24. package/dist/patterns/index.js +930 -51
  25. package/dist/patterns/index.js.map +1 -1
  26. package/dist/patterns/integrators-registry.json +264 -1
  27. package/dist/patterns/patterns-registry.json +654 -47
  28. package/dist/patterns/registry.json +654 -47
  29. package/dist/patterns/services-registry.json +284 -1
  30. package/dist/{schema-DYC_RnBX.d.ts → schema-ovDTDQz9.d.ts} +495 -323
  31. package/dist/{trait-DmWdtKlP.d.ts → trait-C3e3btfn.d.ts} +98 -55
  32. package/dist/types/index.d.ts +5 -5
  33. package/dist/types/index.js +13 -7
  34. package/dist/types/index.js.map +1 -1
  35. package/dist/{types-DdK77hq2.d.ts → types-rh0naR6C.d.ts} +2 -2
  36. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "1.0.0",
3
- "exportedAt": "2026-09-08T23:56:00.442Z",
3
+ "exportedAt": "2026-09-12T07:27:39.835Z",
4
4
  "patterns": {
5
5
  "entity-table": {
6
6
  "type": "entity-table",
@@ -4301,7 +4301,10 @@
4301
4301
  "1:1",
4302
4302
  "16:9",
4303
4303
  "5:7",
4304
- "8:1"
4304
+ "8:1",
4305
+ "4:1",
4306
+ "5:3",
4307
+ "1:2"
4305
4308
  ]
4306
4309
  },
4307
4310
  "atlas": {
@@ -4461,7 +4464,10 @@
4461
4464
  "1:1",
4462
4465
  "16:9",
4463
4466
  "5:7",
4464
- "8:1"
4467
+ "8:1",
4468
+ "4:1",
4469
+ "5:3",
4470
+ "1:2"
4465
4471
  ]
4466
4472
  },
4467
4473
  "atlas": {
@@ -7495,6 +7501,7 @@
7495
7501
  "button": {
7496
7502
  "type": "button",
7497
7503
  "category": "component",
7504
+ "sourceFile": "components/core/atoms/Button.tsx",
7498
7505
  "tier": "atoms",
7499
7506
  "family": "core",
7500
7507
  "description": "Clickable button that emits events",
@@ -7639,7 +7646,10 @@
7639
7646
  "1:1",
7640
7647
  "16:9",
7641
7648
  "5:7",
7642
- "8:1"
7649
+ "8:1",
7650
+ "4:1",
7651
+ "5:3",
7652
+ "1:2"
7643
7653
  ]
7644
7654
  },
7645
7655
  "atlas": {
@@ -7681,7 +7691,8 @@
7681
7691
  "object"
7682
7692
  ],
7683
7693
  "description": "Payload to include with the action event",
7684
- "payloadFor": "action"
7694
+ "payloadFor": "action",
7695
+ "eventPayloadBrand": true
7685
7696
  },
7686
7697
  "label": {
7687
7698
  "types": [
@@ -7706,6 +7717,7 @@
7706
7717
  "badge": {
7707
7718
  "type": "badge",
7708
7719
  "category": "component",
7720
+ "sourceFile": "components/core/atoms/Badge.tsx",
7709
7721
  "tier": "atoms",
7710
7722
  "family": "core",
7711
7723
  "description": "Small label for status or count",
@@ -7837,7 +7849,10 @@
7837
7849
  "1:1",
7838
7850
  "16:9",
7839
7851
  "5:7",
7840
- "8:1"
7852
+ "8:1",
7853
+ "4:1",
7854
+ "5:3",
7855
+ "1:2"
7841
7856
  ]
7842
7857
  },
7843
7858
  "atlas": {
@@ -8337,6 +8352,7 @@
8337
8352
  "input": {
8338
8353
  "type": "input",
8339
8354
  "category": "component",
8355
+ "sourceFile": "components/core/atoms/Input.tsx",
8340
8356
  "tier": "atoms",
8341
8357
  "family": "core",
8342
8358
  "description": "Text input field",
@@ -8505,7 +8521,15 @@
8505
8521
  "function",
8506
8522
  "string"
8507
8523
  ],
8508
- "description": "onChange handler or declarative event key for trait dispatch"
8524
+ "description": "onChange handler or declarative event key for trait dispatch",
8525
+ "kind": "event-ref",
8526
+ "emitPayloadSchema": [
8527
+ {
8528
+ "name": "_payload",
8529
+ "type": "object",
8530
+ "required": false
8531
+ }
8532
+ ]
8509
8533
  }
8510
8534
  }
8511
8535
  },
@@ -8558,13 +8582,22 @@
8558
8582
  "function",
8559
8583
  "string"
8560
8584
  ],
8561
- "description": "onChange handler or declarative event key for trait dispatch"
8585
+ "description": "onChange handler or declarative event key for trait dispatch",
8586
+ "kind": "event-ref",
8587
+ "emitPayloadSchema": [
8588
+ {
8589
+ "name": "value",
8590
+ "type": "string",
8591
+ "required": true
8592
+ }
8593
+ ]
8562
8594
  }
8563
8595
  }
8564
8596
  },
8565
8597
  "select": {
8566
8598
  "type": "select",
8567
8599
  "category": "component",
8600
+ "sourceFile": "components/core/atoms/Select.tsx",
8568
8601
  "tier": "atoms",
8569
8602
  "family": "core",
8570
8603
  "description": "Dropdown select input",
@@ -8728,14 +8761,52 @@
8728
8761
  "function",
8729
8762
  "string"
8730
8763
  ],
8731
- "description": "onChange handler (native ChangeEvent) or declarative event key for trait dispatch"
8764
+ "description": "onChange handler (native ChangeEvent) or declarative event key for trait dispatch",
8765
+ "kind": "event-ref",
8766
+ "emitPayloadSchema": [
8767
+ {
8768
+ "name": "value",
8769
+ "type": "string",
8770
+ "required": true,
8771
+ "schema": {
8772
+ "types": [
8773
+ "string",
8774
+ "array"
8775
+ ],
8776
+ "items": {
8777
+ "types": [
8778
+ "string"
8779
+ ]
8780
+ }
8781
+ }
8782
+ }
8783
+ ]
8732
8784
  },
8733
8785
  "onValueChange": {
8734
8786
  "types": [
8735
8787
  "function",
8736
8788
  "string"
8737
8789
  ],
8738
- "description": "Value-based change: a React callback (internal use) OR a declarative event key that emits `{ value }` on the bus (render-ui / lolo authoring). Mirrors the `onChange` handler|event convention so it's an event-emitting prop, not a bare callback."
8790
+ "description": "Value-based change: a React callback (internal use) OR a declarative event key that emits `{ value }` on the bus (render-ui / lolo authoring). Mirrors the `onChange` handler|event convention so it's an event-emitting prop, not a bare callback.",
8791
+ "kind": "event-ref",
8792
+ "emitPayloadSchema": [
8793
+ {
8794
+ "name": "value",
8795
+ "type": "string",
8796
+ "required": true,
8797
+ "schema": {
8798
+ "types": [
8799
+ "string",
8800
+ "array"
8801
+ ],
8802
+ "items": {
8803
+ "types": [
8804
+ "string"
8805
+ ]
8806
+ }
8807
+ }
8808
+ }
8809
+ ]
8739
8810
  }
8740
8811
  }
8741
8812
  },
@@ -8781,7 +8852,15 @@
8781
8852
  "function",
8782
8853
  "string"
8783
8854
  ],
8784
- "description": "onChange handler or declarative event key for trait dispatch"
8855
+ "description": "onChange handler or declarative event key for trait dispatch",
8856
+ "kind": "event-ref",
8857
+ "emitPayloadSchema": [
8858
+ {
8859
+ "name": "checked",
8860
+ "type": "boolean",
8861
+ "required": true
8862
+ }
8863
+ ]
8785
8864
  }
8786
8865
  }
8787
8866
  },
@@ -11282,6 +11361,7 @@
11282
11361
  "input-group": {
11283
11362
  "type": "input-group",
11284
11363
  "category": "form",
11364
+ "sourceFile": "components/core/molecules/InputGroup.tsx",
11285
11365
  "tier": "molecules",
11286
11366
  "family": "core",
11287
11367
  "description": "InputGroup Molecule Component A component for grouping input with addons (icons, buttons, text). Uses Input, Button, Icon, and Typography atoms.",
@@ -11442,7 +11522,15 @@
11442
11522
  "function",
11443
11523
  "string"
11444
11524
  ],
11445
- "description": "onChange handler or declarative event key for trait dispatch"
11525
+ "description": "onChange handler or declarative event key for trait dispatch",
11526
+ "kind": "event-ref",
11527
+ "emitPayloadSchema": [
11528
+ {
11529
+ "name": "_payload",
11530
+ "type": "object",
11531
+ "required": false
11532
+ }
11533
+ ]
11446
11534
  },
11447
11535
  "leftAddon": {
11448
11536
  "types": [
@@ -13740,6 +13828,7 @@
13740
13828
  "game-shell": {
13741
13829
  "type": "game-shell",
13742
13830
  "category": "game",
13831
+ "sourceFile": "components/game/templates/GameShell.tsx",
13743
13832
  "tier": "templates",
13744
13833
  "family": "game",
13745
13834
  "description": "GameShell A full-screen layout wrapper for game applications. Replaces DashboardLayout for game clients — no sidebar nav, just full-viewport rendering with an optional HUD overlay bar. Used as a React Router layout route element: <Route element={<GameShell appName=\"TraitWars\" />}> <Route index element={<WorldMapPage />} /> ... </Route>",
@@ -13865,7 +13954,10 @@
13865
13954
  "1:1",
13866
13955
  "16:9",
13867
13956
  "5:7",
13868
- "8:1"
13957
+ "8:1",
13958
+ "4:1",
13959
+ "5:3",
13960
+ "1:2"
13869
13961
  ]
13870
13962
  },
13871
13963
  "atlas": {
@@ -13960,7 +14052,10 @@
13960
14052
  "1:1",
13961
14053
  "16:9",
13962
14054
  "5:7",
13963
- "8:1"
14055
+ "8:1",
14056
+ "4:1",
14057
+ "5:3",
14058
+ "1:2"
13964
14059
  ]
13965
14060
  },
13966
14061
  "atlas": {
@@ -28228,6 +28323,7 @@
28228
28323
  "choice-button": {
28229
28324
  "type": "choice-button",
28230
28325
  "category": "game",
28326
+ "sourceFile": "components/game/atoms/ChoiceButton.tsx",
28231
28327
  "tier": "atoms",
28232
28328
  "family": "game",
28233
28329
  "description": "ChoiceButton component",
@@ -28317,7 +28413,10 @@
28317
28413
  "1:1",
28318
28414
  "16:9",
28319
28415
  "5:7",
28320
- "8:1"
28416
+ "8:1",
28417
+ "4:1",
28418
+ "5:3",
28419
+ "1:2"
28321
28420
  ]
28322
28421
  },
28323
28422
  "atlas": {
@@ -28407,6 +28506,7 @@
28407
28506
  "control-button": {
28408
28507
  "type": "control-button",
28409
28508
  "category": "game",
28509
+ "sourceFile": "components/game/atoms/ControlButton.tsx",
28410
28510
  "tier": "atoms",
28411
28511
  "family": "game",
28412
28512
  "description": "ControlButton component",
@@ -28482,7 +28582,10 @@
28482
28582
  "1:1",
28483
28583
  "16:9",
28484
28584
  "5:7",
28485
- "8:1"
28585
+ "8:1",
28586
+ "4:1",
28587
+ "5:3",
28588
+ "1:2"
28486
28589
  ]
28487
28590
  },
28488
28591
  "atlas": {
@@ -28599,6 +28702,7 @@
28599
28702
  "dialogue-bubble": {
28600
28703
  "type": "dialogue-bubble",
28601
28704
  "category": "game",
28705
+ "sourceFile": "components/game/atoms/DialogueBubble.tsx",
28602
28706
  "tier": "atoms",
28603
28707
  "family": "game",
28604
28708
  "description": "DialogueBubble component",
@@ -28689,7 +28793,10 @@
28689
28793
  "1:1",
28690
28794
  "16:9",
28691
28795
  "5:7",
28692
- "8:1"
28796
+ "8:1",
28797
+ "4:1",
28798
+ "5:3",
28799
+ "1:2"
28693
28800
  ]
28694
28801
  },
28695
28802
  "atlas": {
@@ -28760,6 +28867,7 @@
28760
28867
  "health-bar": {
28761
28868
  "type": "health-bar",
28762
28869
  "category": "game",
28870
+ "sourceFile": "components/game/atoms/HealthBar.tsx",
28763
28871
  "tier": "atoms",
28764
28872
  "family": "game",
28765
28873
  "description": "HealthBar component",
@@ -28908,7 +29016,10 @@
28908
29016
  "1:1",
28909
29017
  "16:9",
28910
29018
  "5:7",
28911
- "8:1"
29019
+ "8:1",
29020
+ "4:1",
29021
+ "5:3",
29022
+ "1:2"
28912
29023
  ]
28913
29024
  },
28914
29025
  "atlas": {
@@ -29003,7 +29114,10 @@
29003
29114
  "1:1",
29004
29115
  "16:9",
29005
29116
  "5:7",
29006
- "8:1"
29117
+ "8:1",
29118
+ "4:1",
29119
+ "5:3",
29120
+ "1:2"
29007
29121
  ]
29008
29122
  },
29009
29123
  "atlas": {
@@ -29038,6 +29152,7 @@
29038
29152
  "score-display": {
29039
29153
  "type": "score-display",
29040
29154
  "category": "game",
29155
+ "sourceFile": "components/game/atoms/ScoreDisplay.tsx",
29041
29156
  "tier": "atoms",
29042
29157
  "family": "game",
29043
29158
  "description": "ScoreDisplay component",
@@ -29113,7 +29228,10 @@
29113
29228
  "1:1",
29114
29229
  "16:9",
29115
29230
  "5:7",
29116
- "8:1"
29231
+ "8:1",
29232
+ "4:1",
29233
+ "5:3",
29234
+ "1:2"
29117
29235
  ]
29118
29236
  },
29119
29237
  "atlas": {
@@ -29200,6 +29318,7 @@
29200
29318
  "timer-display": {
29201
29319
  "type": "timer-display",
29202
29320
  "category": "game",
29321
+ "sourceFile": "components/game/atoms/TimerDisplay.tsx",
29203
29322
  "tier": "atoms",
29204
29323
  "family": "game",
29205
29324
  "description": "TimerDisplay component",
@@ -29326,7 +29445,10 @@
29326
29445
  "1:1",
29327
29446
  "16:9",
29328
29447
  "5:7",
29329
- "8:1"
29448
+ "8:1",
29449
+ "4:1",
29450
+ "5:3",
29451
+ "1:2"
29330
29452
  ]
29331
29453
  },
29332
29454
  "atlas": {
@@ -31596,6 +31718,7 @@
31596
31718
  "game-hud": {
31597
31719
  "type": "game-hud",
31598
31720
  "category": "game",
31721
+ "sourceFile": "components/game/molecules/GameHud.tsx",
31599
31722
  "tier": "molecules",
31600
31723
  "family": "game",
31601
31724
  "description": "GameHud component",
@@ -31686,7 +31809,10 @@
31686
31809
  "1:1",
31687
31810
  "16:9",
31688
31811
  "5:7",
31689
- "8:1"
31812
+ "8:1",
31813
+ "4:1",
31814
+ "5:3",
31815
+ "1:2"
31690
31816
  ]
31691
31817
  },
31692
31818
  "atlas": {
@@ -31780,7 +31906,10 @@
31780
31906
  "1:1",
31781
31907
  "16:9",
31782
31908
  "5:7",
31783
- "8:1"
31909
+ "8:1",
31910
+ "4:1",
31911
+ "5:3",
31912
+ "1:2"
31784
31913
  ]
31785
31914
  },
31786
31915
  "atlas": {
@@ -31937,7 +32066,10 @@
31937
32066
  "1:1",
31938
32067
  "16:9",
31939
32068
  "5:7",
31940
- "8:1"
32069
+ "8:1",
32070
+ "4:1",
32071
+ "5:3",
32072
+ "1:2"
31941
32073
  ]
31942
32074
  },
31943
32075
  "atlas": {
@@ -32031,7 +32163,10 @@
32031
32163
  "1:1",
32032
32164
  "16:9",
32033
32165
  "5:7",
32034
- "8:1"
32166
+ "8:1",
32167
+ "4:1",
32168
+ "5:3",
32169
+ "1:2"
32035
32170
  ]
32036
32171
  },
32037
32172
  "atlas": {
@@ -32220,7 +32355,10 @@
32220
32355
  "1:1",
32221
32356
  "16:9",
32222
32357
  "5:7",
32223
- "8:1"
32358
+ "8:1",
32359
+ "4:1",
32360
+ "5:3",
32361
+ "1:2"
32224
32362
  ]
32225
32363
  },
32226
32364
  "atlas": {
@@ -32567,7 +32705,10 @@
32567
32705
  "1:1",
32568
32706
  "16:9",
32569
32707
  "5:7",
32570
- "8:1"
32708
+ "8:1",
32709
+ "4:1",
32710
+ "5:3",
32711
+ "1:2"
32571
32712
  ]
32572
32713
  },
32573
32714
  "atlas": {
@@ -32608,6 +32749,7 @@
32608
32749
  "stat-badge": {
32609
32750
  "type": "stat-badge",
32610
32751
  "category": "game",
32752
+ "sourceFile": "components/game/molecules/StatBadge.tsx",
32611
32753
  "tier": "molecules",
32612
32754
  "family": "game",
32613
32755
  "description": "StatBadge component",
@@ -32683,7 +32825,10 @@
32683
32825
  "1:1",
32684
32826
  "16:9",
32685
32827
  "5:7",
32686
- "8:1"
32828
+ "8:1",
32829
+ "4:1",
32830
+ "5:3",
32831
+ "1:2"
32687
32832
  ]
32688
32833
  },
32689
32834
  "atlas": {
@@ -32778,7 +32923,10 @@
32778
32923
  "1:1",
32779
32924
  "16:9",
32780
32925
  "5:7",
32781
- "8:1"
32926
+ "8:1",
32927
+ "4:1",
32928
+ "5:3",
32929
+ "1:2"
32782
32930
  ]
32783
32931
  },
32784
32932
  "atlas": {
@@ -33304,6 +33452,7 @@
33304
33452
  "game-audio-toggle": {
33305
33453
  "type": "game-audio-toggle",
33306
33454
  "category": "game",
33455
+ "sourceFile": "components/game/atoms/GameAudioToggle.tsx",
33307
33456
  "tier": "atoms",
33308
33457
  "family": "game",
33309
33458
  "description": "GameAudioToggle component",
@@ -33435,7 +33584,10 @@
33435
33584
  "1:1",
33436
33585
  "16:9",
33437
33586
  "5:7",
33438
- "8:1"
33587
+ "8:1",
33588
+ "4:1",
33589
+ "5:3",
33590
+ "1:2"
33439
33591
  ]
33440
33592
  },
33441
33593
  "atlas": {
@@ -33530,7 +33682,10 @@
33530
33682
  "1:1",
33531
33683
  "16:9",
33532
33684
  "5:7",
33533
- "8:1"
33685
+ "8:1",
33686
+ "4:1",
33687
+ "5:3",
33688
+ "1:2"
33534
33689
  ]
33535
33690
  },
33536
33691
  "atlas": {
@@ -33579,6 +33734,7 @@
33579
33734
  "trait-slot": {
33580
33735
  "type": "trait-slot",
33581
33736
  "category": "game",
33737
+ "sourceFile": "components/game/molecules/TraitSlot.tsx",
33582
33738
  "tier": "molecules",
33583
33739
  "family": "game",
33584
33740
  "description": "Event Contract: Emits: UI:CLICK Emits: UI:REMOVE",
@@ -33691,7 +33847,10 @@
33691
33847
  "1:1",
33692
33848
  "16:9",
33693
33849
  "5:7",
33694
- "8:1"
33850
+ "8:1",
33851
+ "4:1",
33852
+ "5:3",
33853
+ "1:2"
33695
33854
  ]
33696
33855
  },
33697
33856
  "atlas": {
@@ -33934,7 +34093,10 @@
33934
34093
  "1:1",
33935
34094
  "16:9",
33936
34095
  "5:7",
33937
- "8:1"
34096
+ "8:1",
34097
+ "4:1",
34098
+ "5:3",
34099
+ "1:2"
33938
34100
  ]
33939
34101
  },
33940
34102
  "atlas": {
@@ -34111,7 +34273,10 @@
34111
34273
  "1:1",
34112
34274
  "16:9",
34113
34275
  "5:7",
34114
- "8:1"
34276
+ "8:1",
34277
+ "4:1",
34278
+ "5:3",
34279
+ "1:2"
34115
34280
  ]
34116
34281
  },
34117
34282
  "atlas": {
@@ -34337,7 +34502,10 @@
34337
34502
  "1:1",
34338
34503
  "16:9",
34339
34504
  "5:7",
34340
- "8:1"
34505
+ "8:1",
34506
+ "4:1",
34507
+ "5:3",
34508
+ "1:2"
34341
34509
  ]
34342
34510
  },
34343
34511
  "atlas": {
@@ -34532,6 +34700,7 @@
34532
34700
  "action-palette": {
34533
34701
  "type": "action-palette",
34534
34702
  "category": "game",
34703
+ "sourceFile": "components/game/molecules/ActionPalette.tsx",
34535
34704
  "tier": "molecules",
34536
34705
  "family": "game",
34537
34706
  "description": "ActionPalette Component Grid of draggable ActionTile components for the Sequencer tier. Kids pick from these to build their sequence.",
@@ -34642,7 +34811,10 @@
34642
34811
  "1:1",
34643
34812
  "16:9",
34644
34813
  "5:7",
34645
- "8:1"
34814
+ "8:1",
34815
+ "4:1",
34816
+ "5:3",
34817
+ "1:2"
34646
34818
  ]
34647
34819
  },
34648
34820
  "atlas": {
@@ -34830,6 +35002,7 @@
34830
35002
  "action-tile": {
34831
35003
  "type": "action-tile",
34832
35004
  "category": "game",
35005
+ "sourceFile": "components/game/molecules/ActionTile.tsx",
34833
35006
  "tier": "molecules",
34834
35007
  "family": "game",
34835
35008
  "description": "ActionTile Component A draggable action tile for the Sequencer tier (ages 5-8). Kids drag these from the ActionPalette into SequenceBar slots. Sets SlotItemData on dataTransfer for TraitSlot compatibility.",
@@ -35042,7 +35215,10 @@
35042
35215
  "1:1",
35043
35216
  "16:9",
35044
35217
  "5:7",
35045
- "8:1"
35218
+ "8:1",
35219
+ "4:1",
35220
+ "5:3",
35221
+ "1:2"
35046
35222
  ]
35047
35223
  },
35048
35224
  "atlas": {
@@ -35205,6 +35381,7 @@
35205
35381
  "sequence-bar": {
35206
35382
  "type": "sequence-bar",
35207
35383
  "category": "game",
35384
+ "sourceFile": "components/game/molecules/SequenceBar.tsx",
35208
35385
  "tier": "molecules",
35209
35386
  "family": "game",
35210
35387
  "description": "SequenceBar Component A row of TraitSlot components forming the action sequence for the Sequencer tier (ages 5-8). Kids drag ActionTiles from the palette into these slots to build their sequence.",
@@ -35315,7 +35492,10 @@
35315
35492
  "1:1",
35316
35493
  "16:9",
35317
35494
  "5:7",
35318
- "8:1"
35495
+ "8:1",
35496
+ "4:1",
35497
+ "5:3",
35498
+ "1:2"
35319
35499
  ]
35320
35500
  },
35321
35501
  "atlas": {
@@ -35543,7 +35723,10 @@
35543
35723
  "1:1",
35544
35724
  "16:9",
35545
35725
  "5:7",
35546
- "8:1"
35726
+ "8:1",
35727
+ "4:1",
35728
+ "5:3",
35729
+ "1:2"
35547
35730
  ]
35548
35731
  },
35549
35732
  "atlas": {
@@ -38592,6 +38775,7 @@
38592
38775
  "canvas-2d": {
38593
38776
  "type": "canvas-2d",
38594
38777
  "category": "game",
38778
+ "sourceFile": "components/game/molecules/Canvas2D.tsx",
38595
38779
  "tier": "molecules",
38596
38780
  "family": "game",
38597
38781
  "description": "Canvas2D component",
@@ -38738,7 +38922,10 @@
38738
38922
  "1:1",
38739
38923
  "16:9",
38740
38924
  "5:7",
38741
- "8:1"
38925
+ "8:1",
38926
+ "4:1",
38927
+ "5:3",
38928
+ "1:2"
38742
38929
  ]
38743
38930
  },
38744
38931
  "atlas": {
@@ -39050,6 +39237,7 @@
39050
39237
  "control-grid": {
39051
39238
  "type": "control-grid",
39052
39239
  "category": "game",
39240
+ "sourceFile": "components/game/molecules/ControlGrid.tsx",
39053
39241
  "tier": "molecules",
39054
39242
  "family": "game",
39055
39243
  "description": "ControlGrid component",
@@ -39161,7 +39349,10 @@
39161
39349
  "1:1",
39162
39350
  "16:9",
39163
39351
  "5:7",
39164
- "8:1"
39352
+ "8:1",
39353
+ "4:1",
39354
+ "5:3",
39355
+ "1:2"
39165
39356
  ]
39166
39357
  },
39167
39358
  "atlas": {
@@ -39390,7 +39581,10 @@
39390
39581
  "1:1",
39391
39582
  "16:9",
39392
39583
  "5:7",
39393
- "8:1"
39584
+ "8:1",
39585
+ "4:1",
39586
+ "5:3",
39587
+ "1:2"
39394
39588
  ]
39395
39589
  },
39396
39590
  "atlas": {
@@ -39461,6 +39655,7 @@
39461
39655
  "game-icon": {
39462
39656
  "type": "game-icon",
39463
39657
  "category": "game",
39658
+ "sourceFile": "components/core/atoms/GameIcon.tsx",
39464
39659
  "tier": "atoms",
39465
39660
  "family": "core",
39466
39661
  "description": "GameIcon component",
@@ -39536,7 +39731,10 @@
39536
39731
  "1:1",
39537
39732
  "16:9",
39538
39733
  "5:7",
39539
- "8:1"
39734
+ "8:1",
39735
+ "4:1",
39736
+ "5:3",
39737
+ "1:2"
39540
39738
  ]
39541
39739
  },
39542
39740
  "atlas": {
@@ -47834,6 +48032,7 @@
47834
48032
  "draw-sprite": {
47835
48033
  "type": "draw-sprite",
47836
48034
  "category": "game",
48035
+ "sourceFile": "components/game/atoms/DrawSprite.tsx",
47837
48036
  "tier": "atoms",
47838
48037
  "family": "game",
47839
48038
  "description": "DrawSprite component",
@@ -47955,7 +48154,10 @@
47955
48154
  "1:1",
47956
48155
  "16:9",
47957
48156
  "5:7",
47958
- "8:1"
48157
+ "8:1",
48158
+ "4:1",
48159
+ "5:3",
48160
+ "1:2"
47959
48161
  ]
47960
48162
  },
47961
48163
  "atlas": {
@@ -48939,6 +49141,7 @@
48939
49141
  "draw-sprite-layer": {
48940
49142
  "type": "draw-sprite-layer",
48941
49143
  "category": "game",
49144
+ "sourceFile": "components/game/molecules/DrawSpriteLayer.tsx",
48942
49145
  "tier": "molecules",
48943
49146
  "family": "game",
48944
49147
  "description": "DrawSpriteLayer component",
@@ -49081,7 +49284,10 @@
49081
49284
  "1:1",
49082
49285
  "16:9",
49083
49286
  "5:7",
49084
- "8:1"
49287
+ "8:1",
49288
+ "4:1",
49289
+ "5:3",
49290
+ "1:2"
49085
49291
  ]
49086
49292
  },
49087
49293
  "atlas": {
@@ -49387,6 +49593,7 @@
49387
49593
  "canvas": {
49388
49594
  "type": "canvas",
49389
49595
  "category": "game",
49596
+ "sourceFile": "components/game/molecules/Canvas.tsx",
49390
49597
  "tier": "molecules",
49391
49598
  "family": "game",
49392
49599
  "description": "Canvas component",
@@ -49626,7 +49833,10 @@
49626
49833
  "1:1",
49627
49834
  "16:9",
49628
49835
  "5:7",
49629
- "8:1"
49836
+ "8:1",
49837
+ "4:1",
49838
+ "5:3",
49839
+ "1:2"
49630
49840
  ]
49631
49841
  },
49632
49842
  "atlas": {
@@ -52059,6 +52269,7 @@
52059
52269
  "draw-fx-layer": {
52060
52270
  "type": "draw-fx-layer",
52061
52271
  "category": "game",
52272
+ "sourceFile": "components/game/molecules/DrawFxLayer.tsx",
52062
52273
  "tier": "molecules",
52063
52274
  "family": "game",
52064
52275
  "description": "DrawFxLayer component",
@@ -52434,7 +52645,10 @@
52434
52645
  "1:1",
52435
52646
  "16:9",
52436
52647
  "5:7",
52437
- "8:1"
52648
+ "8:1",
52649
+ "4:1",
52650
+ "5:3",
52651
+ "1:2"
52438
52652
  ]
52439
52653
  },
52440
52654
  "atlas": {
@@ -53725,6 +53939,399 @@
53725
53939
  "default": "replace"
53726
53940
  }
53727
53941
  }
53942
+ },
53943
+ "draw-skinned-mesh": {
53944
+ "type": "draw-skinned-mesh",
53945
+ "category": "game",
53946
+ "sourceFile": "components/game/atoms/DrawSkinnedMesh.tsx",
53947
+ "tier": "atoms",
53948
+ "family": "game",
53949
+ "description": "DrawSkinnedMesh component",
53950
+ "suggestedFor": [
53951
+ "draw",
53952
+ "skinned",
53953
+ "mesh",
53954
+ "draw skinned mesh"
53955
+ ],
53956
+ "typicalSize": "small",
53957
+ "propsSchema": {
53958
+ "id": {
53959
+ "types": [
53960
+ "string"
53961
+ ],
53962
+ "description": "Optional source-tagged hit-test handle — the host indexes the drawable's ScenePos→id so a pointer/raycast at that cell resolves to this id (unit/entity click). No id → the host emits only the coordinate (tile click)."
53963
+ },
53964
+ "type": {
53965
+ "types": [
53966
+ "string"
53967
+ ],
53968
+ "description": "type prop",
53969
+ "required": true,
53970
+ "enumValues": [
53971
+ "draw-skinned-mesh"
53972
+ ]
53973
+ },
53974
+ "position": {
53975
+ "types": [
53976
+ "object"
53977
+ ],
53978
+ "description": "Logical scene position; mesh local coords are world units relative to its projected top-left.",
53979
+ "required": true,
53980
+ "properties": {
53981
+ "x": {
53982
+ "types": [
53983
+ "number"
53984
+ ]
53985
+ },
53986
+ "y": {
53987
+ "types": [
53988
+ "number"
53989
+ ]
53990
+ },
53991
+ "z": {
53992
+ "types": [
53993
+ "number"
53994
+ ]
53995
+ }
53996
+ },
53997
+ "propertyRequired": [
53998
+ "x",
53999
+ "y"
54000
+ ],
54001
+ "scenePos": true
54002
+ },
54003
+ "asset": {
54004
+ "types": [
54005
+ "object"
54006
+ ],
54007
+ "description": "The texture the mesh UVs cut into.",
54008
+ "required": true,
54009
+ "properties": {
54010
+ "url": {
54011
+ "types": [
54012
+ "asset"
54013
+ ]
54014
+ },
54015
+ "role": {
54016
+ "types": [
54017
+ "string"
54018
+ ]
54019
+ },
54020
+ "category": {
54021
+ "types": [
54022
+ "string"
54023
+ ]
54024
+ },
54025
+ "animations": {
54026
+ "types": [
54027
+ "array"
54028
+ ],
54029
+ "items": {
54030
+ "types": [
54031
+ "string"
54032
+ ]
54033
+ }
54034
+ },
54035
+ "style": {
54036
+ "types": [
54037
+ "string"
54038
+ ],
54039
+ "enumValues": [
54040
+ "pixel",
54041
+ "vector",
54042
+ "hd",
54043
+ "1-bit",
54044
+ "isometric"
54045
+ ]
54046
+ },
54047
+ "variant": {
54048
+ "types": [
54049
+ "string"
54050
+ ]
54051
+ },
54052
+ "dimension": {
54053
+ "types": [
54054
+ "string"
54055
+ ],
54056
+ "enumValues": [
54057
+ "2d",
54058
+ "3d"
54059
+ ]
54060
+ },
54061
+ "aspect": {
54062
+ "types": [
54063
+ "string"
54064
+ ],
54065
+ "enumValues": [
54066
+ "1:1",
54067
+ "16:9",
54068
+ "5:7",
54069
+ "8:1",
54070
+ "4:1",
54071
+ "5:3",
54072
+ "1:2"
54073
+ ]
54074
+ },
54075
+ "atlas": {
54076
+ "types": [
54077
+ "asset"
54078
+ ]
54079
+ },
54080
+ "sprite": {
54081
+ "types": [
54082
+ "string"
54083
+ ]
54084
+ },
54085
+ "name": {
54086
+ "types": [
54087
+ "string"
54088
+ ]
54089
+ },
54090
+ "thumbnailUrl": {
54091
+ "types": [
54092
+ "string"
54093
+ ]
54094
+ }
54095
+ },
54096
+ "propertyRequired": [
54097
+ "url",
54098
+ "role",
54099
+ "category"
54100
+ ]
54101
+ },
54102
+ "mesh": {
54103
+ "types": [
54104
+ "object"
54105
+ ],
54106
+ "description": "Inline bind mesh; wins over `meshUrl`.",
54107
+ "properties": {
54108
+ "vertices": {
54109
+ "types": [
54110
+ "array"
54111
+ ],
54112
+ "items": {
54113
+ "types": [
54114
+ "object"
54115
+ ],
54116
+ "properties": {
54117
+ "x": {
54118
+ "types": [
54119
+ "number"
54120
+ ]
54121
+ },
54122
+ "y": {
54123
+ "types": [
54124
+ "number"
54125
+ ]
54126
+ },
54127
+ "u": {
54128
+ "types": [
54129
+ "number"
54130
+ ]
54131
+ },
54132
+ "v": {
54133
+ "types": [
54134
+ "number"
54135
+ ]
54136
+ },
54137
+ "weights": {
54138
+ "types": [
54139
+ "array"
54140
+ ],
54141
+ "items": {
54142
+ "types": [
54143
+ "object"
54144
+ ],
54145
+ "properties": {
54146
+ "bone": {
54147
+ "types": [
54148
+ "number"
54149
+ ]
54150
+ },
54151
+ "w": {
54152
+ "types": [
54153
+ "number"
54154
+ ]
54155
+ }
54156
+ },
54157
+ "required": [
54158
+ "bone",
54159
+ "w"
54160
+ ]
54161
+ }
54162
+ }
54163
+ },
54164
+ "required": [
54165
+ "x",
54166
+ "y",
54167
+ "u",
54168
+ "v",
54169
+ "weights"
54170
+ ]
54171
+ }
54172
+ },
54173
+ "triangles": {
54174
+ "types": [
54175
+ "array"
54176
+ ],
54177
+ "items": {
54178
+ "types": [
54179
+ "array"
54180
+ ],
54181
+ "items": {
54182
+ "types": [
54183
+ "number"
54184
+ ]
54185
+ }
54186
+ }
54187
+ }
54188
+ },
54189
+ "propertyRequired": [
54190
+ "vertices",
54191
+ "triangles"
54192
+ ]
54193
+ },
54194
+ "meshUrl": {
54195
+ "types": [
54196
+ "string"
54197
+ ],
54198
+ "description": "URL of a JSON `SkinMesh` (fetched + cached); used when `mesh` is absent."
54199
+ },
54200
+ "bones": {
54201
+ "types": [
54202
+ "array"
54203
+ ],
54204
+ "description": "The skeleton (bind pose; FK chain via `parent` names). Falls back to the rigbundle's `bones` when empty.",
54205
+ "required": true,
54206
+ "items": {
54207
+ "types": [
54208
+ "object"
54209
+ ],
54210
+ "properties": {
54211
+ "name": {
54212
+ "types": [
54213
+ "string"
54214
+ ]
54215
+ },
54216
+ "parent": {
54217
+ "types": [
54218
+ "string"
54219
+ ]
54220
+ },
54221
+ "pivot": {
54222
+ "types": [
54223
+ "array"
54224
+ ],
54225
+ "items": {
54226
+ "types": [
54227
+ "number"
54228
+ ]
54229
+ }
54230
+ },
54231
+ "tip": {
54232
+ "types": [
54233
+ "array"
54234
+ ],
54235
+ "items": {
54236
+ "types": [
54237
+ "number"
54238
+ ]
54239
+ }
54240
+ }
54241
+ },
54242
+ "required": [
54243
+ "name",
54244
+ "parent",
54245
+ "pivot",
54246
+ "tip"
54247
+ ]
54248
+ }
54249
+ },
54250
+ "pose": {
54251
+ "types": [
54252
+ "object"
54253
+ ],
54254
+ "description": "Static pose (bone name → degrees relative to bind). Overridden by `clip` + `frame`.",
54255
+ "mapValue": {
54256
+ "types": [
54257
+ "number"
54258
+ ]
54259
+ }
54260
+ },
54261
+ "clip": {
54262
+ "types": [
54263
+ "object"
54264
+ ],
54265
+ "description": "Pose animation clip; with `frame`, pose = `frames[frame % frames.length]`.",
54266
+ "properties": {
54267
+ "frames": {
54268
+ "types": [
54269
+ "array"
54270
+ ],
54271
+ "items": {
54272
+ "types": [
54273
+ "object"
54274
+ ],
54275
+ "mapValue": {
54276
+ "types": [
54277
+ "number"
54278
+ ]
54279
+ }
54280
+ }
54281
+ }
54282
+ },
54283
+ "propertyRequired": [
54284
+ "frames"
54285
+ ]
54286
+ },
54287
+ "clipName": {
54288
+ "types": [
54289
+ "string"
54290
+ ],
54291
+ "description": "Named clip inside the rigbundle at `meshUrl` (`clips[clipName].frames`); used when `clip` is absent. Empty/unknown = no clip."
54292
+ },
54293
+ "frame": {
54294
+ "types": [
54295
+ "number"
54296
+ ],
54297
+ "description": "Clip frame counter (host-driven paint clock frame)."
54298
+ },
54299
+ "opacity": {
54300
+ "types": [
54301
+ "number"
54302
+ ],
54303
+ "description": "0..1 opacity."
54304
+ },
54305
+ "weightsOverlay": {
54306
+ "types": [
54307
+ "boolean"
54308
+ ],
54309
+ "description": "Paint per-triangle dominant-bone colors instead of the texture (rig inspection)."
54310
+ },
54311
+ "ghost": {
54312
+ "types": [
54313
+ "object"
54314
+ ],
54315
+ "description": "Onion skin: render the mesh at this clip frame underneath, at this opacity.",
54316
+ "properties": {
54317
+ "frame": {
54318
+ "types": [
54319
+ "number"
54320
+ ]
54321
+ },
54322
+ "opacity": {
54323
+ "types": [
54324
+ "number"
54325
+ ]
54326
+ }
54327
+ },
54328
+ "propertyRequired": [
54329
+ "frame",
54330
+ "opacity"
54331
+ ]
54332
+ }
54333
+ },
54334
+ "drawable": true
53728
54335
  }
53729
54336
  },
53730
54337
  "categories": [