@almadar/patterns 2.46.0 → 2.48.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.
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  // src/patterns-registry.json
2
2
  var patterns_registry_default = {
3
3
  version: "1.0.0",
4
- exportedAt: "2026-06-17T02:56:15.601Z",
4
+ exportedAt: "2026-06-17T11:00:54.689Z",
5
5
  patterns: {
6
6
  "entity-table": {
7
7
  type: "entity-table",
@@ -1805,12 +1805,6 @@ var patterns_registry_default = {
1805
1805
  "message"
1806
1806
  ]
1807
1807
  },
1808
- entity: {
1809
- types: [
1810
- "string"
1811
- ],
1812
- description: "Entity name for schema-driven auto-fetch"
1813
- },
1814
1808
  tabs: {
1815
1809
  types: [
1816
1810
  "array"
@@ -10628,12 +10622,6 @@ var patterns_registry_default = {
10628
10622
  propertyRequired: [
10629
10623
  "message"
10630
10624
  ]
10631
- },
10632
- entity: {
10633
- types: [
10634
- "string"
10635
- ],
10636
- description: "Entity name for schema-driven auto-fetch (closed circuit)"
10637
10625
  }
10638
10626
  }
10639
10627
  },
@@ -10862,12 +10850,6 @@ var patterns_registry_default = {
10862
10850
  propertyRequired: [
10863
10851
  "message"
10864
10852
  ]
10865
- },
10866
- entity: {
10867
- types: [
10868
- "string"
10869
- ],
10870
- description: "Entity name for schema-driven auto-fetch"
10871
10853
  }
10872
10854
  }
10873
10855
  },
@@ -13642,324 +13624,318 @@ var patterns_registry_default = {
13642
13624
  "label"
13643
13625
  ]
13644
13626
  }
13645
- },
13646
- entity: {
13647
- types: [
13648
- "string"
13649
- ],
13650
- description: "Entity name for schema-driven auto-fetch"
13651
- },
13652
- isLoading: {
13653
- types: [
13654
- "boolean"
13655
- ],
13656
- description: "Loading state",
13657
- default: false
13658
- },
13659
- error: {
13660
- types: [
13661
- "object"
13662
- ],
13663
- description: "Error state",
13664
- properties: {
13665
- message: {
13666
- types: [
13667
- "string"
13668
- ]
13669
- },
13670
- name: {
13671
- types: [
13672
- "string"
13673
- ]
13674
- },
13675
- code: {
13676
- types: [
13677
- "string"
13678
- ]
13679
- },
13680
- stack: {
13681
- types: [
13682
- "string"
13683
- ]
13684
- }
13685
- },
13686
- propertyRequired: [
13687
- "message"
13688
- ]
13689
- },
13690
- className: {
13691
- types: [
13692
- "string"
13693
- ],
13694
- description: "Additional CSS classes"
13695
- }
13696
- }
13697
- },
13698
- "graph-canvas": {
13699
- type: "graph-canvas",
13700
- category: "game",
13701
- tier: "molecules",
13702
- family: "core",
13703
- description: "Force-directed graph visualization for node-link data with interactive zoom, pan, and layout",
13704
- suggestedFor: [
13705
- "knowledge graphs",
13706
- "network visualization",
13707
- "relationship mapping",
13708
- "dependency graphs"
13709
- ],
13710
- typicalSize: "large",
13711
- propsSchema: {
13712
- title: {
13713
- types: [
13714
- "string"
13715
- ],
13716
- description: "Graph title"
13717
- },
13718
- nodes: {
13719
- types: [
13720
- "array"
13721
- ],
13722
- description: "Graph nodes",
13723
- items: {
13724
- types: [
13725
- "object"
13726
- ],
13727
- properties: {
13728
- id: {
13729
- types: [
13730
- "string"
13731
- ]
13732
- },
13733
- label: {
13734
- types: [
13735
- "string"
13736
- ]
13737
- },
13738
- group: {
13739
- types: [
13740
- "string"
13741
- ]
13742
- },
13743
- color: {
13744
- types: [
13745
- "string"
13746
- ]
13747
- },
13748
- size: {
13749
- types: [
13750
- "number"
13751
- ]
13752
- },
13753
- x: {
13754
- types: [
13755
- "number"
13756
- ]
13757
- },
13758
- y: {
13759
- types: [
13760
- "number"
13761
- ]
13762
- }
13763
- },
13764
- required: [
13765
- "id"
13766
- ]
13767
- }
13768
- },
13769
- edges: {
13770
- types: [
13771
- "array"
13772
- ],
13773
- description: "Graph edges",
13774
- items: {
13775
- types: [
13776
- "object"
13777
- ],
13778
- properties: {
13779
- source: {
13780
- types: [
13781
- "string"
13782
- ]
13783
- },
13784
- target: {
13785
- types: [
13786
- "string"
13787
- ]
13788
- },
13789
- label: {
13790
- types: [
13791
- "string"
13792
- ]
13793
- },
13794
- weight: {
13795
- types: [
13796
- "number"
13797
- ]
13798
- },
13799
- color: {
13800
- types: [
13801
- "string"
13802
- ]
13803
- }
13804
- },
13805
- required: [
13806
- "source",
13807
- "target"
13808
- ]
13809
- }
13810
- },
13811
- height: {
13812
- types: [
13813
- "number"
13814
- ],
13815
- description: "Canvas height",
13816
- default: 400
13817
- },
13818
- showLabels: {
13819
- types: [
13820
- "boolean"
13821
- ],
13822
- description: "Show node labels",
13823
- default: true
13824
- },
13825
- interactive: {
13826
- types: [
13827
- "boolean"
13828
- ],
13829
- description: "Enable zoom/pan",
13830
- default: true
13831
- },
13832
- draggable: {
13833
- types: [
13834
- "boolean"
13835
- ],
13836
- description: "Enable node dragging",
13837
- default: true
13838
- },
13839
- actions: {
13840
- types: [
13841
- "array"
13842
- ],
13843
- description: "Actions",
13844
- items: {
13845
- types: [
13846
- "object"
13847
- ],
13848
- properties: {
13849
- label: {
13850
- types: [
13851
- "string"
13852
- ]
13853
- },
13854
- event: {
13855
- types: [
13856
- "string"
13857
- ]
13858
- },
13859
- navigatesTo: {
13860
- types: [
13861
- "string"
13862
- ]
13863
- },
13864
- variant: {
13865
- types: [
13866
- "string"
13867
- ],
13868
- enumValues: [
13869
- "primary",
13870
- "secondary",
13871
- "ghost"
13872
- ]
13873
- }
13874
- },
13875
- required: [
13876
- "label"
13877
- ]
13878
- }
13879
- },
13880
- onNodeClick: {
13881
- types: [
13882
- "function"
13883
- ],
13884
- description: "On node click",
13885
- kind: "callback",
13886
- callbackArgs: [
13887
- {
13888
- name: "node",
13889
- type: "object",
13890
- schema: {
13891
- types: [
13892
- "object"
13893
- ],
13894
- properties: {
13895
- id: {
13896
- types: [
13897
- "string"
13898
- ]
13899
- },
13900
- label: {
13901
- types: [
13902
- "string"
13903
- ]
13904
- },
13905
- group: {
13906
- types: [
13907
- "string"
13908
- ]
13909
- },
13910
- color: {
13911
- types: [
13912
- "string"
13913
- ]
13914
- },
13915
- size: {
13916
- types: [
13917
- "number"
13918
- ]
13919
- },
13920
- x: {
13921
- types: [
13922
- "number"
13923
- ]
13924
- },
13925
- y: {
13926
- types: [
13927
- "number"
13928
- ]
13929
- }
13930
- },
13931
- required: [
13932
- "id"
13933
- ]
13934
- }
13935
- }
13936
- ]
13937
- },
13938
- nodeClickEvent: {
13939
- types: [
13940
- "string"
13941
- ],
13942
- description: "Node click event",
13943
- kind: "event-ref",
13944
- emitPayloadSchema: [
13945
- {
13946
- name: "id",
13947
- type: "string",
13948
- required: true
13949
- }
13950
- ]
13951
- },
13952
- layout: {
13953
- types: [
13954
- "string"
13955
- ],
13956
- description: "Layout algorithm",
13957
- enumValues: [
13958
- "force",
13959
- "circular",
13960
- "grid"
13961
- ],
13962
- default: "force"
13627
+ },
13628
+ isLoading: {
13629
+ types: [
13630
+ "boolean"
13631
+ ],
13632
+ description: "Loading state",
13633
+ default: false
13634
+ },
13635
+ error: {
13636
+ types: [
13637
+ "object"
13638
+ ],
13639
+ description: "Error state",
13640
+ properties: {
13641
+ message: {
13642
+ types: [
13643
+ "string"
13644
+ ]
13645
+ },
13646
+ name: {
13647
+ types: [
13648
+ "string"
13649
+ ]
13650
+ },
13651
+ code: {
13652
+ types: [
13653
+ "string"
13654
+ ]
13655
+ },
13656
+ stack: {
13657
+ types: [
13658
+ "string"
13659
+ ]
13660
+ }
13661
+ },
13662
+ propertyRequired: [
13663
+ "message"
13664
+ ]
13665
+ },
13666
+ className: {
13667
+ types: [
13668
+ "string"
13669
+ ],
13670
+ description: "Additional CSS classes"
13671
+ }
13672
+ }
13673
+ },
13674
+ "graph-canvas": {
13675
+ type: "graph-canvas",
13676
+ category: "game",
13677
+ tier: "molecules",
13678
+ family: "core",
13679
+ description: "Force-directed graph visualization for node-link data with interactive zoom, pan, and layout",
13680
+ suggestedFor: [
13681
+ "knowledge graphs",
13682
+ "network visualization",
13683
+ "relationship mapping",
13684
+ "dependency graphs"
13685
+ ],
13686
+ typicalSize: "large",
13687
+ propsSchema: {
13688
+ title: {
13689
+ types: [
13690
+ "string"
13691
+ ],
13692
+ description: "Graph title"
13693
+ },
13694
+ nodes: {
13695
+ types: [
13696
+ "array"
13697
+ ],
13698
+ description: "Graph nodes",
13699
+ items: {
13700
+ types: [
13701
+ "object"
13702
+ ],
13703
+ properties: {
13704
+ id: {
13705
+ types: [
13706
+ "string"
13707
+ ]
13708
+ },
13709
+ label: {
13710
+ types: [
13711
+ "string"
13712
+ ]
13713
+ },
13714
+ group: {
13715
+ types: [
13716
+ "string"
13717
+ ]
13718
+ },
13719
+ color: {
13720
+ types: [
13721
+ "string"
13722
+ ]
13723
+ },
13724
+ size: {
13725
+ types: [
13726
+ "number"
13727
+ ]
13728
+ },
13729
+ x: {
13730
+ types: [
13731
+ "number"
13732
+ ]
13733
+ },
13734
+ y: {
13735
+ types: [
13736
+ "number"
13737
+ ]
13738
+ }
13739
+ },
13740
+ required: [
13741
+ "id"
13742
+ ]
13743
+ }
13744
+ },
13745
+ edges: {
13746
+ types: [
13747
+ "array"
13748
+ ],
13749
+ description: "Graph edges",
13750
+ items: {
13751
+ types: [
13752
+ "object"
13753
+ ],
13754
+ properties: {
13755
+ source: {
13756
+ types: [
13757
+ "string"
13758
+ ]
13759
+ },
13760
+ target: {
13761
+ types: [
13762
+ "string"
13763
+ ]
13764
+ },
13765
+ label: {
13766
+ types: [
13767
+ "string"
13768
+ ]
13769
+ },
13770
+ weight: {
13771
+ types: [
13772
+ "number"
13773
+ ]
13774
+ },
13775
+ color: {
13776
+ types: [
13777
+ "string"
13778
+ ]
13779
+ }
13780
+ },
13781
+ required: [
13782
+ "source",
13783
+ "target"
13784
+ ]
13785
+ }
13786
+ },
13787
+ height: {
13788
+ types: [
13789
+ "number"
13790
+ ],
13791
+ description: "Canvas height",
13792
+ default: 400
13793
+ },
13794
+ showLabels: {
13795
+ types: [
13796
+ "boolean"
13797
+ ],
13798
+ description: "Show node labels",
13799
+ default: true
13800
+ },
13801
+ interactive: {
13802
+ types: [
13803
+ "boolean"
13804
+ ],
13805
+ description: "Enable zoom/pan",
13806
+ default: true
13807
+ },
13808
+ draggable: {
13809
+ types: [
13810
+ "boolean"
13811
+ ],
13812
+ description: "Enable node dragging",
13813
+ default: true
13814
+ },
13815
+ actions: {
13816
+ types: [
13817
+ "array"
13818
+ ],
13819
+ description: "Actions",
13820
+ items: {
13821
+ types: [
13822
+ "object"
13823
+ ],
13824
+ properties: {
13825
+ label: {
13826
+ types: [
13827
+ "string"
13828
+ ]
13829
+ },
13830
+ event: {
13831
+ types: [
13832
+ "string"
13833
+ ]
13834
+ },
13835
+ navigatesTo: {
13836
+ types: [
13837
+ "string"
13838
+ ]
13839
+ },
13840
+ variant: {
13841
+ types: [
13842
+ "string"
13843
+ ],
13844
+ enumValues: [
13845
+ "primary",
13846
+ "secondary",
13847
+ "ghost"
13848
+ ]
13849
+ }
13850
+ },
13851
+ required: [
13852
+ "label"
13853
+ ]
13854
+ }
13855
+ },
13856
+ onNodeClick: {
13857
+ types: [
13858
+ "function"
13859
+ ],
13860
+ description: "On node click",
13861
+ kind: "callback",
13862
+ callbackArgs: [
13863
+ {
13864
+ name: "node",
13865
+ type: "object",
13866
+ schema: {
13867
+ types: [
13868
+ "object"
13869
+ ],
13870
+ properties: {
13871
+ id: {
13872
+ types: [
13873
+ "string"
13874
+ ]
13875
+ },
13876
+ label: {
13877
+ types: [
13878
+ "string"
13879
+ ]
13880
+ },
13881
+ group: {
13882
+ types: [
13883
+ "string"
13884
+ ]
13885
+ },
13886
+ color: {
13887
+ types: [
13888
+ "string"
13889
+ ]
13890
+ },
13891
+ size: {
13892
+ types: [
13893
+ "number"
13894
+ ]
13895
+ },
13896
+ x: {
13897
+ types: [
13898
+ "number"
13899
+ ]
13900
+ },
13901
+ y: {
13902
+ types: [
13903
+ "number"
13904
+ ]
13905
+ }
13906
+ },
13907
+ required: [
13908
+ "id"
13909
+ ]
13910
+ }
13911
+ }
13912
+ ]
13913
+ },
13914
+ nodeClickEvent: {
13915
+ types: [
13916
+ "string"
13917
+ ],
13918
+ description: "Node click event",
13919
+ kind: "event-ref",
13920
+ emitPayloadSchema: [
13921
+ {
13922
+ name: "id",
13923
+ type: "string",
13924
+ required: true
13925
+ }
13926
+ ]
13927
+ },
13928
+ layout: {
13929
+ types: [
13930
+ "string"
13931
+ ],
13932
+ description: "Layout algorithm",
13933
+ enumValues: [
13934
+ "force",
13935
+ "circular",
13936
+ "grid"
13937
+ ],
13938
+ default: "force"
13963
13939
  },
13964
13940
  entity: {
13965
13941
  types: [
@@ -14117,6 +14093,11 @@ var patterns_registry_default = {
14117
14093
  types: [
14118
14094
  "number"
14119
14095
  ]
14096
+ },
14097
+ modelUrl: {
14098
+ types: [
14099
+ "asset"
14100
+ ]
14120
14101
  }
14121
14102
  },
14122
14103
  required: [
@@ -14469,6 +14450,11 @@ var patterns_registry_default = {
14469
14450
  types: [
14470
14451
  "number"
14471
14452
  ]
14453
+ },
14454
+ modelUrl: {
14455
+ types: [
14456
+ "asset"
14457
+ ]
14472
14458
  }
14473
14459
  },
14474
14460
  required: [
@@ -14842,6 +14828,11 @@ var patterns_registry_default = {
14842
14828
  types: [
14843
14829
  "number"
14844
14830
  ]
14831
+ },
14832
+ modelUrl: {
14833
+ types: [
14834
+ "asset"
14835
+ ]
14845
14836
  }
14846
14837
  },
14847
14838
  required: [
@@ -30360,6 +30351,11 @@ var patterns_registry_default = {
30360
30351
  types: [
30361
30352
  "number"
30362
30353
  ]
30354
+ },
30355
+ modelUrl: {
30356
+ types: [
30357
+ "asset"
30358
+ ]
30363
30359
  }
30364
30360
  },
30365
30361
  required: [
@@ -32565,6 +32561,11 @@ var patterns_registry_default = {
32565
32561
  types: [
32566
32562
  "number"
32567
32563
  ]
32564
+ },
32565
+ modelUrl: {
32566
+ types: [
32567
+ "asset"
32568
+ ]
32568
32569
  }
32569
32570
  },
32570
32571
  required: [
@@ -34259,6 +34260,11 @@ var patterns_registry_default = {
34259
34260
  types: [
34260
34261
  "number"
34261
34262
  ]
34263
+ },
34264
+ modelUrl: {
34265
+ types: [
34266
+ "asset"
34267
+ ]
34262
34268
  }
34263
34269
  },
34264
34270
  required: [
@@ -36725,7 +36731,8 @@ var patterns_registry_default = {
36725
36731
  types: [
36726
36732
  "asset"
36727
36733
  ],
36728
- description: "Optional tooltip frame image URL"
36734
+ description: "Optional tooltip frame image URL",
36735
+ default: ""
36729
36736
  },
36730
36737
  className: {
36731
36738
  types: [
@@ -37400,391 +37407,401 @@ var patterns_registry_default = {
37400
37407
  types: [
37401
37408
  "number"
37402
37409
  ]
37403
- }
37404
- },
37405
- required: [
37406
- "x",
37407
- "y"
37408
- ]
37409
- }
37410
- },
37411
- units: {
37412
- types: [
37413
- "array"
37414
- ],
37415
- description: "Direct unit data \u2014 takes priority over entity-derived units.",
37416
- items: {
37417
- types: [
37418
- "object"
37419
- ],
37420
- properties: {
37421
- id: {
37422
- types: [
37423
- "string"
37424
- ]
37425
- },
37426
- position: {
37427
- types: [
37428
- "object"
37429
- ],
37430
- properties: {
37431
- x: {
37432
- types: [
37433
- "number"
37434
- ]
37435
- },
37436
- y: {
37437
- types: [
37438
- "number"
37439
- ]
37440
- }
37441
- },
37442
- required: [
37443
- "x",
37444
- "y"
37445
- ]
37446
- },
37447
- x: {
37448
- types: [
37449
- "number"
37450
- ]
37451
- },
37452
- y: {
37453
- types: [
37454
- "number"
37455
- ]
37456
- },
37457
- z: {
37458
- types: [
37459
- "number"
37460
- ]
37461
- },
37462
- sprite: {
37463
- types: [
37464
- "object"
37465
- ]
37466
- },
37467
- unitType: {
37468
- types: [
37469
- "string"
37470
- ]
37471
- },
37472
- heroId: {
37473
- types: [
37474
- "string"
37475
- ]
37476
- },
37477
- name: {
37478
- types: [
37479
- "string"
37480
- ]
37481
- },
37482
- team: {
37483
- types: [
37484
- "string"
37485
- ],
37486
- enumValues: [
37487
- "player",
37488
- "enemy",
37489
- "neutral"
37490
- ]
37491
- },
37492
- faction: {
37493
- types: [
37494
- "string"
37495
- ],
37496
- enumValues: [
37497
- "player",
37498
- "enemy",
37499
- "neutral"
37500
- ]
37501
- },
37502
- health: {
37503
- types: [
37504
- "number"
37505
- ]
37506
- },
37507
- maxHealth: {
37508
- types: [
37509
- "number"
37510
- ]
37511
- },
37512
- traits: {
37513
- types: [
37514
- "array"
37515
- ],
37516
- items: {
37517
- types: [
37518
- "object"
37519
- ],
37520
- properties: {
37521
- name: {
37522
- types: [
37523
- "string"
37524
- ]
37525
- },
37526
- currentState: {
37527
- types: [
37528
- "string"
37529
- ]
37530
- },
37531
- states: {
37532
- types: [
37533
- "array"
37534
- ],
37535
- items: {
37536
- types: [
37537
- "string"
37538
- ]
37539
- }
37540
- },
37541
- cooldown: {
37542
- types: [
37543
- "number"
37544
- ]
37545
- }
37546
- },
37547
- required: [
37548
- "name",
37549
- "currentState",
37550
- "states",
37551
- "cooldown"
37552
- ]
37553
- }
37554
- },
37555
- previousPosition: {
37556
- types: [
37557
- "object"
37558
- ],
37559
- properties: {
37560
- x: {
37561
- types: [
37562
- "number"
37563
- ]
37564
- },
37565
- y: {
37566
- types: [
37567
- "number"
37568
- ]
37569
- }
37570
- },
37571
- required: [
37572
- "x",
37573
- "y"
37574
- ]
37575
- },
37576
- elevation: {
37577
- types: [
37578
- "number"
37579
- ]
37580
- }
37581
- },
37582
- required: [
37583
- "id"
37584
- ]
37585
- }
37586
- },
37587
- features: {
37588
- types: [
37589
- "array"
37590
- ],
37591
- description: "Direct feature data \u2014 takes priority over entity-derived features.",
37592
- items: {
37593
- types: [
37594
- "object"
37595
- ],
37596
- properties: {
37597
- id: {
37598
- types: [
37599
- "string"
37600
- ]
37601
- },
37602
- x: {
37603
- types: [
37604
- "number"
37605
- ]
37606
- },
37607
- y: {
37608
- types: [
37609
- "number"
37610
- ]
37611
- },
37612
- z: {
37613
- types: [
37614
- "number"
37615
- ]
37616
- },
37617
- type: {
37618
- types: [
37619
- "string"
37620
- ]
37621
- },
37622
- sprite: {
37623
- types: [
37624
- "object"
37625
- ]
37626
- },
37627
- assetUrl: {
37628
- types: [
37629
- "object"
37630
- ]
37631
- },
37632
- color: {
37633
- types: [
37634
- "string"
37635
- ]
37636
- },
37637
- elevation: {
37638
- types: [
37639
- "number"
37640
- ]
37641
- }
37642
- },
37643
- required: [
37644
- "x",
37645
- "y",
37646
- "type"
37647
- ]
37648
- }
37649
- },
37650
- assetManifest: {
37651
- types: [
37652
- "string"
37653
- ],
37654
- description: "Direct asset manifest \u2014 takes priority over entity-derived manifest."
37655
- }
37656
- }
37657
- },
37658
- "world-map-board": {
37659
- type: "world-map-board",
37660
- category: "game",
37661
- tier: "organisms",
37662
- family: "game",
37663
- description: "Event Contract: Emits: UI:HERO_SELECT Emits: UI:HERO_MOVE Emits: UI:BATTLE_ENCOUNTER Emits: UI:FEATURE_ENTER Emits: UI:TILE_CLICK",
37664
- suggestedFor: [
37665
- "world",
37666
- "map",
37667
- "board",
37668
- "world map board"
37669
- ],
37670
- typicalSize: "large",
37671
- propsSchema: {
37672
- className: {
37673
- types: [
37674
- "string"
37675
- ],
37676
- description: "Additional CSS classes"
37677
- },
37678
- isLoading: {
37679
- types: [
37680
- "boolean"
37681
- ],
37682
- description: "Loading state indicator"
37683
- },
37684
- error: {
37685
- types: [
37686
- "object"
37687
- ],
37688
- description: "Error state",
37689
- properties: {
37690
- message: {
37691
- types: [
37692
- "string"
37693
- ]
37694
- },
37695
- name: {
37696
- types: [
37697
- "string"
37698
- ]
37699
- },
37700
- code: {
37701
- types: [
37702
- "string"
37703
- ]
37704
- },
37705
- stack: {
37706
- types: [
37707
- "string"
37708
- ]
37709
- }
37710
- },
37711
- propertyRequired: [
37712
- "message"
37713
- ]
37714
- },
37715
- entity: {
37716
- types: [
37717
- "object",
37718
- "array"
37719
- ],
37720
- description: "World-map board-state entity (single row or array). The board reads `hexes` / `heroes` / `features` arrays + `selectedHeroId` off it.",
37721
- kind: "entity",
37722
- cardinality: "collection"
37723
- },
37724
- tiles: {
37725
- types: [
37726
- "array"
37727
- ],
37728
- description: "Direct tile data \u2014 takes priority over entity-derived tiles.",
37729
- items: {
37730
- types: [
37731
- "object"
37732
- ],
37733
- properties: {
37734
- id: {
37735
- types: [
37736
- "string"
37737
- ]
37738
37410
  },
37739
- x: {
37740
- types: [
37741
- "number"
37742
- ]
37743
- },
37744
- y: {
37745
- types: [
37746
- "number"
37747
- ]
37748
- },
37749
- z: {
37750
- types: [
37751
- "number"
37752
- ]
37753
- },
37754
- terrain: {
37755
- types: [
37756
- "string"
37757
- ]
37758
- },
37759
- type: {
37760
- types: [
37761
- "string"
37762
- ]
37763
- },
37764
- terrainSprite: {
37411
+ modelUrl: {
37412
+ types: [
37413
+ "asset"
37414
+ ]
37415
+ }
37416
+ },
37417
+ required: [
37418
+ "x",
37419
+ "y"
37420
+ ]
37421
+ }
37422
+ },
37423
+ units: {
37424
+ types: [
37425
+ "array"
37426
+ ],
37427
+ description: "Direct unit data \u2014 takes priority over entity-derived units.",
37428
+ items: {
37429
+ types: [
37430
+ "object"
37431
+ ],
37432
+ properties: {
37433
+ id: {
37434
+ types: [
37435
+ "string"
37436
+ ]
37437
+ },
37438
+ position: {
37439
+ types: [
37440
+ "object"
37441
+ ],
37442
+ properties: {
37443
+ x: {
37444
+ types: [
37445
+ "number"
37446
+ ]
37447
+ },
37448
+ y: {
37449
+ types: [
37450
+ "number"
37451
+ ]
37452
+ }
37453
+ },
37454
+ required: [
37455
+ "x",
37456
+ "y"
37457
+ ]
37458
+ },
37459
+ x: {
37460
+ types: [
37461
+ "number"
37462
+ ]
37463
+ },
37464
+ y: {
37465
+ types: [
37466
+ "number"
37467
+ ]
37468
+ },
37469
+ z: {
37470
+ types: [
37471
+ "number"
37472
+ ]
37473
+ },
37474
+ sprite: {
37475
+ types: [
37476
+ "object"
37477
+ ]
37478
+ },
37479
+ unitType: {
37480
+ types: [
37481
+ "string"
37482
+ ]
37483
+ },
37484
+ heroId: {
37485
+ types: [
37486
+ "string"
37487
+ ]
37488
+ },
37489
+ name: {
37490
+ types: [
37491
+ "string"
37492
+ ]
37493
+ },
37494
+ team: {
37495
+ types: [
37496
+ "string"
37497
+ ],
37498
+ enumValues: [
37499
+ "player",
37500
+ "enemy",
37501
+ "neutral"
37502
+ ]
37503
+ },
37504
+ faction: {
37505
+ types: [
37506
+ "string"
37507
+ ],
37508
+ enumValues: [
37509
+ "player",
37510
+ "enemy",
37511
+ "neutral"
37512
+ ]
37513
+ },
37514
+ health: {
37515
+ types: [
37516
+ "number"
37517
+ ]
37518
+ },
37519
+ maxHealth: {
37520
+ types: [
37521
+ "number"
37522
+ ]
37523
+ },
37524
+ traits: {
37525
+ types: [
37526
+ "array"
37527
+ ],
37528
+ items: {
37529
+ types: [
37530
+ "object"
37531
+ ],
37532
+ properties: {
37533
+ name: {
37534
+ types: [
37535
+ "string"
37536
+ ]
37537
+ },
37538
+ currentState: {
37539
+ types: [
37540
+ "string"
37541
+ ]
37542
+ },
37543
+ states: {
37544
+ types: [
37545
+ "array"
37546
+ ],
37547
+ items: {
37548
+ types: [
37549
+ "string"
37550
+ ]
37551
+ }
37552
+ },
37553
+ cooldown: {
37554
+ types: [
37555
+ "number"
37556
+ ]
37557
+ }
37558
+ },
37559
+ required: [
37560
+ "name",
37561
+ "currentState",
37562
+ "states",
37563
+ "cooldown"
37564
+ ]
37565
+ }
37566
+ },
37567
+ previousPosition: {
37568
+ types: [
37569
+ "object"
37570
+ ],
37571
+ properties: {
37572
+ x: {
37573
+ types: [
37574
+ "number"
37575
+ ]
37576
+ },
37577
+ y: {
37578
+ types: [
37579
+ "number"
37580
+ ]
37581
+ }
37582
+ },
37583
+ required: [
37584
+ "x",
37585
+ "y"
37586
+ ]
37587
+ },
37588
+ elevation: {
37589
+ types: [
37590
+ "number"
37591
+ ]
37592
+ }
37593
+ },
37594
+ required: [
37595
+ "id"
37596
+ ]
37597
+ }
37598
+ },
37599
+ features: {
37600
+ types: [
37601
+ "array"
37602
+ ],
37603
+ description: "Direct feature data \u2014 takes priority over entity-derived features.",
37604
+ items: {
37605
+ types: [
37606
+ "object"
37607
+ ],
37608
+ properties: {
37609
+ id: {
37610
+ types: [
37611
+ "string"
37612
+ ]
37613
+ },
37614
+ x: {
37615
+ types: [
37616
+ "number"
37617
+ ]
37618
+ },
37619
+ y: {
37620
+ types: [
37621
+ "number"
37622
+ ]
37623
+ },
37624
+ z: {
37625
+ types: [
37626
+ "number"
37627
+ ]
37628
+ },
37629
+ type: {
37630
+ types: [
37631
+ "string"
37632
+ ]
37633
+ },
37634
+ sprite: {
37635
+ types: [
37636
+ "object"
37637
+ ]
37638
+ },
37639
+ assetUrl: {
37640
+ types: [
37641
+ "object"
37642
+ ]
37643
+ },
37644
+ color: {
37645
+ types: [
37646
+ "string"
37647
+ ]
37648
+ },
37649
+ elevation: {
37650
+ types: [
37651
+ "number"
37652
+ ]
37653
+ }
37654
+ },
37655
+ required: [
37656
+ "x",
37657
+ "y",
37658
+ "type"
37659
+ ]
37660
+ }
37661
+ },
37662
+ assetManifest: {
37663
+ types: [
37664
+ "string"
37665
+ ],
37666
+ description: "Direct asset manifest \u2014 takes priority over entity-derived manifest."
37667
+ }
37668
+ }
37669
+ },
37670
+ "world-map-board": {
37671
+ type: "world-map-board",
37672
+ category: "game",
37673
+ tier: "organisms",
37674
+ family: "game",
37675
+ description: "Event Contract: Emits: UI:HERO_SELECT Emits: UI:HERO_MOVE Emits: UI:BATTLE_ENCOUNTER Emits: UI:FEATURE_ENTER Emits: UI:TILE_CLICK",
37676
+ suggestedFor: [
37677
+ "world",
37678
+ "map",
37679
+ "board",
37680
+ "world map board"
37681
+ ],
37682
+ typicalSize: "large",
37683
+ propsSchema: {
37684
+ className: {
37685
+ types: [
37686
+ "string"
37687
+ ],
37688
+ description: "Additional CSS classes"
37689
+ },
37690
+ isLoading: {
37691
+ types: [
37692
+ "boolean"
37693
+ ],
37694
+ description: "Loading state indicator"
37695
+ },
37696
+ error: {
37697
+ types: [
37698
+ "object"
37699
+ ],
37700
+ description: "Error state",
37701
+ properties: {
37702
+ message: {
37703
+ types: [
37704
+ "string"
37705
+ ]
37706
+ },
37707
+ name: {
37708
+ types: [
37709
+ "string"
37710
+ ]
37711
+ },
37712
+ code: {
37713
+ types: [
37714
+ "string"
37715
+ ]
37716
+ },
37717
+ stack: {
37718
+ types: [
37719
+ "string"
37720
+ ]
37721
+ }
37722
+ },
37723
+ propertyRequired: [
37724
+ "message"
37725
+ ]
37726
+ },
37727
+ entity: {
37728
+ types: [
37729
+ "object",
37730
+ "array"
37731
+ ],
37732
+ description: "World-map board-state entity (single row or array). The board reads `hexes` / `heroes` / `features` arrays + `selectedHeroId` off it.",
37733
+ kind: "entity",
37734
+ cardinality: "collection"
37735
+ },
37736
+ tiles: {
37737
+ types: [
37738
+ "array"
37739
+ ],
37740
+ description: "Direct tile data \u2014 takes priority over entity-derived tiles.",
37741
+ items: {
37742
+ types: [
37743
+ "object"
37744
+ ],
37745
+ properties: {
37746
+ id: {
37747
+ types: [
37748
+ "string"
37749
+ ]
37750
+ },
37751
+ x: {
37752
+ types: [
37753
+ "number"
37754
+ ]
37755
+ },
37756
+ y: {
37757
+ types: [
37758
+ "number"
37759
+ ]
37760
+ },
37761
+ z: {
37762
+ types: [
37763
+ "number"
37764
+ ]
37765
+ },
37766
+ terrain: {
37767
+ types: [
37768
+ "string"
37769
+ ]
37770
+ },
37771
+ type: {
37772
+ types: [
37773
+ "string"
37774
+ ]
37775
+ },
37776
+ terrainSprite: {
37777
+ types: [
37778
+ "asset"
37779
+ ]
37780
+ },
37781
+ passable: {
37782
+ types: [
37783
+ "boolean"
37784
+ ]
37785
+ },
37786
+ movementCost: {
37787
+ types: [
37788
+ "number"
37789
+ ]
37790
+ },
37791
+ tileType: {
37792
+ types: [
37793
+ "string"
37794
+ ]
37795
+ },
37796
+ elevation: {
37797
+ types: [
37798
+ "number"
37799
+ ]
37800
+ },
37801
+ modelUrl: {
37765
37802
  types: [
37766
37803
  "asset"
37767
37804
  ]
37768
- },
37769
- passable: {
37770
- types: [
37771
- "boolean"
37772
- ]
37773
- },
37774
- movementCost: {
37775
- types: [
37776
- "number"
37777
- ]
37778
- },
37779
- tileType: {
37780
- types: [
37781
- "string"
37782
- ]
37783
- },
37784
- elevation: {
37785
- types: [
37786
- "number"
37787
- ]
37788
37805
  }
37789
37806
  },
37790
37807
  required: [
@@ -41919,7 +41936,7 @@ var patterns_registry_default = {
41919
41936
  "feature-renderer": {
41920
41937
  type: "feature-renderer",
41921
41938
  category: "game",
41922
- tier: "organisms",
41939
+ tier: "molecules",
41923
41940
  family: "game",
41924
41941
  description: "FeatureRenderer component",
41925
41942
  suggestedFor: [
@@ -43242,434 +43259,2251 @@ var patterns_registry_default = {
43242
43259
  ]
43243
43260
  }
43244
43261
  },
43245
- fields: {
43262
+ fields: {
43263
+ types: [
43264
+ "array"
43265
+ ],
43266
+ description: "Alias for `columns`.",
43267
+ items: {
43268
+ types: [
43269
+ "object"
43270
+ ],
43271
+ properties: {
43272
+ key: {
43273
+ types: [
43274
+ "string"
43275
+ ]
43276
+ },
43277
+ field: {
43278
+ types: [
43279
+ "string"
43280
+ ]
43281
+ },
43282
+ header: {
43283
+ types: [
43284
+ "string"
43285
+ ]
43286
+ },
43287
+ label: {
43288
+ types: [
43289
+ "string"
43290
+ ]
43291
+ },
43292
+ width: {
43293
+ types: [
43294
+ "string"
43295
+ ]
43296
+ },
43297
+ align: {
43298
+ types: [
43299
+ "string"
43300
+ ],
43301
+ enumValues: [
43302
+ "left",
43303
+ "center",
43304
+ "right"
43305
+ ]
43306
+ },
43307
+ className: {
43308
+ types: [
43309
+ "string"
43310
+ ]
43311
+ },
43312
+ weight: {
43313
+ types: [
43314
+ "string"
43315
+ ],
43316
+ enumValues: [
43317
+ "normal",
43318
+ "medium",
43319
+ "semibold"
43320
+ ]
43321
+ },
43322
+ format: {
43323
+ types: [
43324
+ "string"
43325
+ ],
43326
+ enumValues: [
43327
+ "badge",
43328
+ "date",
43329
+ "currency",
43330
+ "number",
43331
+ "percent",
43332
+ "boolean"
43333
+ ]
43334
+ },
43335
+ icon: {
43336
+ types: [
43337
+ "icon",
43338
+ "string"
43339
+ ]
43340
+ },
43341
+ sortable: {
43342
+ types: [
43343
+ "boolean"
43344
+ ]
43345
+ }
43346
+ },
43347
+ required: [
43348
+ "key"
43349
+ ]
43350
+ }
43351
+ },
43352
+ itemActions: {
43353
+ types: [
43354
+ "array"
43355
+ ],
43356
+ description: "Per-row action buttons (trailing column).",
43357
+ kind: "event-list",
43358
+ eventField: "event",
43359
+ items: {
43360
+ types: [
43361
+ "object"
43362
+ ],
43363
+ properties: {
43364
+ label: {
43365
+ types: [
43366
+ "string"
43367
+ ]
43368
+ },
43369
+ event: {
43370
+ types: [
43371
+ "string"
43372
+ ]
43373
+ },
43374
+ icon: {
43375
+ types: [
43376
+ "icon",
43377
+ "string"
43378
+ ]
43379
+ },
43380
+ variant: {
43381
+ types: [
43382
+ "string"
43383
+ ],
43384
+ enumValues: [
43385
+ "primary",
43386
+ "secondary",
43387
+ "ghost",
43388
+ "danger"
43389
+ ]
43390
+ }
43391
+ },
43392
+ required: [
43393
+ "label",
43394
+ "event"
43395
+ ]
43396
+ }
43397
+ },
43398
+ maxInlineActions: {
43399
+ types: [
43400
+ "number"
43401
+ ],
43402
+ description: 'Max inline action buttons before the rest collapse into a "\u22EF" overflow menu. Omit = all inline.'
43403
+ },
43404
+ selectable: {
43405
+ types: [
43406
+ "boolean"
43407
+ ],
43408
+ description: "Render a leading checkbox column. Selection changes emit `selectEvent`.",
43409
+ default: false
43410
+ },
43411
+ selectEvent: {
43412
+ types: [
43413
+ "string"
43414
+ ],
43415
+ description: "Event emitted on selection change: UI:{selectEvent} with { ids, rows }.",
43416
+ kind: "event"
43417
+ },
43418
+ selectedIds: {
43419
+ types: [
43420
+ "array"
43421
+ ],
43422
+ description: "Currently-selected ids (controlled). Falls back to local state when omitted.",
43423
+ items: {
43424
+ types: [
43425
+ "string"
43426
+ ]
43427
+ }
43428
+ },
43429
+ sortEvent: {
43430
+ types: [
43431
+ "string"
43432
+ ],
43433
+ description: "Event emitted on sortable-header click: UI:{sortEvent} with { column, direction }.",
43434
+ kind: "event"
43435
+ },
43436
+ sortColumn: {
43437
+ types: [
43438
+ "string"
43439
+ ],
43440
+ description: "Current sort column (display hint for the active header arrow)."
43441
+ },
43442
+ sortDirection: {
43443
+ types: [
43444
+ "string"
43445
+ ],
43446
+ description: "Current sort direction (display hint).",
43447
+ enumValues: [
43448
+ "asc",
43449
+ "desc"
43450
+ ]
43451
+ },
43452
+ className: {
43453
+ types: [
43454
+ "string"
43455
+ ],
43456
+ description: "Additional CSS classes applied to the table root."
43457
+ },
43458
+ emptyMessage: {
43459
+ types: [
43460
+ "string"
43461
+ ],
43462
+ description: "Message shown when there are no rows."
43463
+ },
43464
+ isLoading: {
43465
+ types: [
43466
+ "boolean"
43467
+ ],
43468
+ description: "Loading state.",
43469
+ default: false
43470
+ },
43471
+ error: {
43472
+ types: [
43473
+ "object"
43474
+ ],
43475
+ description: "Error state.",
43476
+ properties: {
43477
+ message: {
43478
+ types: [
43479
+ "string"
43480
+ ]
43481
+ },
43482
+ name: {
43483
+ types: [
43484
+ "string"
43485
+ ]
43486
+ },
43487
+ code: {
43488
+ types: [
43489
+ "string"
43490
+ ]
43491
+ },
43492
+ stack: {
43493
+ types: [
43494
+ "string"
43495
+ ]
43496
+ }
43497
+ },
43498
+ propertyRequired: [
43499
+ "message"
43500
+ ],
43501
+ default: null
43502
+ },
43503
+ groupBy: {
43504
+ types: [
43505
+ "string"
43506
+ ],
43507
+ description: "Group rows under section headers by a field value."
43508
+ },
43509
+ pageSize: {
43510
+ types: [
43511
+ "number"
43512
+ ],
43513
+ description: 'Max rows before a "Show More" button. Defaults to 0 (show all).',
43514
+ default: 0
43515
+ },
43516
+ children: {
43517
+ types: [
43518
+ "function"
43519
+ ],
43520
+ description: "Custom per-row render. When provided, the whole row content is delegated to this function (columns are ignored for the body; the header still renders). Mirrors DataList's children render prop.",
43521
+ kind: "callback",
43522
+ callbackArgs: [
43523
+ {
43524
+ name: "item",
43525
+ type: "object"
43526
+ },
43527
+ {
43528
+ name: "index",
43529
+ type: "number"
43530
+ }
43531
+ ],
43532
+ renderCallback: true
43533
+ },
43534
+ renderItem: {
43535
+ types: [
43536
+ "function"
43537
+ ],
43538
+ description: 'Per-row render function (schema alias). In .orb: ["fn","item",{...}]. The compiler converts this to the children render prop.',
43539
+ kind: "callback",
43540
+ callbackArgs: [
43541
+ {
43542
+ name: "item",
43543
+ type: "object"
43544
+ },
43545
+ {
43546
+ name: "index",
43547
+ type: "number"
43548
+ }
43549
+ ],
43550
+ renderCallback: true
43551
+ },
43552
+ look: {
43553
+ types: [
43554
+ "string"
43555
+ ],
43556
+ description: "Layer 2 visual treatment \u2014 mirrors the data-list / entity-table look enum so authors share one knob name across row renderers.",
43557
+ enumValues: [
43558
+ "dense",
43559
+ "spacious",
43560
+ "striped",
43561
+ "borderless",
43562
+ "bordered"
43563
+ ],
43564
+ default: "dense"
43565
+ }
43566
+ }
43567
+ },
43568
+ "step-flow": {
43569
+ type: "step-flow",
43570
+ category: "component",
43571
+ tier: "molecules",
43572
+ family: "marketing",
43573
+ description: "StepFlow component",
43574
+ suggestedFor: [
43575
+ "step",
43576
+ "flow",
43577
+ "step flow"
43578
+ ],
43579
+ typicalSize: "medium",
43580
+ propsSchema: {
43581
+ steps: {
43582
+ types: [
43583
+ "array"
43584
+ ],
43585
+ description: "steps prop",
43586
+ required: true,
43587
+ items: {
43588
+ types: [
43589
+ "object"
43590
+ ],
43591
+ properties: {
43592
+ number: {
43593
+ types: [
43594
+ "number"
43595
+ ]
43596
+ },
43597
+ title: {
43598
+ types: [
43599
+ "string"
43600
+ ]
43601
+ },
43602
+ description: {
43603
+ types: [
43604
+ "string"
43605
+ ]
43606
+ },
43607
+ icon: {
43608
+ types: [
43609
+ "icon",
43610
+ "string"
43611
+ ]
43612
+ }
43613
+ },
43614
+ required: [
43615
+ "title",
43616
+ "description"
43617
+ ]
43618
+ }
43619
+ },
43620
+ orientation: {
43621
+ types: [
43622
+ "string"
43623
+ ],
43624
+ description: "orientation prop",
43625
+ enumValues: [
43626
+ "horizontal",
43627
+ "vertical"
43628
+ ],
43629
+ default: "horizontal"
43630
+ },
43631
+ showConnectors: {
43632
+ types: [
43633
+ "boolean"
43634
+ ],
43635
+ description: "showConnectors prop",
43636
+ default: true
43637
+ },
43638
+ className: {
43639
+ types: [
43640
+ "string"
43641
+ ],
43642
+ description: "className prop"
43643
+ }
43644
+ }
43645
+ },
43646
+ "stat-card": {
43647
+ type: "stat-card",
43648
+ category: "display",
43649
+ tier: "atoms",
43650
+ family: "marketing",
43651
+ description: "StatCard component",
43652
+ suggestedFor: [
43653
+ "stat",
43654
+ "card",
43655
+ "stat card"
43656
+ ],
43657
+ typicalSize: "small",
43658
+ propsSchema: {
43659
+ value: {
43660
+ types: [
43661
+ "string"
43662
+ ],
43663
+ description: "The stat value to display prominently",
43664
+ required: true
43665
+ },
43666
+ label: {
43667
+ types: [
43668
+ "string"
43669
+ ],
43670
+ description: "Label describing the value",
43671
+ required: true
43672
+ },
43673
+ size: {
43674
+ types: [
43675
+ "string"
43676
+ ],
43677
+ description: "Size of the value text",
43678
+ enumValues: [
43679
+ "sm",
43680
+ "md",
43681
+ "lg"
43682
+ ],
43683
+ default: "md"
43684
+ },
43685
+ className: {
43686
+ types: [
43687
+ "string"
43688
+ ],
43689
+ description: "Additional class names"
43690
+ }
43691
+ }
43692
+ },
43693
+ "game-canvas-3d": {
43694
+ type: "game-canvas-3d",
43695
+ category: "game",
43696
+ tier: "molecules",
43697
+ family: "game",
43698
+ description: "Props for GameCanvas3D component",
43699
+ suggestedFor: [
43700
+ "game",
43701
+ "canvas3",
43702
+ "game canvas3 d"
43703
+ ],
43704
+ typicalSize: "medium",
43705
+ propsSchema: {
43706
+ className: {
43707
+ types: [
43708
+ "string"
43709
+ ],
43710
+ description: "--- Closed-circuit props (MANDATORY) ---"
43711
+ },
43712
+ children: {
43713
+ types: [
43714
+ "node"
43715
+ ],
43716
+ description: "Children to render inside the 3D canvas (e.g., physics objects, custom meshes)"
43717
+ },
43718
+ isLoading: {
43719
+ types: [
43720
+ "boolean"
43721
+ ],
43722
+ description: "Loading state indicator"
43723
+ },
43724
+ error: {
43725
+ types: [
43726
+ "string"
43727
+ ],
43728
+ description: "Error state"
43729
+ },
43730
+ entity: {
43731
+ types: [
43732
+ "string"
43733
+ ],
43734
+ description: "Entity name for schema-driven auto-fetch"
43735
+ },
43736
+ tiles: {
43737
+ types: [
43738
+ "array"
43739
+ ],
43740
+ description: "Array of tiles to render",
43741
+ items: {
43742
+ types: [
43743
+ "object"
43744
+ ],
43745
+ properties: {
43746
+ id: {
43747
+ types: [
43748
+ "string"
43749
+ ]
43750
+ },
43751
+ x: {
43752
+ types: [
43753
+ "number"
43754
+ ]
43755
+ },
43756
+ y: {
43757
+ types: [
43758
+ "number"
43759
+ ]
43760
+ },
43761
+ z: {
43762
+ types: [
43763
+ "number"
43764
+ ]
43765
+ },
43766
+ terrain: {
43767
+ types: [
43768
+ "string"
43769
+ ]
43770
+ },
43771
+ type: {
43772
+ types: [
43773
+ "string"
43774
+ ]
43775
+ },
43776
+ terrainSprite: {
43777
+ types: [
43778
+ "asset"
43779
+ ]
43780
+ },
43781
+ passable: {
43782
+ types: [
43783
+ "boolean"
43784
+ ]
43785
+ },
43786
+ movementCost: {
43787
+ types: [
43788
+ "number"
43789
+ ]
43790
+ },
43791
+ tileType: {
43792
+ types: [
43793
+ "string"
43794
+ ]
43795
+ },
43796
+ elevation: {
43797
+ types: [
43798
+ "number"
43799
+ ]
43800
+ },
43801
+ modelUrl: {
43802
+ types: [
43803
+ "asset"
43804
+ ]
43805
+ }
43806
+ },
43807
+ required: [
43808
+ "x",
43809
+ "y"
43810
+ ]
43811
+ },
43812
+ default: []
43813
+ },
43814
+ units: {
43815
+ types: [
43816
+ "array"
43817
+ ],
43818
+ description: "Array of units to render",
43819
+ items: {
43820
+ types: [
43821
+ "object"
43822
+ ],
43823
+ properties: {
43824
+ id: {
43825
+ types: [
43826
+ "string"
43827
+ ]
43828
+ },
43829
+ position: {
43830
+ types: [
43831
+ "object"
43832
+ ],
43833
+ properties: {
43834
+ x: {
43835
+ types: [
43836
+ "number"
43837
+ ]
43838
+ },
43839
+ y: {
43840
+ types: [
43841
+ "number"
43842
+ ]
43843
+ }
43844
+ },
43845
+ required: [
43846
+ "x",
43847
+ "y"
43848
+ ]
43849
+ },
43850
+ x: {
43851
+ types: [
43852
+ "number"
43853
+ ]
43854
+ },
43855
+ y: {
43856
+ types: [
43857
+ "number"
43858
+ ]
43859
+ },
43860
+ z: {
43861
+ types: [
43862
+ "number"
43863
+ ]
43864
+ },
43865
+ sprite: {
43866
+ types: [
43867
+ "object"
43868
+ ]
43869
+ },
43870
+ unitType: {
43871
+ types: [
43872
+ "string"
43873
+ ]
43874
+ },
43875
+ heroId: {
43876
+ types: [
43877
+ "string"
43878
+ ]
43879
+ },
43880
+ name: {
43881
+ types: [
43882
+ "string"
43883
+ ]
43884
+ },
43885
+ team: {
43886
+ types: [
43887
+ "string"
43888
+ ],
43889
+ enumValues: [
43890
+ "player",
43891
+ "enemy",
43892
+ "neutral"
43893
+ ]
43894
+ },
43895
+ faction: {
43896
+ types: [
43897
+ "string"
43898
+ ],
43899
+ enumValues: [
43900
+ "player",
43901
+ "enemy",
43902
+ "neutral"
43903
+ ]
43904
+ },
43905
+ health: {
43906
+ types: [
43907
+ "number"
43908
+ ]
43909
+ },
43910
+ maxHealth: {
43911
+ types: [
43912
+ "number"
43913
+ ]
43914
+ },
43915
+ traits: {
43916
+ types: [
43917
+ "array"
43918
+ ],
43919
+ items: {
43920
+ types: [
43921
+ "object"
43922
+ ],
43923
+ properties: {
43924
+ name: {
43925
+ types: [
43926
+ "string"
43927
+ ]
43928
+ },
43929
+ currentState: {
43930
+ types: [
43931
+ "string"
43932
+ ]
43933
+ },
43934
+ states: {
43935
+ types: [
43936
+ "array"
43937
+ ],
43938
+ items: {
43939
+ types: [
43940
+ "string"
43941
+ ]
43942
+ }
43943
+ },
43944
+ cooldown: {
43945
+ types: [
43946
+ "number"
43947
+ ]
43948
+ }
43949
+ },
43950
+ required: [
43951
+ "name",
43952
+ "currentState",
43953
+ "states",
43954
+ "cooldown"
43955
+ ]
43956
+ }
43957
+ },
43958
+ previousPosition: {
43959
+ types: [
43960
+ "object"
43961
+ ],
43962
+ properties: {
43963
+ x: {
43964
+ types: [
43965
+ "number"
43966
+ ]
43967
+ },
43968
+ y: {
43969
+ types: [
43970
+ "number"
43971
+ ]
43972
+ }
43973
+ },
43974
+ required: [
43975
+ "x",
43976
+ "y"
43977
+ ]
43978
+ },
43979
+ elevation: {
43980
+ types: [
43981
+ "number"
43982
+ ]
43983
+ }
43984
+ },
43985
+ required: [
43986
+ "id"
43987
+ ]
43988
+ },
43989
+ default: []
43990
+ },
43991
+ features: {
43992
+ types: [
43993
+ "array"
43994
+ ],
43995
+ description: "Array of features to render",
43996
+ items: {
43997
+ types: [
43998
+ "object"
43999
+ ],
44000
+ properties: {
44001
+ id: {
44002
+ types: [
44003
+ "string"
44004
+ ]
44005
+ },
44006
+ x: {
44007
+ types: [
44008
+ "number"
44009
+ ]
44010
+ },
44011
+ y: {
44012
+ types: [
44013
+ "number"
44014
+ ]
44015
+ },
44016
+ z: {
44017
+ types: [
44018
+ "number"
44019
+ ]
44020
+ },
44021
+ type: {
44022
+ types: [
44023
+ "string"
44024
+ ]
44025
+ },
44026
+ sprite: {
44027
+ types: [
44028
+ "object"
44029
+ ]
44030
+ },
44031
+ assetUrl: {
44032
+ types: [
44033
+ "object"
44034
+ ]
44035
+ },
44036
+ color: {
44037
+ types: [
44038
+ "string"
44039
+ ]
44040
+ },
44041
+ elevation: {
44042
+ types: [
44043
+ "number"
44044
+ ]
44045
+ }
44046
+ },
44047
+ required: [
44048
+ "x",
44049
+ "y",
44050
+ "type"
44051
+ ]
44052
+ },
44053
+ default: []
44054
+ },
44055
+ events: {
44056
+ types: [
44057
+ "array"
44058
+ ],
44059
+ description: "Array of events to display",
44060
+ items: {
44061
+ types: [
44062
+ "object"
44063
+ ],
44064
+ properties: {
44065
+ id: {
44066
+ types: [
44067
+ "string"
44068
+ ]
44069
+ },
44070
+ type: {
44071
+ types: [
44072
+ "string"
44073
+ ]
44074
+ },
44075
+ x: {
44076
+ types: [
44077
+ "number"
44078
+ ]
44079
+ },
44080
+ z: {
44081
+ types: [
44082
+ "number"
44083
+ ]
44084
+ },
44085
+ y: {
44086
+ types: [
44087
+ "number"
44088
+ ]
44089
+ },
44090
+ message: {
44091
+ types: [
44092
+ "string"
44093
+ ]
44094
+ }
44095
+ },
44096
+ required: [
44097
+ "id",
44098
+ "type",
44099
+ "x"
44100
+ ]
44101
+ },
44102
+ default: []
44103
+ },
44104
+ fogOfWar: {
44105
+ types: [
44106
+ "array"
44107
+ ],
44108
+ description: "Fog of war data",
44109
+ items: {
44110
+ types: [
44111
+ "array"
44112
+ ],
44113
+ items: {
44114
+ types: [
44115
+ "boolean"
44116
+ ]
44117
+ }
44118
+ }
44119
+ },
44120
+ orientation: {
44121
+ types: [
44122
+ "string"
44123
+ ],
44124
+ description: "Map orientation",
44125
+ enumValues: [
44126
+ "standard",
44127
+ "rotated"
44128
+ ],
44129
+ default: "standard"
44130
+ },
44131
+ cameraMode: {
44132
+ types: [
44133
+ "string"
44134
+ ],
44135
+ description: "Camera mode",
44136
+ enumValues: [
44137
+ "isometric",
44138
+ "perspective",
44139
+ "top-down"
44140
+ ],
44141
+ default: "isometric"
44142
+ },
44143
+ showGrid: {
44144
+ types: [
44145
+ "boolean"
44146
+ ],
44147
+ description: "Show grid",
44148
+ default: true
44149
+ },
44150
+ showCoordinates: {
44151
+ types: [
44152
+ "boolean"
44153
+ ],
44154
+ description: "Show coordinates overlay",
44155
+ default: false
44156
+ },
44157
+ showTileInfo: {
44158
+ types: [
44159
+ "boolean"
44160
+ ],
44161
+ description: "Show tile information",
44162
+ default: false
44163
+ },
44164
+ overlay: {
44165
+ types: [
44166
+ "string"
44167
+ ],
44168
+ description: "Overlay control mode",
44169
+ enumValues: [
44170
+ "default",
44171
+ "hidden",
44172
+ "minimap"
44173
+ ],
44174
+ default: "default"
44175
+ },
44176
+ shadows: {
44177
+ types: [
44178
+ "boolean"
44179
+ ],
44180
+ description: "Enable shadows",
44181
+ default: true
44182
+ },
44183
+ backgroundColor: {
44184
+ types: [
44185
+ "string"
44186
+ ],
44187
+ description: "Background color",
44188
+ default: "#1a1a2e"
44189
+ },
44190
+ onTileClick: {
44191
+ types: [
44192
+ "function"
44193
+ ],
44194
+ description: "Callback when a tile is clicked",
44195
+ kind: "callback",
44196
+ callbackArgs: [
44197
+ {
44198
+ name: "tile",
44199
+ type: "object",
44200
+ schema: {
44201
+ types: [
44202
+ "object"
44203
+ ],
44204
+ properties: {
44205
+ id: {
44206
+ types: [
44207
+ "string"
44208
+ ]
44209
+ },
44210
+ x: {
44211
+ types: [
44212
+ "number"
44213
+ ]
44214
+ },
44215
+ y: {
44216
+ types: [
44217
+ "number"
44218
+ ]
44219
+ },
44220
+ z: {
44221
+ types: [
44222
+ "number"
44223
+ ]
44224
+ },
44225
+ terrain: {
44226
+ types: [
44227
+ "string"
44228
+ ]
44229
+ },
44230
+ type: {
44231
+ types: [
44232
+ "string"
44233
+ ]
44234
+ },
44235
+ terrainSprite: {
44236
+ types: [
44237
+ "asset"
44238
+ ]
44239
+ },
44240
+ passable: {
44241
+ types: [
44242
+ "boolean"
44243
+ ]
44244
+ },
44245
+ movementCost: {
44246
+ types: [
44247
+ "number"
44248
+ ]
44249
+ },
44250
+ tileType: {
44251
+ types: [
44252
+ "string"
44253
+ ]
44254
+ },
44255
+ elevation: {
44256
+ types: [
44257
+ "number"
44258
+ ]
44259
+ },
44260
+ modelUrl: {
44261
+ types: [
44262
+ "asset"
44263
+ ]
44264
+ }
44265
+ },
44266
+ required: [
44267
+ "x",
44268
+ "y"
44269
+ ]
44270
+ }
44271
+ },
44272
+ {
44273
+ name: "event",
44274
+ type: "object"
44275
+ }
44276
+ ],
44277
+ nonEmittable: true
44278
+ },
44279
+ onUnitClick: {
44280
+ types: [
44281
+ "function"
44282
+ ],
44283
+ description: "Callback when a unit is clicked",
44284
+ kind: "callback",
44285
+ callbackArgs: [
44286
+ {
44287
+ name: "unit",
44288
+ type: "object",
44289
+ schema: {
44290
+ types: [
44291
+ "object"
44292
+ ],
44293
+ properties: {
44294
+ id: {
44295
+ types: [
44296
+ "string"
44297
+ ]
44298
+ },
44299
+ position: {
44300
+ types: [
44301
+ "object"
44302
+ ],
44303
+ properties: {
44304
+ x: {
44305
+ types: [
44306
+ "number"
44307
+ ]
44308
+ },
44309
+ y: {
44310
+ types: [
44311
+ "number"
44312
+ ]
44313
+ }
44314
+ },
44315
+ required: [
44316
+ "x",
44317
+ "y"
44318
+ ]
44319
+ },
44320
+ x: {
44321
+ types: [
44322
+ "number"
44323
+ ]
44324
+ },
44325
+ y: {
44326
+ types: [
44327
+ "number"
44328
+ ]
44329
+ },
44330
+ z: {
44331
+ types: [
44332
+ "number"
44333
+ ]
44334
+ },
44335
+ sprite: {
44336
+ types: [
44337
+ "object"
44338
+ ]
44339
+ },
44340
+ unitType: {
44341
+ types: [
44342
+ "string"
44343
+ ]
44344
+ },
44345
+ heroId: {
44346
+ types: [
44347
+ "string"
44348
+ ]
44349
+ },
44350
+ name: {
44351
+ types: [
44352
+ "string"
44353
+ ]
44354
+ },
44355
+ team: {
44356
+ types: [
44357
+ "string"
44358
+ ],
44359
+ enumValues: [
44360
+ "player",
44361
+ "enemy",
44362
+ "neutral"
44363
+ ]
44364
+ },
44365
+ faction: {
44366
+ types: [
44367
+ "string"
44368
+ ],
44369
+ enumValues: [
44370
+ "player",
44371
+ "enemy",
44372
+ "neutral"
44373
+ ]
44374
+ },
44375
+ health: {
44376
+ types: [
44377
+ "number"
44378
+ ]
44379
+ },
44380
+ maxHealth: {
44381
+ types: [
44382
+ "number"
44383
+ ]
44384
+ },
44385
+ traits: {
44386
+ types: [
44387
+ "array"
44388
+ ],
44389
+ items: {
44390
+ types: [
44391
+ "object"
44392
+ ],
44393
+ properties: {
44394
+ name: {
44395
+ types: [
44396
+ "string"
44397
+ ]
44398
+ },
44399
+ currentState: {
44400
+ types: [
44401
+ "string"
44402
+ ]
44403
+ },
44404
+ states: {
44405
+ types: [
44406
+ "array"
44407
+ ],
44408
+ items: {
44409
+ types: [
44410
+ "string"
44411
+ ]
44412
+ }
44413
+ },
44414
+ cooldown: {
44415
+ types: [
44416
+ "number"
44417
+ ]
44418
+ }
44419
+ },
44420
+ required: [
44421
+ "name",
44422
+ "currentState",
44423
+ "states",
44424
+ "cooldown"
44425
+ ]
44426
+ }
44427
+ },
44428
+ previousPosition: {
44429
+ types: [
44430
+ "object"
44431
+ ],
44432
+ properties: {
44433
+ x: {
44434
+ types: [
44435
+ "number"
44436
+ ]
44437
+ },
44438
+ y: {
44439
+ types: [
44440
+ "number"
44441
+ ]
44442
+ }
44443
+ },
44444
+ required: [
44445
+ "x",
44446
+ "y"
44447
+ ]
44448
+ },
44449
+ elevation: {
44450
+ types: [
44451
+ "number"
44452
+ ]
44453
+ }
44454
+ },
44455
+ required: [
44456
+ "id"
44457
+ ]
44458
+ }
44459
+ },
44460
+ {
44461
+ name: "event",
44462
+ type: "object"
44463
+ }
44464
+ ],
44465
+ nonEmittable: true
44466
+ },
44467
+ onFeatureClick: {
44468
+ types: [
44469
+ "function"
44470
+ ],
44471
+ description: "Callback when a feature is clicked",
44472
+ kind: "callback",
44473
+ callbackArgs: [
44474
+ {
44475
+ name: "feature",
44476
+ type: "object",
44477
+ schema: {
44478
+ types: [
44479
+ "object"
44480
+ ],
44481
+ properties: {
44482
+ id: {
44483
+ types: [
44484
+ "string"
44485
+ ]
44486
+ },
44487
+ x: {
44488
+ types: [
44489
+ "number"
44490
+ ]
44491
+ },
44492
+ y: {
44493
+ types: [
44494
+ "number"
44495
+ ]
44496
+ },
44497
+ z: {
44498
+ types: [
44499
+ "number"
44500
+ ]
44501
+ },
44502
+ type: {
44503
+ types: [
44504
+ "string"
44505
+ ]
44506
+ },
44507
+ sprite: {
44508
+ types: [
44509
+ "object"
44510
+ ]
44511
+ },
44512
+ assetUrl: {
44513
+ types: [
44514
+ "object"
44515
+ ]
44516
+ },
44517
+ color: {
44518
+ types: [
44519
+ "string"
44520
+ ]
44521
+ },
44522
+ elevation: {
44523
+ types: [
44524
+ "number"
44525
+ ]
44526
+ }
44527
+ },
44528
+ required: [
44529
+ "x",
44530
+ "y",
44531
+ "type"
44532
+ ]
44533
+ }
44534
+ },
44535
+ {
44536
+ name: "event",
44537
+ type: "object"
44538
+ }
44539
+ ],
44540
+ nonEmittable: true
44541
+ },
44542
+ onCanvasClick: {
44543
+ types: [
44544
+ "function"
44545
+ ],
44546
+ description: "Callback when canvas is clicked (background)",
44547
+ kind: "callback",
44548
+ callbackArgs: [
44549
+ {
44550
+ name: "event",
44551
+ type: "object"
44552
+ }
44553
+ ],
44554
+ nonEmittable: true
44555
+ },
44556
+ onTileHover: {
44557
+ types: [
44558
+ "function"
44559
+ ],
44560
+ description: "Callback when mouse moves over a tile",
44561
+ kind: "callback",
44562
+ callbackArgs: [
44563
+ {
44564
+ name: "tile",
44565
+ type: "object",
44566
+ schema: {
44567
+ types: [
44568
+ "object"
44569
+ ],
44570
+ properties: {
44571
+ id: {
44572
+ types: [
44573
+ "string"
44574
+ ]
44575
+ },
44576
+ x: {
44577
+ types: [
44578
+ "number"
44579
+ ]
44580
+ },
44581
+ y: {
44582
+ types: [
44583
+ "number"
44584
+ ]
44585
+ },
44586
+ z: {
44587
+ types: [
44588
+ "number"
44589
+ ]
44590
+ },
44591
+ terrain: {
44592
+ types: [
44593
+ "string"
44594
+ ]
44595
+ },
44596
+ type: {
44597
+ types: [
44598
+ "string"
44599
+ ]
44600
+ },
44601
+ terrainSprite: {
44602
+ types: [
44603
+ "asset"
44604
+ ]
44605
+ },
44606
+ passable: {
44607
+ types: [
44608
+ "boolean"
44609
+ ]
44610
+ },
44611
+ movementCost: {
44612
+ types: [
44613
+ "number"
44614
+ ]
44615
+ },
44616
+ tileType: {
44617
+ types: [
44618
+ "string"
44619
+ ]
44620
+ },
44621
+ elevation: {
44622
+ types: [
44623
+ "number"
44624
+ ]
44625
+ },
44626
+ modelUrl: {
44627
+ types: [
44628
+ "asset"
44629
+ ]
44630
+ }
44631
+ },
44632
+ required: [
44633
+ "x",
44634
+ "y"
44635
+ ]
44636
+ }
44637
+ },
44638
+ {
44639
+ name: "event",
44640
+ type: "object"
44641
+ }
44642
+ ],
44643
+ nonEmittable: true
44644
+ },
44645
+ onUnitAnimation: {
44646
+ types: [
44647
+ "function"
44648
+ ],
44649
+ description: "Callback for unit animation state change",
44650
+ kind: "callback",
44651
+ callbackArgs: [
44652
+ {
44653
+ name: "unitId",
44654
+ type: "string"
44655
+ },
44656
+ {
44657
+ name: "state",
44658
+ type: "string"
44659
+ }
44660
+ ]
44661
+ },
44662
+ assetLoader: {
44663
+ types: [
44664
+ "object"
44665
+ ],
44666
+ description: "Asset loader instance (uses global singleton if not provided)"
44667
+ },
44668
+ tileRenderer: {
44669
+ types: [
44670
+ "object"
44671
+ ],
44672
+ description: "Custom tile renderer component"
44673
+ },
44674
+ unitRenderer: {
44675
+ types: [
44676
+ "object"
44677
+ ],
44678
+ description: "Custom unit renderer component"
44679
+ },
44680
+ featureRenderer: {
44681
+ types: [
44682
+ "object"
44683
+ ],
44684
+ description: "Custom feature renderer component"
44685
+ },
44686
+ preloadAssets: {
44687
+ types: [
44688
+ "array"
44689
+ ],
44690
+ description: "URLs to preload",
44691
+ items: {
44692
+ types: [
44693
+ "string"
44694
+ ]
44695
+ },
44696
+ default: []
44697
+ },
44698
+ tileClickEvent: {
44699
+ types: [
44700
+ "string"
44701
+ ],
44702
+ description: "Declarative event: tile click",
44703
+ kind: "event-ref",
44704
+ emitPayloadSchema: [
44705
+ {
44706
+ name: "tileId",
44707
+ type: "string",
44708
+ required: true
44709
+ },
44710
+ {
44711
+ name: "x",
44712
+ type: "number",
44713
+ required: true
44714
+ },
44715
+ {
44716
+ name: "z",
44717
+ type: "number",
44718
+ required: true
44719
+ },
44720
+ {
44721
+ name: "type",
44722
+ type: "string",
44723
+ required: false
44724
+ },
44725
+ {
44726
+ name: "terrain",
44727
+ type: "string",
44728
+ required: false
44729
+ },
44730
+ {
44731
+ name: "elevation",
44732
+ type: "number",
44733
+ required: false
44734
+ }
44735
+ ]
44736
+ },
44737
+ unitClickEvent: {
44738
+ types: [
44739
+ "string"
44740
+ ],
44741
+ description: "Declarative event: unit click",
44742
+ kind: "event-ref",
44743
+ emitPayloadSchema: [
44744
+ {
44745
+ name: "unitId",
44746
+ type: "string",
44747
+ required: true
44748
+ },
44749
+ {
44750
+ name: "x",
44751
+ type: "number",
44752
+ required: true
44753
+ },
44754
+ {
44755
+ name: "z",
44756
+ type: "number",
44757
+ required: true
44758
+ },
44759
+ {
44760
+ name: "unitType",
44761
+ type: "string",
44762
+ required: false
44763
+ },
44764
+ {
44765
+ name: "name",
44766
+ type: "string",
44767
+ required: false
44768
+ },
44769
+ {
44770
+ name: "team",
44771
+ type: "string",
44772
+ required: false
44773
+ },
44774
+ {
44775
+ name: "faction",
44776
+ type: "string",
44777
+ required: false
44778
+ },
44779
+ {
44780
+ name: "health",
44781
+ type: "number",
44782
+ required: false
44783
+ },
44784
+ {
44785
+ name: "maxHealth",
44786
+ type: "number",
44787
+ required: false
44788
+ }
44789
+ ]
44790
+ },
44791
+ featureClickEvent: {
44792
+ types: [
44793
+ "string"
44794
+ ],
44795
+ description: "Declarative event: feature click",
44796
+ kind: "event-ref",
44797
+ emitPayloadSchema: [
44798
+ {
44799
+ name: "featureId",
44800
+ type: "string",
44801
+ required: true
44802
+ },
44803
+ {
44804
+ name: "x",
44805
+ type: "number",
44806
+ required: true
44807
+ },
44808
+ {
44809
+ name: "z",
44810
+ type: "number",
44811
+ required: true
44812
+ },
44813
+ {
44814
+ name: "type",
44815
+ type: "string",
44816
+ required: false
44817
+ },
44818
+ {
44819
+ name: "elevation",
44820
+ type: "number",
44821
+ required: false
44822
+ }
44823
+ ]
44824
+ },
44825
+ canvasClickEvent: {
44826
+ types: [
44827
+ "string"
44828
+ ],
44829
+ description: "Declarative event: canvas click",
44830
+ kind: "event-ref",
44831
+ emitPayloadSchema: [
44832
+ {
44833
+ name: "clientX",
44834
+ type: "number",
44835
+ required: true
44836
+ },
44837
+ {
44838
+ name: "clientY",
44839
+ type: "number",
44840
+ required: true
44841
+ },
44842
+ {
44843
+ name: "button",
44844
+ type: "number",
44845
+ required: true
44846
+ }
44847
+ ]
44848
+ },
44849
+ tileHoverEvent: {
44850
+ types: [
44851
+ "string"
44852
+ ],
44853
+ description: "Declarative event: tile hover",
44854
+ kind: "event-ref",
44855
+ emitPayloadSchema: [
44856
+ {
44857
+ name: "tileId",
44858
+ type: "string",
44859
+ required: true
44860
+ },
44861
+ {
44862
+ name: "x",
44863
+ type: "number",
44864
+ required: true
44865
+ },
44866
+ {
44867
+ name: "z",
44868
+ type: "number",
44869
+ required: true
44870
+ },
44871
+ {
44872
+ name: "type",
44873
+ type: "string",
44874
+ required: false
44875
+ }
44876
+ ]
44877
+ },
44878
+ tileLeaveEvent: {
44879
+ types: [
44880
+ "string"
44881
+ ],
44882
+ description: "Declarative event: tile leave",
44883
+ kind: "event-ref",
44884
+ emitPayloadSchema: []
44885
+ },
44886
+ unitAnimationEvent: {
44887
+ types: [
44888
+ "string"
44889
+ ],
44890
+ description: "Declarative event: unit animation",
44891
+ kind: "event-ref",
44892
+ emitPayloadSchema: [
44893
+ {
44894
+ name: "unitId",
44895
+ type: "string",
44896
+ required: true
44897
+ },
44898
+ {
44899
+ name: "state",
44900
+ type: "string",
44901
+ required: true
44902
+ },
44903
+ {
44904
+ name: "timestamp",
44905
+ type: "number",
44906
+ required: true
44907
+ }
44908
+ ]
44909
+ },
44910
+ cameraChangeEvent: {
44911
+ types: [
44912
+ "string"
44913
+ ],
44914
+ description: "Declarative event: camera change",
44915
+ kind: "event-ref",
44916
+ emitPayloadSchema: [
44917
+ {
44918
+ name: "position",
44919
+ type: "object",
44920
+ required: true
44921
+ },
44922
+ {
44923
+ name: "timestamp",
44924
+ type: "number",
44925
+ required: true
44926
+ }
44927
+ ]
44928
+ },
44929
+ loadingMessage: {
44930
+ types: [
44931
+ "string"
44932
+ ],
44933
+ description: "Loading message",
44934
+ default: "Loading 3D Scene..."
44935
+ },
44936
+ useInstancing: {
44937
+ types: [
44938
+ "boolean"
44939
+ ],
44940
+ description: "Whether to use instancing for tiles",
44941
+ default: true
44942
+ },
44943
+ validMoves: {
44944
+ types: [
44945
+ "array"
44946
+ ],
44947
+ description: "Valid move positions",
44948
+ items: {
44949
+ types: [
44950
+ "object"
44951
+ ],
44952
+ properties: {
44953
+ x: {
44954
+ types: [
44955
+ "number"
44956
+ ]
44957
+ },
44958
+ z: {
44959
+ types: [
44960
+ "number"
44961
+ ]
44962
+ }
44963
+ },
44964
+ required: [
44965
+ "x",
44966
+ "z"
44967
+ ]
44968
+ },
44969
+ default: []
44970
+ },
44971
+ attackTargets: {
44972
+ types: [
44973
+ "array"
44974
+ ],
44975
+ description: "Attack target positions",
44976
+ items: {
44977
+ types: [
44978
+ "object"
44979
+ ],
44980
+ properties: {
44981
+ x: {
44982
+ types: [
44983
+ "number"
44984
+ ]
44985
+ },
44986
+ z: {
44987
+ types: [
44988
+ "number"
44989
+ ]
44990
+ }
44991
+ },
44992
+ required: [
44993
+ "x",
44994
+ "z"
44995
+ ]
44996
+ },
44997
+ default: []
44998
+ },
44999
+ selectedTileIds: {
45000
+ types: [
45001
+ "array"
45002
+ ],
45003
+ description: "Selected tile IDs",
45004
+ items: {
45005
+ types: [
45006
+ "string"
45007
+ ]
45008
+ },
45009
+ default: []
45010
+ },
45011
+ selectedUnitId: {
45012
+ types: [
45013
+ "string"
45014
+ ],
45015
+ description: "Selected unit ID",
45016
+ default: null
45017
+ }
45018
+ }
45019
+ },
45020
+ "game-canvas-3d-battle-template": {
45021
+ type: "game-canvas-3d-battle-template",
45022
+ category: "game",
45023
+ tier: "templates",
45024
+ family: "game",
45025
+ description: "GameCanvas3DBattleTemplate Pure declarative template wrapper for 3D battle scenes. Optimized for tactical combat view with turn indicators. Page: Battle3DPage Entity: Battle3D ViewType: detail Events Emitted: - TILE_SELECTED - When a tile is clicked - UNIT_SELECTED - When a unit is clicked - UNIT_ATTACK - When attacking a unit - UNIT_MOVE - When moving a unit - END_TURN - When ending turn - EXIT_BATTLE - When exiting battle",
45026
+ suggestedFor: [
45027
+ "game",
45028
+ "canvas3",
45029
+ "battle",
45030
+ "template",
45031
+ "game canvas3 d battle template"
45032
+ ],
45033
+ typicalSize: "full",
45034
+ propsSchema: {
45035
+ entity: {
45036
+ types: [
45037
+ "object"
45038
+ ],
45039
+ description: "Entity data, the sole source of runtime state",
45040
+ required: true
45041
+ },
45042
+ className: {
45043
+ types: [
45044
+ "string"
45045
+ ],
45046
+ description: "External styling override"
45047
+ },
45048
+ cameraMode: {
45049
+ types: [
45050
+ "string"
45051
+ ],
45052
+ description: "3D camera mode - defaults to perspective for dramatic effect",
45053
+ enumValues: [
45054
+ "isometric",
45055
+ "perspective",
45056
+ "top-down"
45057
+ ],
45058
+ default: "perspective"
45059
+ },
45060
+ showGrid: {
45061
+ types: [
45062
+ "boolean"
45063
+ ],
45064
+ description: "Show grid helper",
45065
+ default: true
45066
+ },
45067
+ shadows: {
45068
+ types: [
45069
+ "boolean"
45070
+ ],
45071
+ description: "Enable shadows",
45072
+ default: true
45073
+ },
45074
+ backgroundColor: {
45075
+ types: [
45076
+ "string"
45077
+ ],
45078
+ description: "Background color - darker for battle atmosphere",
45079
+ default: "#2a1a1a"
45080
+ },
45081
+ tileClickEvent: {
45082
+ types: [
45083
+ "string"
45084
+ ],
45085
+ description: "Event name for tile clicks"
45086
+ },
45087
+ unitClickEvent: {
45088
+ types: [
45089
+ "string"
45090
+ ],
45091
+ description: "Event name for unit clicks"
45092
+ },
45093
+ unitAttackEvent: {
45094
+ types: [
45095
+ "string"
45096
+ ],
45097
+ description: "Event name for unit attack"
45098
+ },
45099
+ unitMoveEvent: {
45100
+ types: [
45101
+ "string"
45102
+ ],
45103
+ description: "Event name for unit move"
45104
+ },
45105
+ endTurnEvent: {
45106
+ types: [
45107
+ "string"
45108
+ ],
45109
+ description: "Event name for ending turn"
45110
+ },
45111
+ exitEvent: {
45112
+ types: [
45113
+ "string"
45114
+ ],
45115
+ description: "Event name for exiting battle"
45116
+ },
45117
+ selectedUnitId: {
45118
+ types: [
45119
+ "string"
45120
+ ],
45121
+ description: "Currently selected unit ID"
45122
+ },
45123
+ validMoves: {
43246
45124
  types: [
43247
45125
  "array"
43248
45126
  ],
43249
- description: "Alias for `columns`.",
45127
+ description: "Valid move positions",
43250
45128
  items: {
43251
45129
  types: [
43252
45130
  "object"
43253
45131
  ],
43254
45132
  properties: {
43255
- key: {
43256
- types: [
43257
- "string"
43258
- ]
43259
- },
43260
- field: {
43261
- types: [
43262
- "string"
43263
- ]
43264
- },
43265
- header: {
43266
- types: [
43267
- "string"
43268
- ]
43269
- },
43270
- label: {
43271
- types: [
43272
- "string"
43273
- ]
43274
- },
43275
- width: {
43276
- types: [
43277
- "string"
43278
- ]
43279
- },
43280
- align: {
43281
- types: [
43282
- "string"
43283
- ],
43284
- enumValues: [
43285
- "left",
43286
- "center",
43287
- "right"
43288
- ]
43289
- },
43290
- className: {
43291
- types: [
43292
- "string"
43293
- ]
43294
- },
43295
- weight: {
43296
- types: [
43297
- "string"
43298
- ],
43299
- enumValues: [
43300
- "normal",
43301
- "medium",
43302
- "semibold"
43303
- ]
43304
- },
43305
- format: {
43306
- types: [
43307
- "string"
43308
- ],
43309
- enumValues: [
43310
- "badge",
43311
- "date",
43312
- "currency",
43313
- "number",
43314
- "percent",
43315
- "boolean"
43316
- ]
43317
- },
43318
- icon: {
45133
+ x: {
43319
45134
  types: [
43320
- "icon",
43321
- "string"
45135
+ "number"
43322
45136
  ]
43323
45137
  },
43324
- sortable: {
45138
+ z: {
43325
45139
  types: [
43326
- "boolean"
45140
+ "number"
43327
45141
  ]
43328
45142
  }
43329
45143
  },
43330
45144
  required: [
43331
- "key"
45145
+ "x",
45146
+ "z"
43332
45147
  ]
43333
45148
  }
43334
45149
  },
43335
- itemActions: {
45150
+ attackTargets: {
43336
45151
  types: [
43337
45152
  "array"
43338
45153
  ],
43339
- description: "Per-row action buttons (trailing column).",
43340
- kind: "event-list",
43341
- eventField: "event",
45154
+ description: "Valid attack targets",
43342
45155
  items: {
43343
45156
  types: [
43344
45157
  "object"
43345
45158
  ],
43346
45159
  properties: {
43347
- label: {
43348
- types: [
43349
- "string"
43350
- ]
43351
- },
43352
- event: {
43353
- types: [
43354
- "string"
43355
- ]
43356
- },
43357
- icon: {
45160
+ x: {
43358
45161
  types: [
43359
- "icon",
43360
- "string"
45162
+ "number"
43361
45163
  ]
43362
45164
  },
43363
- variant: {
45165
+ z: {
43364
45166
  types: [
43365
- "string"
43366
- ],
43367
- enumValues: [
43368
- "primary",
43369
- "secondary",
43370
- "ghost",
43371
- "danger"
45167
+ "number"
43372
45168
  ]
43373
45169
  }
43374
45170
  },
43375
45171
  required: [
43376
- "label",
43377
- "event"
45172
+ "x",
45173
+ "z"
43378
45174
  ]
43379
45175
  }
43380
45176
  },
43381
- maxInlineActions: {
43382
- types: [
43383
- "number"
43384
- ],
43385
- description: 'Max inline action buttons before the rest collapse into a "\u22EF" overflow menu. Omit = all inline.'
43386
- },
43387
- selectable: {
45177
+ showTurnIndicator: {
43388
45178
  types: [
43389
45179
  "boolean"
43390
45180
  ],
43391
- description: "Render a leading checkbox column. Selection changes emit `selectEvent`.",
43392
- default: false
43393
- },
43394
- selectEvent: {
43395
- types: [
43396
- "string"
43397
- ],
43398
- description: "Event emitted on selection change: UI:{selectEvent} with { ids, rows }.",
43399
- kind: "event"
43400
- },
43401
- selectedIds: {
43402
- types: [
43403
- "array"
43404
- ],
43405
- description: "Currently-selected ids (controlled). Falls back to local state when omitted.",
43406
- items: {
43407
- types: [
43408
- "string"
43409
- ]
43410
- }
43411
- },
43412
- sortEvent: {
45181
+ description: "Show turn indicator overlay"
45182
+ }
45183
+ }
45184
+ },
45185
+ "game-canvas-3d-castle-template": {
45186
+ type: "game-canvas-3d-castle-template",
45187
+ category: "game",
45188
+ tier: "templates",
45189
+ family: "game",
45190
+ description: "GameCanvas3DCastleTemplate Pure declarative template wrapper for 3D castle/settlement view. Shows castle layout with buildings and garrisoned units. Page: Castle3DPage, Settlement3DPage Entity: Castle3D, Settlement3D ViewType: detail Events Emitted: - BUILDING_SELECTED - When a building is clicked - UNIT_SELECTED - When a garrison unit is clicked - BUILD - When building/upgrading - RECRUIT - When recruiting units - EXIT - When exiting castle view",
45191
+ suggestedFor: [
45192
+ "game",
45193
+ "canvas3",
45194
+ "castle",
45195
+ "template",
45196
+ "game canvas3 d castle template"
45197
+ ],
45198
+ typicalSize: "full",
45199
+ propsSchema: {
45200
+ entity: {
43413
45201
  types: [
43414
- "string"
45202
+ "object"
43415
45203
  ],
43416
- description: "Event emitted on sortable-header click: UI:{sortEvent} with { column, direction }.",
43417
- kind: "event"
45204
+ description: "Entity data, the sole source of runtime state",
45205
+ required: true
43418
45206
  },
43419
- sortColumn: {
45207
+ className: {
43420
45208
  types: [
43421
45209
  "string"
43422
45210
  ],
43423
- description: "Current sort column (display hint for the active header arrow)."
45211
+ description: "External styling override"
43424
45212
  },
43425
- sortDirection: {
45213
+ cameraMode: {
43426
45214
  types: [
43427
45215
  "string"
43428
45216
  ],
43429
- description: "Current sort direction (display hint).",
45217
+ description: "3D camera mode",
43430
45218
  enumValues: [
43431
- "asc",
43432
- "desc"
43433
- ]
43434
- },
43435
- className: {
43436
- types: [
43437
- "string"
45219
+ "isometric",
45220
+ "perspective",
45221
+ "top-down"
43438
45222
  ],
43439
- description: "Additional CSS classes applied to the table root."
45223
+ default: "isometric"
43440
45224
  },
43441
- emptyMessage: {
45225
+ showGrid: {
43442
45226
  types: [
43443
- "string"
45227
+ "boolean"
43444
45228
  ],
43445
- description: "Message shown when there are no rows."
45229
+ description: "Show grid helper",
45230
+ default: true
43446
45231
  },
43447
- isLoading: {
45232
+ shadows: {
43448
45233
  types: [
43449
45234
  "boolean"
43450
45235
  ],
43451
- description: "Loading state.",
43452
- default: false
45236
+ description: "Enable shadows",
45237
+ default: true
43453
45238
  },
43454
- error: {
45239
+ backgroundColor: {
43455
45240
  types: [
43456
- "object"
43457
- ],
43458
- description: "Error state.",
43459
- properties: {
43460
- message: {
43461
- types: [
43462
- "string"
43463
- ]
43464
- },
43465
- name: {
43466
- types: [
43467
- "string"
43468
- ]
43469
- },
43470
- code: {
43471
- types: [
43472
- "string"
43473
- ]
43474
- },
43475
- stack: {
43476
- types: [
43477
- "string"
43478
- ]
43479
- }
43480
- },
43481
- propertyRequired: [
43482
- "message"
45241
+ "string"
43483
45242
  ],
43484
- default: null
45243
+ description: "Background color",
45244
+ default: "#1e1e2e"
43485
45245
  },
43486
- groupBy: {
45246
+ buildingClickEvent: {
43487
45247
  types: [
43488
45248
  "string"
43489
45249
  ],
43490
- description: "Group rows under section headers by a field value."
45250
+ description: "Event name for building clicks"
43491
45251
  },
43492
- pageSize: {
45252
+ unitClickEvent: {
43493
45253
  types: [
43494
- "number"
45254
+ "string"
43495
45255
  ],
43496
- description: 'Max rows before a "Show More" button. Defaults to 0 (show all).',
43497
- default: 0
45256
+ description: "Event name for unit clicks"
43498
45257
  },
43499
- children: {
45258
+ buildEvent: {
43500
45259
  types: [
43501
- "function"
43502
- ],
43503
- description: "Custom per-row render. When provided, the whole row content is delegated to this function (columns are ignored for the body; the header still renders). Mirrors DataList's children render prop.",
43504
- kind: "callback",
43505
- callbackArgs: [
43506
- {
43507
- name: "item",
43508
- type: "object"
43509
- },
43510
- {
43511
- name: "index",
43512
- type: "number"
43513
- }
45260
+ "string"
43514
45261
  ],
43515
- renderCallback: true
45262
+ description: "Event name for build action"
43516
45263
  },
43517
- renderItem: {
45264
+ recruitEvent: {
43518
45265
  types: [
43519
- "function"
43520
- ],
43521
- description: 'Per-row render function (schema alias). In .orb: ["fn","item",{...}]. The compiler converts this to the children render prop.',
43522
- kind: "callback",
43523
- callbackArgs: [
43524
- {
43525
- name: "item",
43526
- type: "object"
43527
- },
43528
- {
43529
- name: "index",
43530
- type: "number"
43531
- }
45266
+ "string"
43532
45267
  ],
43533
- renderCallback: true
45268
+ description: "Event name for recruit action"
43534
45269
  },
43535
- look: {
45270
+ exitEvent: {
43536
45271
  types: [
43537
45272
  "string"
43538
45273
  ],
43539
- description: "Layer 2 visual treatment \u2014 mirrors the data-list / entity-table look enum so authors share one knob name across row renderers.",
43540
- enumValues: [
43541
- "dense",
43542
- "spacious",
43543
- "striped",
43544
- "borderless",
43545
- "bordered"
45274
+ description: "Event name for exit"
45275
+ },
45276
+ selectedBuildingId: {
45277
+ types: [
45278
+ "string"
43546
45279
  ],
43547
- default: "dense"
43548
- }
43549
- }
43550
- },
43551
- "step-flow": {
43552
- type: "step-flow",
43553
- category: "component",
43554
- tier: "molecules",
43555
- family: "marketing",
43556
- description: "StepFlow component",
43557
- suggestedFor: [
43558
- "step",
43559
- "flow",
43560
- "step flow"
43561
- ],
43562
- typicalSize: "medium",
43563
- propsSchema: {
43564
- steps: {
45280
+ description: "Currently selected building ID"
45281
+ },
45282
+ availableBuildSites: {
43565
45283
  types: [
43566
45284
  "array"
43567
45285
  ],
43568
- description: "steps prop",
43569
- required: true,
45286
+ description: "Available build positions",
43570
45287
  items: {
43571
45288
  types: [
43572
45289
  "object"
43573
45290
  ],
43574
45291
  properties: {
43575
- number: {
45292
+ x: {
43576
45293
  types: [
43577
45294
  "number"
43578
45295
  ]
43579
45296
  },
43580
- title: {
43581
- types: [
43582
- "string"
43583
- ]
43584
- },
43585
- description: {
43586
- types: [
43587
- "string"
43588
- ]
43589
- },
43590
- icon: {
45297
+ z: {
43591
45298
  types: [
43592
- "icon",
43593
- "string"
45299
+ "number"
43594
45300
  ]
43595
45301
  }
43596
45302
  },
43597
45303
  required: [
43598
- "title",
43599
- "description"
45304
+ "x",
45305
+ "z"
43600
45306
  ]
43601
45307
  }
43602
45308
  },
43603
- orientation: {
43604
- types: [
43605
- "string"
43606
- ],
43607
- description: "orientation prop",
43608
- enumValues: [
43609
- "horizontal",
43610
- "vertical"
43611
- ],
43612
- default: "horizontal"
43613
- },
43614
- showConnectors: {
45309
+ showHeader: {
43615
45310
  types: [
43616
45311
  "boolean"
43617
45312
  ],
43618
- description: "showConnectors prop",
45313
+ description: "Show castle name header",
43619
45314
  default: true
43620
45315
  },
43621
- className: {
45316
+ selectedTileIds: {
43622
45317
  types: [
43623
- "string"
45318
+ "array"
43624
45319
  ],
43625
- description: "className prop"
45320
+ description: "Pre-computed selected tile IDs array",
45321
+ items: {
45322
+ types: [
45323
+ "string"
45324
+ ]
45325
+ },
45326
+ default: []
43626
45327
  }
43627
45328
  }
43628
45329
  },
43629
- "stat-card": {
43630
- type: "stat-card",
43631
- category: "display",
43632
- tier: "atoms",
43633
- family: "marketing",
43634
- description: "StatCard component",
45330
+ "game-canvas-3d-world-map-template": {
45331
+ type: "game-canvas-3d-world-map-template",
45332
+ category: "game",
45333
+ tier: "templates",
45334
+ family: "game",
45335
+ description: "GameCanvas3DWorldMapTemplate Pure declarative template wrapper for 3D world map. No hooks, no callbacks, no local state -- just entity data and config props. Page: WorldMap3DPage Entity: WorldMap3D ViewType: detail Events Emitted: - TILE_SELECTED - When a tile is clicked ({ tileId, x, z, type }) - UNIT_SELECTED - When a unit is clicked ({ unitId, x, z, name }) - FEATURE_SELECTED - When a feature is clicked ({ featureId, x, z, type }) - TILE_HOVERED - When hovering over a tile ({ tileId, x, z }) - TILE_LEAVE - When leaving a tile ({}) - CAMERA_CHANGED - When camera position changes ({ position })",
43635
45336
  suggestedFor: [
43636
- "stat",
43637
- "card",
43638
- "stat card"
45337
+ "game",
45338
+ "canvas3",
45339
+ "world",
45340
+ "map",
45341
+ "template",
45342
+ "game canvas3 d world map template"
43639
45343
  ],
43640
- typicalSize: "small",
45344
+ typicalSize: "full",
43641
45345
  propsSchema: {
43642
- value: {
45346
+ entity: {
43643
45347
  types: [
43644
- "string"
45348
+ "object"
43645
45349
  ],
43646
- description: "The stat value to display prominently",
45350
+ description: "Entity data, the sole source of runtime state",
43647
45351
  required: true
43648
45352
  },
43649
- label: {
45353
+ className: {
43650
45354
  types: [
43651
45355
  "string"
43652
45356
  ],
43653
- description: "Label describing the value",
43654
- required: true
45357
+ description: "External styling override"
43655
45358
  },
43656
- size: {
45359
+ cameraMode: {
43657
45360
  types: [
43658
45361
  "string"
43659
45362
  ],
43660
- description: "Size of the value text",
45363
+ description: "3D camera mode",
43661
45364
  enumValues: [
43662
- "sm",
43663
- "md",
43664
- "lg"
45365
+ "isometric",
45366
+ "perspective",
45367
+ "top-down"
43665
45368
  ],
43666
- default: "md"
45369
+ default: "isometric"
43667
45370
  },
43668
- className: {
45371
+ showGrid: {
45372
+ types: [
45373
+ "boolean"
45374
+ ],
45375
+ description: "Show grid helper",
45376
+ default: true
45377
+ },
45378
+ showCoordinates: {
45379
+ types: [
45380
+ "boolean"
45381
+ ],
45382
+ description: "Show coordinate overlay",
45383
+ default: true
45384
+ },
45385
+ showTileInfo: {
45386
+ types: [
45387
+ "boolean"
45388
+ ],
45389
+ description: "Show tile info on hover",
45390
+ default: true
45391
+ },
45392
+ shadows: {
45393
+ types: [
45394
+ "boolean"
45395
+ ],
45396
+ description: "Enable shadows",
45397
+ default: true
45398
+ },
45399
+ backgroundColor: {
43669
45400
  types: [
43670
45401
  "string"
43671
45402
  ],
43672
- description: "Additional class names"
45403
+ description: "Background color",
45404
+ default: "#1a1a2e"
45405
+ },
45406
+ tileClickEvent: {
45407
+ types: [
45408
+ "string"
45409
+ ],
45410
+ description: "Event name for tile clicks"
45411
+ },
45412
+ unitClickEvent: {
45413
+ types: [
45414
+ "string"
45415
+ ],
45416
+ description: "Event name for unit clicks"
45417
+ },
45418
+ featureClickEvent: {
45419
+ types: [
45420
+ "string"
45421
+ ],
45422
+ description: "Event name for feature clicks"
45423
+ },
45424
+ tileHoverEvent: {
45425
+ types: [
45426
+ "string"
45427
+ ],
45428
+ description: "Event name for tile hover"
45429
+ },
45430
+ tileLeaveEvent: {
45431
+ types: [
45432
+ "string"
45433
+ ],
45434
+ description: "Event name for tile leave"
45435
+ },
45436
+ cameraChangeEvent: {
45437
+ types: [
45438
+ "string"
45439
+ ],
45440
+ description: "Event name for camera changes"
45441
+ },
45442
+ exitEvent: {
45443
+ types: [
45444
+ "string"
45445
+ ],
45446
+ description: "Exit/back event name"
45447
+ },
45448
+ selectedUnitId: {
45449
+ types: [
45450
+ "string"
45451
+ ],
45452
+ description: "Currently selected unit ID"
45453
+ },
45454
+ validMoves: {
45455
+ types: [
45456
+ "array"
45457
+ ],
45458
+ description: "Valid move positions for selected unit",
45459
+ items: {
45460
+ types: [
45461
+ "object"
45462
+ ],
45463
+ properties: {
45464
+ x: {
45465
+ types: [
45466
+ "number"
45467
+ ]
45468
+ },
45469
+ z: {
45470
+ types: [
45471
+ "number"
45472
+ ]
45473
+ }
45474
+ },
45475
+ required: [
45476
+ "x",
45477
+ "z"
45478
+ ]
45479
+ }
45480
+ },
45481
+ attackTargets: {
45482
+ types: [
45483
+ "array"
45484
+ ],
45485
+ description: "Attack target positions",
45486
+ items: {
45487
+ types: [
45488
+ "object"
45489
+ ],
45490
+ properties: {
45491
+ x: {
45492
+ types: [
45493
+ "number"
45494
+ ]
45495
+ },
45496
+ z: {
45497
+ types: [
45498
+ "number"
45499
+ ]
45500
+ }
45501
+ },
45502
+ required: [
45503
+ "x",
45504
+ "z"
45505
+ ]
45506
+ }
43673
45507
  }
43674
45508
  }
43675
45509
  }
@@ -44299,7 +46133,7 @@ var integrators_registry_default = {
44299
46133
  // src/component-mapping.json
44300
46134
  var component_mapping_default = {
44301
46135
  version: "1.0.0",
44302
- exportedAt: "2026-06-17T02:56:15.601Z",
46136
+ exportedAt: "2026-06-17T11:00:54.689Z",
44303
46137
  mappings: {
44304
46138
  "page-header": {
44305
46139
  component: "PageHeader",
@@ -45730,7 +47564,7 @@ var component_mapping_default = {
45730
47564
  },
45731
47565
  "feature-renderer": {
45732
47566
  component: "FeatureRenderer",
45733
- importPath: "@/components/organisms/FeatureRenderer",
47567
+ importPath: "@/components/molecules/FeatureRenderer",
45734
47568
  category: "game"
45735
47569
  },
45736
47570
  "dashboard-grid": {
@@ -45797,6 +47631,26 @@ var component_mapping_default = {
45797
47631
  component: "StatCard",
45798
47632
  importPath: "@/components/atoms/StatCard",
45799
47633
  category: "display"
47634
+ },
47635
+ "game-canvas-3d": {
47636
+ component: "GameCanvas3D",
47637
+ importPath: "@almadar/ui/components/organisms/game/three",
47638
+ category: "game"
47639
+ },
47640
+ "game-canvas-3d-battle-template": {
47641
+ component: "GameCanvas3DBattleTemplate",
47642
+ importPath: "@/components/templates/GameCanvas3DBattleTemplate",
47643
+ category: "game"
47644
+ },
47645
+ "game-canvas-3d-castle-template": {
47646
+ component: "GameCanvas3DCastleTemplate",
47647
+ importPath: "@/components/templates/GameCanvas3DCastleTemplate",
47648
+ category: "game"
47649
+ },
47650
+ "game-canvas-3d-world-map-template": {
47651
+ component: "GameCanvas3DWorldMapTemplate",
47652
+ importPath: "@/components/templates/GameCanvas3DWorldMapTemplate",
47653
+ category: "game"
45800
47654
  }
45801
47655
  }
45802
47656
  };
@@ -45804,7 +47658,7 @@ var component_mapping_default = {
45804
47658
  // src/event-contracts.json
45805
47659
  var event_contracts_default = {
45806
47660
  version: "1.0.0",
45807
- exportedAt: "2026-06-17T02:56:15.601Z",
47661
+ exportedAt: "2026-06-17T11:00:54.689Z",
45808
47662
  contracts: {
45809
47663
  form: {
45810
47664
  emits: [
@@ -46051,7 +47905,7 @@ var event_contracts_default = {
46051
47905
  }
46052
47906
  ],
46053
47907
  requires: [],
46054
- entityAware: true,
47908
+ entityAware: false,
46055
47909
  configDriven: true
46056
47910
  },
46057
47911
  "filter-group": {
@@ -46657,7 +48511,7 @@ var event_contracts_default = {
46657
48511
  }
46658
48512
  ],
46659
48513
  requires: [],
46660
- entityAware: true
48514
+ entityAware: false
46661
48515
  },
46662
48516
  "media-gallery": {
46663
48517
  emits: [