@almadar/patterns 2.46.0 → 2.47.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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": "1.0.0",
3
- "exportedAt": "2026-06-17T02:56:15.601Z",
3
+ "exportedAt": "2026-06-17T08:23:54.917Z",
4
4
  "patterns": {
5
5
  "entity-table": {
6
6
  "type": "entity-table",
@@ -41918,7 +41918,7 @@
41918
41918
  "feature-renderer": {
41919
41919
  "type": "feature-renderer",
41920
41920
  "category": "game",
41921
- "tier": "organisms",
41921
+ "tier": "molecules",
41922
41922
  "family": "game",
41923
41923
  "description": "FeatureRenderer component",
41924
41924
  "suggestedFor": [
@@ -43671,6 +43671,1808 @@
43671
43671
  "description": "Additional class names"
43672
43672
  }
43673
43673
  }
43674
+ },
43675
+ "game-canvas-3d": {
43676
+ "type": "game-canvas-3d",
43677
+ "category": "game",
43678
+ "tier": "molecules",
43679
+ "family": "game",
43680
+ "description": "Props for GameCanvas3D component",
43681
+ "suggestedFor": [
43682
+ "game",
43683
+ "canvas3",
43684
+ "game canvas3 d"
43685
+ ],
43686
+ "typicalSize": "medium",
43687
+ "propsSchema": {
43688
+ "className": {
43689
+ "types": [
43690
+ "string"
43691
+ ],
43692
+ "description": "--- Closed-circuit props (MANDATORY) ---"
43693
+ },
43694
+ "children": {
43695
+ "types": [
43696
+ "node"
43697
+ ],
43698
+ "description": "Children to render inside the 3D canvas (e.g., physics objects, custom meshes)"
43699
+ },
43700
+ "isLoading": {
43701
+ "types": [
43702
+ "boolean"
43703
+ ],
43704
+ "description": "Loading state indicator"
43705
+ },
43706
+ "error": {
43707
+ "types": [
43708
+ "string"
43709
+ ],
43710
+ "description": "Error state"
43711
+ },
43712
+ "entity": {
43713
+ "types": [
43714
+ "string"
43715
+ ],
43716
+ "description": "Entity name for schema-driven auto-fetch"
43717
+ },
43718
+ "tiles": {
43719
+ "types": [
43720
+ "array"
43721
+ ],
43722
+ "description": "Array of tiles to render",
43723
+ "items": {
43724
+ "types": [
43725
+ "object"
43726
+ ],
43727
+ "properties": {
43728
+ "id": {
43729
+ "types": [
43730
+ "string"
43731
+ ]
43732
+ },
43733
+ "x": {
43734
+ "types": [
43735
+ "number"
43736
+ ]
43737
+ },
43738
+ "y": {
43739
+ "types": [
43740
+ "number"
43741
+ ]
43742
+ },
43743
+ "z": {
43744
+ "types": [
43745
+ "number"
43746
+ ]
43747
+ },
43748
+ "terrain": {
43749
+ "types": [
43750
+ "string"
43751
+ ]
43752
+ },
43753
+ "type": {
43754
+ "types": [
43755
+ "string"
43756
+ ]
43757
+ },
43758
+ "terrainSprite": {
43759
+ "types": [
43760
+ "asset"
43761
+ ]
43762
+ },
43763
+ "passable": {
43764
+ "types": [
43765
+ "boolean"
43766
+ ]
43767
+ },
43768
+ "movementCost": {
43769
+ "types": [
43770
+ "number"
43771
+ ]
43772
+ },
43773
+ "tileType": {
43774
+ "types": [
43775
+ "string"
43776
+ ]
43777
+ },
43778
+ "elevation": {
43779
+ "types": [
43780
+ "number"
43781
+ ]
43782
+ }
43783
+ },
43784
+ "required": [
43785
+ "x",
43786
+ "y"
43787
+ ]
43788
+ },
43789
+ "default": []
43790
+ },
43791
+ "units": {
43792
+ "types": [
43793
+ "array"
43794
+ ],
43795
+ "description": "Array of units to render",
43796
+ "items": {
43797
+ "types": [
43798
+ "object"
43799
+ ],
43800
+ "properties": {
43801
+ "id": {
43802
+ "types": [
43803
+ "string"
43804
+ ]
43805
+ },
43806
+ "position": {
43807
+ "types": [
43808
+ "object"
43809
+ ],
43810
+ "properties": {
43811
+ "x": {
43812
+ "types": [
43813
+ "number"
43814
+ ]
43815
+ },
43816
+ "y": {
43817
+ "types": [
43818
+ "number"
43819
+ ]
43820
+ }
43821
+ },
43822
+ "required": [
43823
+ "x",
43824
+ "y"
43825
+ ]
43826
+ },
43827
+ "x": {
43828
+ "types": [
43829
+ "number"
43830
+ ]
43831
+ },
43832
+ "y": {
43833
+ "types": [
43834
+ "number"
43835
+ ]
43836
+ },
43837
+ "z": {
43838
+ "types": [
43839
+ "number"
43840
+ ]
43841
+ },
43842
+ "sprite": {
43843
+ "types": [
43844
+ "object"
43845
+ ]
43846
+ },
43847
+ "unitType": {
43848
+ "types": [
43849
+ "string"
43850
+ ]
43851
+ },
43852
+ "heroId": {
43853
+ "types": [
43854
+ "string"
43855
+ ]
43856
+ },
43857
+ "name": {
43858
+ "types": [
43859
+ "string"
43860
+ ]
43861
+ },
43862
+ "team": {
43863
+ "types": [
43864
+ "string"
43865
+ ],
43866
+ "enumValues": [
43867
+ "player",
43868
+ "enemy",
43869
+ "neutral"
43870
+ ]
43871
+ },
43872
+ "faction": {
43873
+ "types": [
43874
+ "string"
43875
+ ],
43876
+ "enumValues": [
43877
+ "player",
43878
+ "enemy",
43879
+ "neutral"
43880
+ ]
43881
+ },
43882
+ "health": {
43883
+ "types": [
43884
+ "number"
43885
+ ]
43886
+ },
43887
+ "maxHealth": {
43888
+ "types": [
43889
+ "number"
43890
+ ]
43891
+ },
43892
+ "traits": {
43893
+ "types": [
43894
+ "array"
43895
+ ],
43896
+ "items": {
43897
+ "types": [
43898
+ "object"
43899
+ ],
43900
+ "properties": {
43901
+ "name": {
43902
+ "types": [
43903
+ "string"
43904
+ ]
43905
+ },
43906
+ "currentState": {
43907
+ "types": [
43908
+ "string"
43909
+ ]
43910
+ },
43911
+ "states": {
43912
+ "types": [
43913
+ "array"
43914
+ ],
43915
+ "items": {
43916
+ "types": [
43917
+ "string"
43918
+ ]
43919
+ }
43920
+ },
43921
+ "cooldown": {
43922
+ "types": [
43923
+ "number"
43924
+ ]
43925
+ }
43926
+ },
43927
+ "required": [
43928
+ "name",
43929
+ "currentState",
43930
+ "states",
43931
+ "cooldown"
43932
+ ]
43933
+ }
43934
+ },
43935
+ "previousPosition": {
43936
+ "types": [
43937
+ "object"
43938
+ ],
43939
+ "properties": {
43940
+ "x": {
43941
+ "types": [
43942
+ "number"
43943
+ ]
43944
+ },
43945
+ "y": {
43946
+ "types": [
43947
+ "number"
43948
+ ]
43949
+ }
43950
+ },
43951
+ "required": [
43952
+ "x",
43953
+ "y"
43954
+ ]
43955
+ },
43956
+ "elevation": {
43957
+ "types": [
43958
+ "number"
43959
+ ]
43960
+ }
43961
+ },
43962
+ "required": [
43963
+ "id"
43964
+ ]
43965
+ },
43966
+ "default": []
43967
+ },
43968
+ "features": {
43969
+ "types": [
43970
+ "array"
43971
+ ],
43972
+ "description": "Array of features to render",
43973
+ "items": {
43974
+ "types": [
43975
+ "object"
43976
+ ],
43977
+ "properties": {
43978
+ "id": {
43979
+ "types": [
43980
+ "string"
43981
+ ]
43982
+ },
43983
+ "x": {
43984
+ "types": [
43985
+ "number"
43986
+ ]
43987
+ },
43988
+ "y": {
43989
+ "types": [
43990
+ "number"
43991
+ ]
43992
+ },
43993
+ "z": {
43994
+ "types": [
43995
+ "number"
43996
+ ]
43997
+ },
43998
+ "type": {
43999
+ "types": [
44000
+ "string"
44001
+ ]
44002
+ },
44003
+ "sprite": {
44004
+ "types": [
44005
+ "object"
44006
+ ]
44007
+ },
44008
+ "assetUrl": {
44009
+ "types": [
44010
+ "object"
44011
+ ]
44012
+ },
44013
+ "color": {
44014
+ "types": [
44015
+ "string"
44016
+ ]
44017
+ },
44018
+ "elevation": {
44019
+ "types": [
44020
+ "number"
44021
+ ]
44022
+ }
44023
+ },
44024
+ "required": [
44025
+ "x",
44026
+ "y",
44027
+ "type"
44028
+ ]
44029
+ },
44030
+ "default": []
44031
+ },
44032
+ "events": {
44033
+ "types": [
44034
+ "array"
44035
+ ],
44036
+ "description": "Array of events to display",
44037
+ "items": {
44038
+ "types": [
44039
+ "object"
44040
+ ],
44041
+ "properties": {
44042
+ "id": {
44043
+ "types": [
44044
+ "string"
44045
+ ]
44046
+ },
44047
+ "type": {
44048
+ "types": [
44049
+ "string"
44050
+ ]
44051
+ },
44052
+ "x": {
44053
+ "types": [
44054
+ "number"
44055
+ ]
44056
+ },
44057
+ "z": {
44058
+ "types": [
44059
+ "number"
44060
+ ]
44061
+ },
44062
+ "y": {
44063
+ "types": [
44064
+ "number"
44065
+ ]
44066
+ },
44067
+ "message": {
44068
+ "types": [
44069
+ "string"
44070
+ ]
44071
+ }
44072
+ },
44073
+ "required": [
44074
+ "id",
44075
+ "type",
44076
+ "x"
44077
+ ]
44078
+ },
44079
+ "default": []
44080
+ },
44081
+ "fogOfWar": {
44082
+ "types": [
44083
+ "array"
44084
+ ],
44085
+ "description": "Fog of war data",
44086
+ "items": {
44087
+ "types": [
44088
+ "array"
44089
+ ],
44090
+ "items": {
44091
+ "types": [
44092
+ "boolean"
44093
+ ]
44094
+ }
44095
+ }
44096
+ },
44097
+ "orientation": {
44098
+ "types": [
44099
+ "string"
44100
+ ],
44101
+ "description": "Map orientation",
44102
+ "enumValues": [
44103
+ "standard",
44104
+ "rotated"
44105
+ ],
44106
+ "default": "standard"
44107
+ },
44108
+ "cameraMode": {
44109
+ "types": [
44110
+ "string"
44111
+ ],
44112
+ "description": "Camera mode",
44113
+ "enumValues": [
44114
+ "isometric",
44115
+ "perspective",
44116
+ "top-down"
44117
+ ],
44118
+ "default": "isometric"
44119
+ },
44120
+ "showGrid": {
44121
+ "types": [
44122
+ "boolean"
44123
+ ],
44124
+ "description": "Show grid",
44125
+ "default": true
44126
+ },
44127
+ "showCoordinates": {
44128
+ "types": [
44129
+ "boolean"
44130
+ ],
44131
+ "description": "Show coordinates overlay",
44132
+ "default": false
44133
+ },
44134
+ "showTileInfo": {
44135
+ "types": [
44136
+ "boolean"
44137
+ ],
44138
+ "description": "Show tile information",
44139
+ "default": false
44140
+ },
44141
+ "overlay": {
44142
+ "types": [
44143
+ "string"
44144
+ ],
44145
+ "description": "Overlay control mode",
44146
+ "enumValues": [
44147
+ "default",
44148
+ "hidden",
44149
+ "minimap"
44150
+ ],
44151
+ "default": "default"
44152
+ },
44153
+ "shadows": {
44154
+ "types": [
44155
+ "boolean"
44156
+ ],
44157
+ "description": "Enable shadows",
44158
+ "default": true
44159
+ },
44160
+ "backgroundColor": {
44161
+ "types": [
44162
+ "string"
44163
+ ],
44164
+ "description": "Background color",
44165
+ "default": "#1a1a2e"
44166
+ },
44167
+ "onTileClick": {
44168
+ "types": [
44169
+ "function"
44170
+ ],
44171
+ "description": "Callback when a tile is clicked",
44172
+ "kind": "callback",
44173
+ "callbackArgs": [
44174
+ {
44175
+ "name": "tile",
44176
+ "type": "object",
44177
+ "schema": {
44178
+ "types": [
44179
+ "object"
44180
+ ],
44181
+ "properties": {
44182
+ "id": {
44183
+ "types": [
44184
+ "string"
44185
+ ]
44186
+ },
44187
+ "x": {
44188
+ "types": [
44189
+ "number"
44190
+ ]
44191
+ },
44192
+ "y": {
44193
+ "types": [
44194
+ "number"
44195
+ ]
44196
+ },
44197
+ "z": {
44198
+ "types": [
44199
+ "number"
44200
+ ]
44201
+ },
44202
+ "terrain": {
44203
+ "types": [
44204
+ "string"
44205
+ ]
44206
+ },
44207
+ "type": {
44208
+ "types": [
44209
+ "string"
44210
+ ]
44211
+ },
44212
+ "terrainSprite": {
44213
+ "types": [
44214
+ "asset"
44215
+ ]
44216
+ },
44217
+ "passable": {
44218
+ "types": [
44219
+ "boolean"
44220
+ ]
44221
+ },
44222
+ "movementCost": {
44223
+ "types": [
44224
+ "number"
44225
+ ]
44226
+ },
44227
+ "tileType": {
44228
+ "types": [
44229
+ "string"
44230
+ ]
44231
+ },
44232
+ "elevation": {
44233
+ "types": [
44234
+ "number"
44235
+ ]
44236
+ }
44237
+ },
44238
+ "required": [
44239
+ "x",
44240
+ "y"
44241
+ ]
44242
+ }
44243
+ },
44244
+ {
44245
+ "name": "event",
44246
+ "type": "object"
44247
+ }
44248
+ ],
44249
+ "nonEmittable": true
44250
+ },
44251
+ "onUnitClick": {
44252
+ "types": [
44253
+ "function"
44254
+ ],
44255
+ "description": "Callback when a unit is clicked",
44256
+ "kind": "callback",
44257
+ "callbackArgs": [
44258
+ {
44259
+ "name": "unit",
44260
+ "type": "object",
44261
+ "schema": {
44262
+ "types": [
44263
+ "object"
44264
+ ],
44265
+ "properties": {
44266
+ "id": {
44267
+ "types": [
44268
+ "string"
44269
+ ]
44270
+ },
44271
+ "position": {
44272
+ "types": [
44273
+ "object"
44274
+ ],
44275
+ "properties": {
44276
+ "x": {
44277
+ "types": [
44278
+ "number"
44279
+ ]
44280
+ },
44281
+ "y": {
44282
+ "types": [
44283
+ "number"
44284
+ ]
44285
+ }
44286
+ },
44287
+ "required": [
44288
+ "x",
44289
+ "y"
44290
+ ]
44291
+ },
44292
+ "x": {
44293
+ "types": [
44294
+ "number"
44295
+ ]
44296
+ },
44297
+ "y": {
44298
+ "types": [
44299
+ "number"
44300
+ ]
44301
+ },
44302
+ "z": {
44303
+ "types": [
44304
+ "number"
44305
+ ]
44306
+ },
44307
+ "sprite": {
44308
+ "types": [
44309
+ "object"
44310
+ ]
44311
+ },
44312
+ "unitType": {
44313
+ "types": [
44314
+ "string"
44315
+ ]
44316
+ },
44317
+ "heroId": {
44318
+ "types": [
44319
+ "string"
44320
+ ]
44321
+ },
44322
+ "name": {
44323
+ "types": [
44324
+ "string"
44325
+ ]
44326
+ },
44327
+ "team": {
44328
+ "types": [
44329
+ "string"
44330
+ ],
44331
+ "enumValues": [
44332
+ "player",
44333
+ "enemy",
44334
+ "neutral"
44335
+ ]
44336
+ },
44337
+ "faction": {
44338
+ "types": [
44339
+ "string"
44340
+ ],
44341
+ "enumValues": [
44342
+ "player",
44343
+ "enemy",
44344
+ "neutral"
44345
+ ]
44346
+ },
44347
+ "health": {
44348
+ "types": [
44349
+ "number"
44350
+ ]
44351
+ },
44352
+ "maxHealth": {
44353
+ "types": [
44354
+ "number"
44355
+ ]
44356
+ },
44357
+ "traits": {
44358
+ "types": [
44359
+ "array"
44360
+ ],
44361
+ "items": {
44362
+ "types": [
44363
+ "object"
44364
+ ],
44365
+ "properties": {
44366
+ "name": {
44367
+ "types": [
44368
+ "string"
44369
+ ]
44370
+ },
44371
+ "currentState": {
44372
+ "types": [
44373
+ "string"
44374
+ ]
44375
+ },
44376
+ "states": {
44377
+ "types": [
44378
+ "array"
44379
+ ],
44380
+ "items": {
44381
+ "types": [
44382
+ "string"
44383
+ ]
44384
+ }
44385
+ },
44386
+ "cooldown": {
44387
+ "types": [
44388
+ "number"
44389
+ ]
44390
+ }
44391
+ },
44392
+ "required": [
44393
+ "name",
44394
+ "currentState",
44395
+ "states",
44396
+ "cooldown"
44397
+ ]
44398
+ }
44399
+ },
44400
+ "previousPosition": {
44401
+ "types": [
44402
+ "object"
44403
+ ],
44404
+ "properties": {
44405
+ "x": {
44406
+ "types": [
44407
+ "number"
44408
+ ]
44409
+ },
44410
+ "y": {
44411
+ "types": [
44412
+ "number"
44413
+ ]
44414
+ }
44415
+ },
44416
+ "required": [
44417
+ "x",
44418
+ "y"
44419
+ ]
44420
+ },
44421
+ "elevation": {
44422
+ "types": [
44423
+ "number"
44424
+ ]
44425
+ }
44426
+ },
44427
+ "required": [
44428
+ "id"
44429
+ ]
44430
+ }
44431
+ },
44432
+ {
44433
+ "name": "event",
44434
+ "type": "object"
44435
+ }
44436
+ ],
44437
+ "nonEmittable": true
44438
+ },
44439
+ "onFeatureClick": {
44440
+ "types": [
44441
+ "function"
44442
+ ],
44443
+ "description": "Callback when a feature is clicked",
44444
+ "kind": "callback",
44445
+ "callbackArgs": [
44446
+ {
44447
+ "name": "feature",
44448
+ "type": "object",
44449
+ "schema": {
44450
+ "types": [
44451
+ "object"
44452
+ ],
44453
+ "properties": {
44454
+ "id": {
44455
+ "types": [
44456
+ "string"
44457
+ ]
44458
+ },
44459
+ "x": {
44460
+ "types": [
44461
+ "number"
44462
+ ]
44463
+ },
44464
+ "y": {
44465
+ "types": [
44466
+ "number"
44467
+ ]
44468
+ },
44469
+ "z": {
44470
+ "types": [
44471
+ "number"
44472
+ ]
44473
+ },
44474
+ "type": {
44475
+ "types": [
44476
+ "string"
44477
+ ]
44478
+ },
44479
+ "sprite": {
44480
+ "types": [
44481
+ "object"
44482
+ ]
44483
+ },
44484
+ "assetUrl": {
44485
+ "types": [
44486
+ "object"
44487
+ ]
44488
+ },
44489
+ "color": {
44490
+ "types": [
44491
+ "string"
44492
+ ]
44493
+ },
44494
+ "elevation": {
44495
+ "types": [
44496
+ "number"
44497
+ ]
44498
+ }
44499
+ },
44500
+ "required": [
44501
+ "x",
44502
+ "y",
44503
+ "type"
44504
+ ]
44505
+ }
44506
+ },
44507
+ {
44508
+ "name": "event",
44509
+ "type": "object"
44510
+ }
44511
+ ],
44512
+ "nonEmittable": true
44513
+ },
44514
+ "onCanvasClick": {
44515
+ "types": [
44516
+ "function"
44517
+ ],
44518
+ "description": "Callback when canvas is clicked (background)",
44519
+ "kind": "callback",
44520
+ "callbackArgs": [
44521
+ {
44522
+ "name": "event",
44523
+ "type": "object"
44524
+ }
44525
+ ],
44526
+ "nonEmittable": true
44527
+ },
44528
+ "onTileHover": {
44529
+ "types": [
44530
+ "function"
44531
+ ],
44532
+ "description": "Callback when mouse moves over a tile",
44533
+ "kind": "callback",
44534
+ "callbackArgs": [
44535
+ {
44536
+ "name": "tile",
44537
+ "type": "object",
44538
+ "schema": {
44539
+ "types": [
44540
+ "object"
44541
+ ],
44542
+ "properties": {
44543
+ "id": {
44544
+ "types": [
44545
+ "string"
44546
+ ]
44547
+ },
44548
+ "x": {
44549
+ "types": [
44550
+ "number"
44551
+ ]
44552
+ },
44553
+ "y": {
44554
+ "types": [
44555
+ "number"
44556
+ ]
44557
+ },
44558
+ "z": {
44559
+ "types": [
44560
+ "number"
44561
+ ]
44562
+ },
44563
+ "terrain": {
44564
+ "types": [
44565
+ "string"
44566
+ ]
44567
+ },
44568
+ "type": {
44569
+ "types": [
44570
+ "string"
44571
+ ]
44572
+ },
44573
+ "terrainSprite": {
44574
+ "types": [
44575
+ "asset"
44576
+ ]
44577
+ },
44578
+ "passable": {
44579
+ "types": [
44580
+ "boolean"
44581
+ ]
44582
+ },
44583
+ "movementCost": {
44584
+ "types": [
44585
+ "number"
44586
+ ]
44587
+ },
44588
+ "tileType": {
44589
+ "types": [
44590
+ "string"
44591
+ ]
44592
+ },
44593
+ "elevation": {
44594
+ "types": [
44595
+ "number"
44596
+ ]
44597
+ }
44598
+ },
44599
+ "required": [
44600
+ "x",
44601
+ "y"
44602
+ ]
44603
+ }
44604
+ },
44605
+ {
44606
+ "name": "event",
44607
+ "type": "object"
44608
+ }
44609
+ ],
44610
+ "nonEmittable": true
44611
+ },
44612
+ "onUnitAnimation": {
44613
+ "types": [
44614
+ "function"
44615
+ ],
44616
+ "description": "Callback for unit animation state change",
44617
+ "kind": "callback",
44618
+ "callbackArgs": [
44619
+ {
44620
+ "name": "unitId",
44621
+ "type": "string"
44622
+ },
44623
+ {
44624
+ "name": "state",
44625
+ "type": "string"
44626
+ }
44627
+ ]
44628
+ },
44629
+ "assetLoader": {
44630
+ "types": [
44631
+ "object"
44632
+ ],
44633
+ "description": "Asset loader instance (uses global singleton if not provided)"
44634
+ },
44635
+ "tileRenderer": {
44636
+ "types": [
44637
+ "object"
44638
+ ],
44639
+ "description": "Custom tile renderer component"
44640
+ },
44641
+ "unitRenderer": {
44642
+ "types": [
44643
+ "object"
44644
+ ],
44645
+ "description": "Custom unit renderer component"
44646
+ },
44647
+ "featureRenderer": {
44648
+ "types": [
44649
+ "object"
44650
+ ],
44651
+ "description": "Custom feature renderer component"
44652
+ },
44653
+ "preloadAssets": {
44654
+ "types": [
44655
+ "array"
44656
+ ],
44657
+ "description": "URLs to preload",
44658
+ "items": {
44659
+ "types": [
44660
+ "string"
44661
+ ]
44662
+ },
44663
+ "default": []
44664
+ },
44665
+ "tileClickEvent": {
44666
+ "types": [
44667
+ "string"
44668
+ ],
44669
+ "description": "Declarative event: tile click",
44670
+ "kind": "event-ref",
44671
+ "emitPayloadSchema": [
44672
+ {
44673
+ "name": "tileId",
44674
+ "type": "string",
44675
+ "required": true
44676
+ },
44677
+ {
44678
+ "name": "x",
44679
+ "type": "number",
44680
+ "required": true
44681
+ },
44682
+ {
44683
+ "name": "z",
44684
+ "type": "number",
44685
+ "required": true
44686
+ },
44687
+ {
44688
+ "name": "type",
44689
+ "type": "string",
44690
+ "required": false
44691
+ },
44692
+ {
44693
+ "name": "terrain",
44694
+ "type": "string",
44695
+ "required": false
44696
+ },
44697
+ {
44698
+ "name": "elevation",
44699
+ "type": "number",
44700
+ "required": false
44701
+ }
44702
+ ]
44703
+ },
44704
+ "unitClickEvent": {
44705
+ "types": [
44706
+ "string"
44707
+ ],
44708
+ "description": "Declarative event: unit click",
44709
+ "kind": "event-ref",
44710
+ "emitPayloadSchema": [
44711
+ {
44712
+ "name": "unitId",
44713
+ "type": "string",
44714
+ "required": true
44715
+ },
44716
+ {
44717
+ "name": "x",
44718
+ "type": "number",
44719
+ "required": true
44720
+ },
44721
+ {
44722
+ "name": "z",
44723
+ "type": "number",
44724
+ "required": true
44725
+ },
44726
+ {
44727
+ "name": "unitType",
44728
+ "type": "string",
44729
+ "required": false
44730
+ },
44731
+ {
44732
+ "name": "name",
44733
+ "type": "string",
44734
+ "required": false
44735
+ },
44736
+ {
44737
+ "name": "team",
44738
+ "type": "string",
44739
+ "required": false
44740
+ },
44741
+ {
44742
+ "name": "faction",
44743
+ "type": "string",
44744
+ "required": false
44745
+ },
44746
+ {
44747
+ "name": "health",
44748
+ "type": "number",
44749
+ "required": false
44750
+ },
44751
+ {
44752
+ "name": "maxHealth",
44753
+ "type": "number",
44754
+ "required": false
44755
+ }
44756
+ ]
44757
+ },
44758
+ "featureClickEvent": {
44759
+ "types": [
44760
+ "string"
44761
+ ],
44762
+ "description": "Declarative event: feature click",
44763
+ "kind": "event-ref",
44764
+ "emitPayloadSchema": [
44765
+ {
44766
+ "name": "featureId",
44767
+ "type": "string",
44768
+ "required": true
44769
+ },
44770
+ {
44771
+ "name": "x",
44772
+ "type": "number",
44773
+ "required": true
44774
+ },
44775
+ {
44776
+ "name": "z",
44777
+ "type": "number",
44778
+ "required": true
44779
+ },
44780
+ {
44781
+ "name": "type",
44782
+ "type": "string",
44783
+ "required": false
44784
+ },
44785
+ {
44786
+ "name": "elevation",
44787
+ "type": "number",
44788
+ "required": false
44789
+ }
44790
+ ]
44791
+ },
44792
+ "canvasClickEvent": {
44793
+ "types": [
44794
+ "string"
44795
+ ],
44796
+ "description": "Declarative event: canvas click",
44797
+ "kind": "event-ref",
44798
+ "emitPayloadSchema": [
44799
+ {
44800
+ "name": "clientX",
44801
+ "type": "number",
44802
+ "required": true
44803
+ },
44804
+ {
44805
+ "name": "clientY",
44806
+ "type": "number",
44807
+ "required": true
44808
+ },
44809
+ {
44810
+ "name": "button",
44811
+ "type": "number",
44812
+ "required": true
44813
+ }
44814
+ ]
44815
+ },
44816
+ "tileHoverEvent": {
44817
+ "types": [
44818
+ "string"
44819
+ ],
44820
+ "description": "Declarative event: tile hover",
44821
+ "kind": "event-ref",
44822
+ "emitPayloadSchema": [
44823
+ {
44824
+ "name": "tileId",
44825
+ "type": "string",
44826
+ "required": true
44827
+ },
44828
+ {
44829
+ "name": "x",
44830
+ "type": "number",
44831
+ "required": true
44832
+ },
44833
+ {
44834
+ "name": "z",
44835
+ "type": "number",
44836
+ "required": true
44837
+ },
44838
+ {
44839
+ "name": "type",
44840
+ "type": "string",
44841
+ "required": false
44842
+ }
44843
+ ]
44844
+ },
44845
+ "tileLeaveEvent": {
44846
+ "types": [
44847
+ "string"
44848
+ ],
44849
+ "description": "Declarative event: tile leave",
44850
+ "kind": "event-ref",
44851
+ "emitPayloadSchema": []
44852
+ },
44853
+ "unitAnimationEvent": {
44854
+ "types": [
44855
+ "string"
44856
+ ],
44857
+ "description": "Declarative event: unit animation",
44858
+ "kind": "event-ref",
44859
+ "emitPayloadSchema": [
44860
+ {
44861
+ "name": "unitId",
44862
+ "type": "string",
44863
+ "required": true
44864
+ },
44865
+ {
44866
+ "name": "state",
44867
+ "type": "string",
44868
+ "required": true
44869
+ },
44870
+ {
44871
+ "name": "timestamp",
44872
+ "type": "number",
44873
+ "required": true
44874
+ }
44875
+ ]
44876
+ },
44877
+ "cameraChangeEvent": {
44878
+ "types": [
44879
+ "string"
44880
+ ],
44881
+ "description": "Declarative event: camera change",
44882
+ "kind": "event-ref",
44883
+ "emitPayloadSchema": [
44884
+ {
44885
+ "name": "position",
44886
+ "type": "object",
44887
+ "required": true
44888
+ },
44889
+ {
44890
+ "name": "timestamp",
44891
+ "type": "number",
44892
+ "required": true
44893
+ }
44894
+ ]
44895
+ },
44896
+ "loadingMessage": {
44897
+ "types": [
44898
+ "string"
44899
+ ],
44900
+ "description": "Loading message",
44901
+ "default": "Loading 3D Scene..."
44902
+ },
44903
+ "useInstancing": {
44904
+ "types": [
44905
+ "boolean"
44906
+ ],
44907
+ "description": "Whether to use instancing for tiles",
44908
+ "default": true
44909
+ },
44910
+ "validMoves": {
44911
+ "types": [
44912
+ "array"
44913
+ ],
44914
+ "description": "Valid move positions",
44915
+ "items": {
44916
+ "types": [
44917
+ "object"
44918
+ ],
44919
+ "properties": {
44920
+ "x": {
44921
+ "types": [
44922
+ "number"
44923
+ ]
44924
+ },
44925
+ "z": {
44926
+ "types": [
44927
+ "number"
44928
+ ]
44929
+ }
44930
+ },
44931
+ "required": [
44932
+ "x",
44933
+ "z"
44934
+ ]
44935
+ },
44936
+ "default": []
44937
+ },
44938
+ "attackTargets": {
44939
+ "types": [
44940
+ "array"
44941
+ ],
44942
+ "description": "Attack target positions",
44943
+ "items": {
44944
+ "types": [
44945
+ "object"
44946
+ ],
44947
+ "properties": {
44948
+ "x": {
44949
+ "types": [
44950
+ "number"
44951
+ ]
44952
+ },
44953
+ "z": {
44954
+ "types": [
44955
+ "number"
44956
+ ]
44957
+ }
44958
+ },
44959
+ "required": [
44960
+ "x",
44961
+ "z"
44962
+ ]
44963
+ },
44964
+ "default": []
44965
+ },
44966
+ "selectedTileIds": {
44967
+ "types": [
44968
+ "array"
44969
+ ],
44970
+ "description": "Selected tile IDs",
44971
+ "items": {
44972
+ "types": [
44973
+ "string"
44974
+ ]
44975
+ },
44976
+ "default": []
44977
+ },
44978
+ "selectedUnitId": {
44979
+ "types": [
44980
+ "string"
44981
+ ],
44982
+ "description": "Selected unit ID",
44983
+ "default": null
44984
+ }
44985
+ }
44986
+ },
44987
+ "game-canvas-3d-battle-template": {
44988
+ "type": "game-canvas-3d-battle-template",
44989
+ "category": "game",
44990
+ "tier": "templates",
44991
+ "family": "game",
44992
+ "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",
44993
+ "suggestedFor": [
44994
+ "game",
44995
+ "canvas3",
44996
+ "battle",
44997
+ "template",
44998
+ "game canvas3 d battle template"
44999
+ ],
45000
+ "typicalSize": "full",
45001
+ "propsSchema": {
45002
+ "entity": {
45003
+ "types": [
45004
+ "object"
45005
+ ],
45006
+ "description": "Entity data, the sole source of runtime state",
45007
+ "required": true
45008
+ },
45009
+ "className": {
45010
+ "types": [
45011
+ "string"
45012
+ ],
45013
+ "description": "External styling override"
45014
+ },
45015
+ "cameraMode": {
45016
+ "types": [
45017
+ "string"
45018
+ ],
45019
+ "description": "3D camera mode - defaults to perspective for dramatic effect",
45020
+ "enumValues": [
45021
+ "isometric",
45022
+ "perspective",
45023
+ "top-down"
45024
+ ],
45025
+ "default": "perspective"
45026
+ },
45027
+ "showGrid": {
45028
+ "types": [
45029
+ "boolean"
45030
+ ],
45031
+ "description": "Show grid helper",
45032
+ "default": true
45033
+ },
45034
+ "shadows": {
45035
+ "types": [
45036
+ "boolean"
45037
+ ],
45038
+ "description": "Enable shadows",
45039
+ "default": true
45040
+ },
45041
+ "backgroundColor": {
45042
+ "types": [
45043
+ "string"
45044
+ ],
45045
+ "description": "Background color - darker for battle atmosphere",
45046
+ "default": "#2a1a1a"
45047
+ },
45048
+ "tileClickEvent": {
45049
+ "types": [
45050
+ "string"
45051
+ ],
45052
+ "description": "Event name for tile clicks"
45053
+ },
45054
+ "unitClickEvent": {
45055
+ "types": [
45056
+ "string"
45057
+ ],
45058
+ "description": "Event name for unit clicks"
45059
+ },
45060
+ "unitAttackEvent": {
45061
+ "types": [
45062
+ "string"
45063
+ ],
45064
+ "description": "Event name for unit attack"
45065
+ },
45066
+ "unitMoveEvent": {
45067
+ "types": [
45068
+ "string"
45069
+ ],
45070
+ "description": "Event name for unit move"
45071
+ },
45072
+ "endTurnEvent": {
45073
+ "types": [
45074
+ "string"
45075
+ ],
45076
+ "description": "Event name for ending turn"
45077
+ },
45078
+ "exitEvent": {
45079
+ "types": [
45080
+ "string"
45081
+ ],
45082
+ "description": "Event name for exiting battle"
45083
+ },
45084
+ "selectedUnitId": {
45085
+ "types": [
45086
+ "string"
45087
+ ],
45088
+ "description": "Currently selected unit ID"
45089
+ },
45090
+ "validMoves": {
45091
+ "types": [
45092
+ "array"
45093
+ ],
45094
+ "description": "Valid move positions",
45095
+ "items": {
45096
+ "types": [
45097
+ "object"
45098
+ ],
45099
+ "properties": {
45100
+ "x": {
45101
+ "types": [
45102
+ "number"
45103
+ ]
45104
+ },
45105
+ "z": {
45106
+ "types": [
45107
+ "number"
45108
+ ]
45109
+ }
45110
+ },
45111
+ "required": [
45112
+ "x",
45113
+ "z"
45114
+ ]
45115
+ }
45116
+ },
45117
+ "attackTargets": {
45118
+ "types": [
45119
+ "array"
45120
+ ],
45121
+ "description": "Valid attack targets",
45122
+ "items": {
45123
+ "types": [
45124
+ "object"
45125
+ ],
45126
+ "properties": {
45127
+ "x": {
45128
+ "types": [
45129
+ "number"
45130
+ ]
45131
+ },
45132
+ "z": {
45133
+ "types": [
45134
+ "number"
45135
+ ]
45136
+ }
45137
+ },
45138
+ "required": [
45139
+ "x",
45140
+ "z"
45141
+ ]
45142
+ }
45143
+ },
45144
+ "showTurnIndicator": {
45145
+ "types": [
45146
+ "boolean"
45147
+ ],
45148
+ "description": "Show turn indicator overlay"
45149
+ }
45150
+ }
45151
+ },
45152
+ "game-canvas-3d-castle-template": {
45153
+ "type": "game-canvas-3d-castle-template",
45154
+ "category": "game",
45155
+ "tier": "templates",
45156
+ "family": "game",
45157
+ "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",
45158
+ "suggestedFor": [
45159
+ "game",
45160
+ "canvas3",
45161
+ "castle",
45162
+ "template",
45163
+ "game canvas3 d castle template"
45164
+ ],
45165
+ "typicalSize": "full",
45166
+ "propsSchema": {
45167
+ "entity": {
45168
+ "types": [
45169
+ "object"
45170
+ ],
45171
+ "description": "Entity data, the sole source of runtime state",
45172
+ "required": true
45173
+ },
45174
+ "className": {
45175
+ "types": [
45176
+ "string"
45177
+ ],
45178
+ "description": "External styling override"
45179
+ },
45180
+ "cameraMode": {
45181
+ "types": [
45182
+ "string"
45183
+ ],
45184
+ "description": "3D camera mode",
45185
+ "enumValues": [
45186
+ "isometric",
45187
+ "perspective",
45188
+ "top-down"
45189
+ ],
45190
+ "default": "isometric"
45191
+ },
45192
+ "showGrid": {
45193
+ "types": [
45194
+ "boolean"
45195
+ ],
45196
+ "description": "Show grid helper",
45197
+ "default": true
45198
+ },
45199
+ "shadows": {
45200
+ "types": [
45201
+ "boolean"
45202
+ ],
45203
+ "description": "Enable shadows",
45204
+ "default": true
45205
+ },
45206
+ "backgroundColor": {
45207
+ "types": [
45208
+ "string"
45209
+ ],
45210
+ "description": "Background color",
45211
+ "default": "#1e1e2e"
45212
+ },
45213
+ "buildingClickEvent": {
45214
+ "types": [
45215
+ "string"
45216
+ ],
45217
+ "description": "Event name for building clicks"
45218
+ },
45219
+ "unitClickEvent": {
45220
+ "types": [
45221
+ "string"
45222
+ ],
45223
+ "description": "Event name for unit clicks"
45224
+ },
45225
+ "buildEvent": {
45226
+ "types": [
45227
+ "string"
45228
+ ],
45229
+ "description": "Event name for build action"
45230
+ },
45231
+ "recruitEvent": {
45232
+ "types": [
45233
+ "string"
45234
+ ],
45235
+ "description": "Event name for recruit action"
45236
+ },
45237
+ "exitEvent": {
45238
+ "types": [
45239
+ "string"
45240
+ ],
45241
+ "description": "Event name for exit"
45242
+ },
45243
+ "selectedBuildingId": {
45244
+ "types": [
45245
+ "string"
45246
+ ],
45247
+ "description": "Currently selected building ID"
45248
+ },
45249
+ "availableBuildSites": {
45250
+ "types": [
45251
+ "array"
45252
+ ],
45253
+ "description": "Available build positions",
45254
+ "items": {
45255
+ "types": [
45256
+ "object"
45257
+ ],
45258
+ "properties": {
45259
+ "x": {
45260
+ "types": [
45261
+ "number"
45262
+ ]
45263
+ },
45264
+ "z": {
45265
+ "types": [
45266
+ "number"
45267
+ ]
45268
+ }
45269
+ },
45270
+ "required": [
45271
+ "x",
45272
+ "z"
45273
+ ]
45274
+ }
45275
+ },
45276
+ "showHeader": {
45277
+ "types": [
45278
+ "boolean"
45279
+ ],
45280
+ "description": "Show castle name header",
45281
+ "default": true
45282
+ },
45283
+ "selectedTileIds": {
45284
+ "types": [
45285
+ "array"
45286
+ ],
45287
+ "description": "Pre-computed selected tile IDs array",
45288
+ "items": {
45289
+ "types": [
45290
+ "string"
45291
+ ]
45292
+ },
45293
+ "default": []
45294
+ }
45295
+ }
45296
+ },
45297
+ "game-canvas-3d-world-map-template": {
45298
+ "type": "game-canvas-3d-world-map-template",
45299
+ "category": "game",
45300
+ "tier": "templates",
45301
+ "family": "game",
45302
+ "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 })",
45303
+ "suggestedFor": [
45304
+ "game",
45305
+ "canvas3",
45306
+ "world",
45307
+ "map",
45308
+ "template",
45309
+ "game canvas3 d world map template"
45310
+ ],
45311
+ "typicalSize": "full",
45312
+ "propsSchema": {
45313
+ "entity": {
45314
+ "types": [
45315
+ "object"
45316
+ ],
45317
+ "description": "Entity data, the sole source of runtime state",
45318
+ "required": true
45319
+ },
45320
+ "className": {
45321
+ "types": [
45322
+ "string"
45323
+ ],
45324
+ "description": "External styling override"
45325
+ },
45326
+ "cameraMode": {
45327
+ "types": [
45328
+ "string"
45329
+ ],
45330
+ "description": "3D camera mode",
45331
+ "enumValues": [
45332
+ "isometric",
45333
+ "perspective",
45334
+ "top-down"
45335
+ ],
45336
+ "default": "isometric"
45337
+ },
45338
+ "showGrid": {
45339
+ "types": [
45340
+ "boolean"
45341
+ ],
45342
+ "description": "Show grid helper",
45343
+ "default": true
45344
+ },
45345
+ "showCoordinates": {
45346
+ "types": [
45347
+ "boolean"
45348
+ ],
45349
+ "description": "Show coordinate overlay",
45350
+ "default": true
45351
+ },
45352
+ "showTileInfo": {
45353
+ "types": [
45354
+ "boolean"
45355
+ ],
45356
+ "description": "Show tile info on hover",
45357
+ "default": true
45358
+ },
45359
+ "shadows": {
45360
+ "types": [
45361
+ "boolean"
45362
+ ],
45363
+ "description": "Enable shadows",
45364
+ "default": true
45365
+ },
45366
+ "backgroundColor": {
45367
+ "types": [
45368
+ "string"
45369
+ ],
45370
+ "description": "Background color",
45371
+ "default": "#1a1a2e"
45372
+ },
45373
+ "tileClickEvent": {
45374
+ "types": [
45375
+ "string"
45376
+ ],
45377
+ "description": "Event name for tile clicks"
45378
+ },
45379
+ "unitClickEvent": {
45380
+ "types": [
45381
+ "string"
45382
+ ],
45383
+ "description": "Event name for unit clicks"
45384
+ },
45385
+ "featureClickEvent": {
45386
+ "types": [
45387
+ "string"
45388
+ ],
45389
+ "description": "Event name for feature clicks"
45390
+ },
45391
+ "tileHoverEvent": {
45392
+ "types": [
45393
+ "string"
45394
+ ],
45395
+ "description": "Event name for tile hover"
45396
+ },
45397
+ "tileLeaveEvent": {
45398
+ "types": [
45399
+ "string"
45400
+ ],
45401
+ "description": "Event name for tile leave"
45402
+ },
45403
+ "cameraChangeEvent": {
45404
+ "types": [
45405
+ "string"
45406
+ ],
45407
+ "description": "Event name for camera changes"
45408
+ },
45409
+ "exitEvent": {
45410
+ "types": [
45411
+ "string"
45412
+ ],
45413
+ "description": "Exit/back event name"
45414
+ },
45415
+ "selectedUnitId": {
45416
+ "types": [
45417
+ "string"
45418
+ ],
45419
+ "description": "Currently selected unit ID"
45420
+ },
45421
+ "validMoves": {
45422
+ "types": [
45423
+ "array"
45424
+ ],
45425
+ "description": "Valid move positions for selected unit",
45426
+ "items": {
45427
+ "types": [
45428
+ "object"
45429
+ ],
45430
+ "properties": {
45431
+ "x": {
45432
+ "types": [
45433
+ "number"
45434
+ ]
45435
+ },
45436
+ "z": {
45437
+ "types": [
45438
+ "number"
45439
+ ]
45440
+ }
45441
+ },
45442
+ "required": [
45443
+ "x",
45444
+ "z"
45445
+ ]
45446
+ }
45447
+ },
45448
+ "attackTargets": {
45449
+ "types": [
45450
+ "array"
45451
+ ],
45452
+ "description": "Attack target positions",
45453
+ "items": {
45454
+ "types": [
45455
+ "object"
45456
+ ],
45457
+ "properties": {
45458
+ "x": {
45459
+ "types": [
45460
+ "number"
45461
+ ]
45462
+ },
45463
+ "z": {
45464
+ "types": [
45465
+ "number"
45466
+ ]
45467
+ }
45468
+ },
45469
+ "required": [
45470
+ "x",
45471
+ "z"
45472
+ ]
45473
+ }
45474
+ }
45475
+ }
43674
45476
  }
43675
45477
  },
43676
45478
  "categories": [