@almadar/patterns 2.45.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:07:52.301Z",
3
+ "exportedAt": "2026-06-17T08:23:54.917Z",
4
4
  "patterns": {
5
5
  "entity-table": {
6
6
  "type": "entity-table",
@@ -14051,6 +14051,323 @@
14051
14051
  ],
14052
14052
  "description": "Unit draw-size multiplier",
14053
14053
  "default": 1
14054
+ },
14055
+ "tiles": {
14056
+ "types": [
14057
+ "array"
14058
+ ],
14059
+ "description": "Direct tile data — forwarded to BattleBoard; takes priority over entity.",
14060
+ "items": {
14061
+ "types": [
14062
+ "object"
14063
+ ],
14064
+ "properties": {
14065
+ "id": {
14066
+ "types": [
14067
+ "string"
14068
+ ]
14069
+ },
14070
+ "x": {
14071
+ "types": [
14072
+ "number"
14073
+ ]
14074
+ },
14075
+ "y": {
14076
+ "types": [
14077
+ "number"
14078
+ ]
14079
+ },
14080
+ "z": {
14081
+ "types": [
14082
+ "number"
14083
+ ]
14084
+ },
14085
+ "terrain": {
14086
+ "types": [
14087
+ "string"
14088
+ ]
14089
+ },
14090
+ "type": {
14091
+ "types": [
14092
+ "string"
14093
+ ]
14094
+ },
14095
+ "terrainSprite": {
14096
+ "types": [
14097
+ "asset"
14098
+ ]
14099
+ },
14100
+ "passable": {
14101
+ "types": [
14102
+ "boolean"
14103
+ ]
14104
+ },
14105
+ "movementCost": {
14106
+ "types": [
14107
+ "number"
14108
+ ]
14109
+ },
14110
+ "tileType": {
14111
+ "types": [
14112
+ "string"
14113
+ ]
14114
+ },
14115
+ "elevation": {
14116
+ "types": [
14117
+ "number"
14118
+ ]
14119
+ }
14120
+ },
14121
+ "required": [
14122
+ "x",
14123
+ "y"
14124
+ ]
14125
+ }
14126
+ },
14127
+ "units": {
14128
+ "types": [
14129
+ "array"
14130
+ ],
14131
+ "description": "Direct unit data — forwarded to BattleBoard; takes priority over entity.",
14132
+ "items": {
14133
+ "types": [
14134
+ "object"
14135
+ ],
14136
+ "properties": {
14137
+ "id": {
14138
+ "types": [
14139
+ "string"
14140
+ ]
14141
+ },
14142
+ "position": {
14143
+ "types": [
14144
+ "object"
14145
+ ],
14146
+ "properties": {
14147
+ "x": {
14148
+ "types": [
14149
+ "number"
14150
+ ]
14151
+ },
14152
+ "y": {
14153
+ "types": [
14154
+ "number"
14155
+ ]
14156
+ }
14157
+ },
14158
+ "required": [
14159
+ "x",
14160
+ "y"
14161
+ ]
14162
+ },
14163
+ "x": {
14164
+ "types": [
14165
+ "number"
14166
+ ]
14167
+ },
14168
+ "y": {
14169
+ "types": [
14170
+ "number"
14171
+ ]
14172
+ },
14173
+ "z": {
14174
+ "types": [
14175
+ "number"
14176
+ ]
14177
+ },
14178
+ "sprite": {
14179
+ "types": [
14180
+ "object"
14181
+ ]
14182
+ },
14183
+ "unitType": {
14184
+ "types": [
14185
+ "string"
14186
+ ]
14187
+ },
14188
+ "heroId": {
14189
+ "types": [
14190
+ "string"
14191
+ ]
14192
+ },
14193
+ "name": {
14194
+ "types": [
14195
+ "string"
14196
+ ]
14197
+ },
14198
+ "team": {
14199
+ "types": [
14200
+ "string"
14201
+ ],
14202
+ "enumValues": [
14203
+ "player",
14204
+ "enemy",
14205
+ "neutral"
14206
+ ]
14207
+ },
14208
+ "faction": {
14209
+ "types": [
14210
+ "string"
14211
+ ],
14212
+ "enumValues": [
14213
+ "player",
14214
+ "enemy",
14215
+ "neutral"
14216
+ ]
14217
+ },
14218
+ "health": {
14219
+ "types": [
14220
+ "number"
14221
+ ]
14222
+ },
14223
+ "maxHealth": {
14224
+ "types": [
14225
+ "number"
14226
+ ]
14227
+ },
14228
+ "traits": {
14229
+ "types": [
14230
+ "array"
14231
+ ],
14232
+ "items": {
14233
+ "types": [
14234
+ "object"
14235
+ ],
14236
+ "properties": {
14237
+ "name": {
14238
+ "types": [
14239
+ "string"
14240
+ ]
14241
+ },
14242
+ "currentState": {
14243
+ "types": [
14244
+ "string"
14245
+ ]
14246
+ },
14247
+ "states": {
14248
+ "types": [
14249
+ "array"
14250
+ ],
14251
+ "items": {
14252
+ "types": [
14253
+ "string"
14254
+ ]
14255
+ }
14256
+ },
14257
+ "cooldown": {
14258
+ "types": [
14259
+ "number"
14260
+ ]
14261
+ }
14262
+ },
14263
+ "required": [
14264
+ "name",
14265
+ "currentState",
14266
+ "states",
14267
+ "cooldown"
14268
+ ]
14269
+ }
14270
+ },
14271
+ "previousPosition": {
14272
+ "types": [
14273
+ "object"
14274
+ ],
14275
+ "properties": {
14276
+ "x": {
14277
+ "types": [
14278
+ "number"
14279
+ ]
14280
+ },
14281
+ "y": {
14282
+ "types": [
14283
+ "number"
14284
+ ]
14285
+ }
14286
+ },
14287
+ "required": [
14288
+ "x",
14289
+ "y"
14290
+ ]
14291
+ },
14292
+ "elevation": {
14293
+ "types": [
14294
+ "number"
14295
+ ]
14296
+ }
14297
+ },
14298
+ "required": [
14299
+ "id"
14300
+ ]
14301
+ }
14302
+ },
14303
+ "features": {
14304
+ "types": [
14305
+ "array"
14306
+ ],
14307
+ "description": "Direct feature data — forwarded to BattleBoard; takes priority over entity.",
14308
+ "items": {
14309
+ "types": [
14310
+ "object"
14311
+ ],
14312
+ "properties": {
14313
+ "id": {
14314
+ "types": [
14315
+ "string"
14316
+ ]
14317
+ },
14318
+ "x": {
14319
+ "types": [
14320
+ "number"
14321
+ ]
14322
+ },
14323
+ "y": {
14324
+ "types": [
14325
+ "number"
14326
+ ]
14327
+ },
14328
+ "z": {
14329
+ "types": [
14330
+ "number"
14331
+ ]
14332
+ },
14333
+ "type": {
14334
+ "types": [
14335
+ "string"
14336
+ ]
14337
+ },
14338
+ "sprite": {
14339
+ "types": [
14340
+ "object"
14341
+ ]
14342
+ },
14343
+ "assetUrl": {
14344
+ "types": [
14345
+ "object"
14346
+ ]
14347
+ },
14348
+ "color": {
14349
+ "types": [
14350
+ "string"
14351
+ ]
14352
+ },
14353
+ "elevation": {
14354
+ "types": [
14355
+ "number"
14356
+ ]
14357
+ }
14358
+ },
14359
+ "required": [
14360
+ "x",
14361
+ "y",
14362
+ "type"
14363
+ ]
14364
+ }
14365
+ },
14366
+ "assetManifest": {
14367
+ "types": [
14368
+ "string"
14369
+ ],
14370
+ "description": "Direct asset manifest — forwarded to BattleBoard; takes priority over entity."
14054
14371
  }
14055
14372
  }
14056
14373
  },
@@ -37017,6 +37334,323 @@
37017
37334
  "description": "Single board-state entity row (or array). The internal `useBattleState`",
37018
37335
  "kind": "entity",
37019
37336
  "cardinality": "collection"
37337
+ },
37338
+ "tiles": {
37339
+ "types": [
37340
+ "array"
37341
+ ],
37342
+ "description": "Direct tile data — takes priority over entity-derived tiles.",
37343
+ "items": {
37344
+ "types": [
37345
+ "object"
37346
+ ],
37347
+ "properties": {
37348
+ "id": {
37349
+ "types": [
37350
+ "string"
37351
+ ]
37352
+ },
37353
+ "x": {
37354
+ "types": [
37355
+ "number"
37356
+ ]
37357
+ },
37358
+ "y": {
37359
+ "types": [
37360
+ "number"
37361
+ ]
37362
+ },
37363
+ "z": {
37364
+ "types": [
37365
+ "number"
37366
+ ]
37367
+ },
37368
+ "terrain": {
37369
+ "types": [
37370
+ "string"
37371
+ ]
37372
+ },
37373
+ "type": {
37374
+ "types": [
37375
+ "string"
37376
+ ]
37377
+ },
37378
+ "terrainSprite": {
37379
+ "types": [
37380
+ "asset"
37381
+ ]
37382
+ },
37383
+ "passable": {
37384
+ "types": [
37385
+ "boolean"
37386
+ ]
37387
+ },
37388
+ "movementCost": {
37389
+ "types": [
37390
+ "number"
37391
+ ]
37392
+ },
37393
+ "tileType": {
37394
+ "types": [
37395
+ "string"
37396
+ ]
37397
+ },
37398
+ "elevation": {
37399
+ "types": [
37400
+ "number"
37401
+ ]
37402
+ }
37403
+ },
37404
+ "required": [
37405
+ "x",
37406
+ "y"
37407
+ ]
37408
+ }
37409
+ },
37410
+ "units": {
37411
+ "types": [
37412
+ "array"
37413
+ ],
37414
+ "description": "Direct unit data — takes priority over entity-derived units.",
37415
+ "items": {
37416
+ "types": [
37417
+ "object"
37418
+ ],
37419
+ "properties": {
37420
+ "id": {
37421
+ "types": [
37422
+ "string"
37423
+ ]
37424
+ },
37425
+ "position": {
37426
+ "types": [
37427
+ "object"
37428
+ ],
37429
+ "properties": {
37430
+ "x": {
37431
+ "types": [
37432
+ "number"
37433
+ ]
37434
+ },
37435
+ "y": {
37436
+ "types": [
37437
+ "number"
37438
+ ]
37439
+ }
37440
+ },
37441
+ "required": [
37442
+ "x",
37443
+ "y"
37444
+ ]
37445
+ },
37446
+ "x": {
37447
+ "types": [
37448
+ "number"
37449
+ ]
37450
+ },
37451
+ "y": {
37452
+ "types": [
37453
+ "number"
37454
+ ]
37455
+ },
37456
+ "z": {
37457
+ "types": [
37458
+ "number"
37459
+ ]
37460
+ },
37461
+ "sprite": {
37462
+ "types": [
37463
+ "object"
37464
+ ]
37465
+ },
37466
+ "unitType": {
37467
+ "types": [
37468
+ "string"
37469
+ ]
37470
+ },
37471
+ "heroId": {
37472
+ "types": [
37473
+ "string"
37474
+ ]
37475
+ },
37476
+ "name": {
37477
+ "types": [
37478
+ "string"
37479
+ ]
37480
+ },
37481
+ "team": {
37482
+ "types": [
37483
+ "string"
37484
+ ],
37485
+ "enumValues": [
37486
+ "player",
37487
+ "enemy",
37488
+ "neutral"
37489
+ ]
37490
+ },
37491
+ "faction": {
37492
+ "types": [
37493
+ "string"
37494
+ ],
37495
+ "enumValues": [
37496
+ "player",
37497
+ "enemy",
37498
+ "neutral"
37499
+ ]
37500
+ },
37501
+ "health": {
37502
+ "types": [
37503
+ "number"
37504
+ ]
37505
+ },
37506
+ "maxHealth": {
37507
+ "types": [
37508
+ "number"
37509
+ ]
37510
+ },
37511
+ "traits": {
37512
+ "types": [
37513
+ "array"
37514
+ ],
37515
+ "items": {
37516
+ "types": [
37517
+ "object"
37518
+ ],
37519
+ "properties": {
37520
+ "name": {
37521
+ "types": [
37522
+ "string"
37523
+ ]
37524
+ },
37525
+ "currentState": {
37526
+ "types": [
37527
+ "string"
37528
+ ]
37529
+ },
37530
+ "states": {
37531
+ "types": [
37532
+ "array"
37533
+ ],
37534
+ "items": {
37535
+ "types": [
37536
+ "string"
37537
+ ]
37538
+ }
37539
+ },
37540
+ "cooldown": {
37541
+ "types": [
37542
+ "number"
37543
+ ]
37544
+ }
37545
+ },
37546
+ "required": [
37547
+ "name",
37548
+ "currentState",
37549
+ "states",
37550
+ "cooldown"
37551
+ ]
37552
+ }
37553
+ },
37554
+ "previousPosition": {
37555
+ "types": [
37556
+ "object"
37557
+ ],
37558
+ "properties": {
37559
+ "x": {
37560
+ "types": [
37561
+ "number"
37562
+ ]
37563
+ },
37564
+ "y": {
37565
+ "types": [
37566
+ "number"
37567
+ ]
37568
+ }
37569
+ },
37570
+ "required": [
37571
+ "x",
37572
+ "y"
37573
+ ]
37574
+ },
37575
+ "elevation": {
37576
+ "types": [
37577
+ "number"
37578
+ ]
37579
+ }
37580
+ },
37581
+ "required": [
37582
+ "id"
37583
+ ]
37584
+ }
37585
+ },
37586
+ "features": {
37587
+ "types": [
37588
+ "array"
37589
+ ],
37590
+ "description": "Direct feature data — takes priority over entity-derived features.",
37591
+ "items": {
37592
+ "types": [
37593
+ "object"
37594
+ ],
37595
+ "properties": {
37596
+ "id": {
37597
+ "types": [
37598
+ "string"
37599
+ ]
37600
+ },
37601
+ "x": {
37602
+ "types": [
37603
+ "number"
37604
+ ]
37605
+ },
37606
+ "y": {
37607
+ "types": [
37608
+ "number"
37609
+ ]
37610
+ },
37611
+ "z": {
37612
+ "types": [
37613
+ "number"
37614
+ ]
37615
+ },
37616
+ "type": {
37617
+ "types": [
37618
+ "string"
37619
+ ]
37620
+ },
37621
+ "sprite": {
37622
+ "types": [
37623
+ "object"
37624
+ ]
37625
+ },
37626
+ "assetUrl": {
37627
+ "types": [
37628
+ "object"
37629
+ ]
37630
+ },
37631
+ "color": {
37632
+ "types": [
37633
+ "string"
37634
+ ]
37635
+ },
37636
+ "elevation": {
37637
+ "types": [
37638
+ "number"
37639
+ ]
37640
+ }
37641
+ },
37642
+ "required": [
37643
+ "x",
37644
+ "y",
37645
+ "type"
37646
+ ]
37647
+ }
37648
+ },
37649
+ "assetManifest": {
37650
+ "types": [
37651
+ "string"
37652
+ ],
37653
+ "description": "Direct asset manifest — takes priority over entity-derived manifest."
37020
37654
  }
37021
37655
  }
37022
37656
  },
@@ -41284,7 +41918,7 @@
41284
41918
  "feature-renderer": {
41285
41919
  "type": "feature-renderer",
41286
41920
  "category": "game",
41287
- "tier": "organisms",
41921
+ "tier": "molecules",
41288
41922
  "family": "game",
41289
41923
  "description": "FeatureRenderer component",
41290
41924
  "suggestedFor": [
@@ -43037,6 +43671,1808 @@
43037
43671
  "description": "Additional class names"
43038
43672
  }
43039
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
+ }
43040
45476
  }
43041
45477
  },
43042
45478
  "categories": [