@almadar/patterns 2.44.0 → 2.46.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-16T19:32:31.111Z",
4
+ exportedAt: "2026-06-17T02:56:15.601Z",
5
5
  patterns: {
6
6
  "entity-table": {
7
7
  type: "entity-table",
@@ -14052,6 +14052,323 @@ var patterns_registry_default = {
14052
14052
  ],
14053
14053
  description: "Unit draw-size multiplier",
14054
14054
  default: 1
14055
+ },
14056
+ tiles: {
14057
+ types: [
14058
+ "array"
14059
+ ],
14060
+ description: "Direct tile data \u2014 forwarded to BattleBoard; takes priority over entity.",
14061
+ items: {
14062
+ types: [
14063
+ "object"
14064
+ ],
14065
+ properties: {
14066
+ id: {
14067
+ types: [
14068
+ "string"
14069
+ ]
14070
+ },
14071
+ x: {
14072
+ types: [
14073
+ "number"
14074
+ ]
14075
+ },
14076
+ y: {
14077
+ types: [
14078
+ "number"
14079
+ ]
14080
+ },
14081
+ z: {
14082
+ types: [
14083
+ "number"
14084
+ ]
14085
+ },
14086
+ terrain: {
14087
+ types: [
14088
+ "string"
14089
+ ]
14090
+ },
14091
+ type: {
14092
+ types: [
14093
+ "string"
14094
+ ]
14095
+ },
14096
+ terrainSprite: {
14097
+ types: [
14098
+ "asset"
14099
+ ]
14100
+ },
14101
+ passable: {
14102
+ types: [
14103
+ "boolean"
14104
+ ]
14105
+ },
14106
+ movementCost: {
14107
+ types: [
14108
+ "number"
14109
+ ]
14110
+ },
14111
+ tileType: {
14112
+ types: [
14113
+ "string"
14114
+ ]
14115
+ },
14116
+ elevation: {
14117
+ types: [
14118
+ "number"
14119
+ ]
14120
+ }
14121
+ },
14122
+ required: [
14123
+ "x",
14124
+ "y"
14125
+ ]
14126
+ }
14127
+ },
14128
+ units: {
14129
+ types: [
14130
+ "array"
14131
+ ],
14132
+ description: "Direct unit data \u2014 forwarded to BattleBoard; takes priority over entity.",
14133
+ items: {
14134
+ types: [
14135
+ "object"
14136
+ ],
14137
+ properties: {
14138
+ id: {
14139
+ types: [
14140
+ "string"
14141
+ ]
14142
+ },
14143
+ position: {
14144
+ types: [
14145
+ "object"
14146
+ ],
14147
+ properties: {
14148
+ x: {
14149
+ types: [
14150
+ "number"
14151
+ ]
14152
+ },
14153
+ y: {
14154
+ types: [
14155
+ "number"
14156
+ ]
14157
+ }
14158
+ },
14159
+ required: [
14160
+ "x",
14161
+ "y"
14162
+ ]
14163
+ },
14164
+ x: {
14165
+ types: [
14166
+ "number"
14167
+ ]
14168
+ },
14169
+ y: {
14170
+ types: [
14171
+ "number"
14172
+ ]
14173
+ },
14174
+ z: {
14175
+ types: [
14176
+ "number"
14177
+ ]
14178
+ },
14179
+ sprite: {
14180
+ types: [
14181
+ "object"
14182
+ ]
14183
+ },
14184
+ unitType: {
14185
+ types: [
14186
+ "string"
14187
+ ]
14188
+ },
14189
+ heroId: {
14190
+ types: [
14191
+ "string"
14192
+ ]
14193
+ },
14194
+ name: {
14195
+ types: [
14196
+ "string"
14197
+ ]
14198
+ },
14199
+ team: {
14200
+ types: [
14201
+ "string"
14202
+ ],
14203
+ enumValues: [
14204
+ "player",
14205
+ "enemy",
14206
+ "neutral"
14207
+ ]
14208
+ },
14209
+ faction: {
14210
+ types: [
14211
+ "string"
14212
+ ],
14213
+ enumValues: [
14214
+ "player",
14215
+ "enemy",
14216
+ "neutral"
14217
+ ]
14218
+ },
14219
+ health: {
14220
+ types: [
14221
+ "number"
14222
+ ]
14223
+ },
14224
+ maxHealth: {
14225
+ types: [
14226
+ "number"
14227
+ ]
14228
+ },
14229
+ traits: {
14230
+ types: [
14231
+ "array"
14232
+ ],
14233
+ items: {
14234
+ types: [
14235
+ "object"
14236
+ ],
14237
+ properties: {
14238
+ name: {
14239
+ types: [
14240
+ "string"
14241
+ ]
14242
+ },
14243
+ currentState: {
14244
+ types: [
14245
+ "string"
14246
+ ]
14247
+ },
14248
+ states: {
14249
+ types: [
14250
+ "array"
14251
+ ],
14252
+ items: {
14253
+ types: [
14254
+ "string"
14255
+ ]
14256
+ }
14257
+ },
14258
+ cooldown: {
14259
+ types: [
14260
+ "number"
14261
+ ]
14262
+ }
14263
+ },
14264
+ required: [
14265
+ "name",
14266
+ "currentState",
14267
+ "states",
14268
+ "cooldown"
14269
+ ]
14270
+ }
14271
+ },
14272
+ previousPosition: {
14273
+ types: [
14274
+ "object"
14275
+ ],
14276
+ properties: {
14277
+ x: {
14278
+ types: [
14279
+ "number"
14280
+ ]
14281
+ },
14282
+ y: {
14283
+ types: [
14284
+ "number"
14285
+ ]
14286
+ }
14287
+ },
14288
+ required: [
14289
+ "x",
14290
+ "y"
14291
+ ]
14292
+ },
14293
+ elevation: {
14294
+ types: [
14295
+ "number"
14296
+ ]
14297
+ }
14298
+ },
14299
+ required: [
14300
+ "id"
14301
+ ]
14302
+ }
14303
+ },
14304
+ features: {
14305
+ types: [
14306
+ "array"
14307
+ ],
14308
+ description: "Direct feature data \u2014 forwarded to BattleBoard; takes priority over entity.",
14309
+ items: {
14310
+ types: [
14311
+ "object"
14312
+ ],
14313
+ properties: {
14314
+ id: {
14315
+ types: [
14316
+ "string"
14317
+ ]
14318
+ },
14319
+ x: {
14320
+ types: [
14321
+ "number"
14322
+ ]
14323
+ },
14324
+ y: {
14325
+ types: [
14326
+ "number"
14327
+ ]
14328
+ },
14329
+ z: {
14330
+ types: [
14331
+ "number"
14332
+ ]
14333
+ },
14334
+ type: {
14335
+ types: [
14336
+ "string"
14337
+ ]
14338
+ },
14339
+ sprite: {
14340
+ types: [
14341
+ "object"
14342
+ ]
14343
+ },
14344
+ assetUrl: {
14345
+ types: [
14346
+ "object"
14347
+ ]
14348
+ },
14349
+ color: {
14350
+ types: [
14351
+ "string"
14352
+ ]
14353
+ },
14354
+ elevation: {
14355
+ types: [
14356
+ "number"
14357
+ ]
14358
+ }
14359
+ },
14360
+ required: [
14361
+ "x",
14362
+ "y",
14363
+ "type"
14364
+ ]
14365
+ }
14366
+ },
14367
+ assetManifest: {
14368
+ types: [
14369
+ "string"
14370
+ ],
14371
+ description: "Direct asset manifest \u2014 forwarded to BattleBoard; takes priority over entity."
14055
14372
  }
14056
14373
  }
14057
14374
  },
@@ -14087,6 +14404,323 @@ var patterns_registry_default = {
14087
14404
  ],
14088
14405
  description: "Canvas render scale",
14089
14406
  default: 0.45
14407
+ },
14408
+ tiles: {
14409
+ types: [
14410
+ "array"
14411
+ ],
14412
+ description: "Direct tile data \u2014 forwarded to CastleBoard; takes priority over entity.",
14413
+ items: {
14414
+ types: [
14415
+ "object"
14416
+ ],
14417
+ properties: {
14418
+ id: {
14419
+ types: [
14420
+ "string"
14421
+ ]
14422
+ },
14423
+ x: {
14424
+ types: [
14425
+ "number"
14426
+ ]
14427
+ },
14428
+ y: {
14429
+ types: [
14430
+ "number"
14431
+ ]
14432
+ },
14433
+ z: {
14434
+ types: [
14435
+ "number"
14436
+ ]
14437
+ },
14438
+ terrain: {
14439
+ types: [
14440
+ "string"
14441
+ ]
14442
+ },
14443
+ type: {
14444
+ types: [
14445
+ "string"
14446
+ ]
14447
+ },
14448
+ terrainSprite: {
14449
+ types: [
14450
+ "asset"
14451
+ ]
14452
+ },
14453
+ passable: {
14454
+ types: [
14455
+ "boolean"
14456
+ ]
14457
+ },
14458
+ movementCost: {
14459
+ types: [
14460
+ "number"
14461
+ ]
14462
+ },
14463
+ tileType: {
14464
+ types: [
14465
+ "string"
14466
+ ]
14467
+ },
14468
+ elevation: {
14469
+ types: [
14470
+ "number"
14471
+ ]
14472
+ }
14473
+ },
14474
+ required: [
14475
+ "x",
14476
+ "y"
14477
+ ]
14478
+ }
14479
+ },
14480
+ units: {
14481
+ types: [
14482
+ "array"
14483
+ ],
14484
+ description: "Direct unit data \u2014 forwarded to CastleBoard; takes priority over entity.",
14485
+ items: {
14486
+ types: [
14487
+ "object"
14488
+ ],
14489
+ properties: {
14490
+ id: {
14491
+ types: [
14492
+ "string"
14493
+ ]
14494
+ },
14495
+ position: {
14496
+ types: [
14497
+ "object"
14498
+ ],
14499
+ properties: {
14500
+ x: {
14501
+ types: [
14502
+ "number"
14503
+ ]
14504
+ },
14505
+ y: {
14506
+ types: [
14507
+ "number"
14508
+ ]
14509
+ }
14510
+ },
14511
+ required: [
14512
+ "x",
14513
+ "y"
14514
+ ]
14515
+ },
14516
+ x: {
14517
+ types: [
14518
+ "number"
14519
+ ]
14520
+ },
14521
+ y: {
14522
+ types: [
14523
+ "number"
14524
+ ]
14525
+ },
14526
+ z: {
14527
+ types: [
14528
+ "number"
14529
+ ]
14530
+ },
14531
+ sprite: {
14532
+ types: [
14533
+ "object"
14534
+ ]
14535
+ },
14536
+ unitType: {
14537
+ types: [
14538
+ "string"
14539
+ ]
14540
+ },
14541
+ heroId: {
14542
+ types: [
14543
+ "string"
14544
+ ]
14545
+ },
14546
+ name: {
14547
+ types: [
14548
+ "string"
14549
+ ]
14550
+ },
14551
+ team: {
14552
+ types: [
14553
+ "string"
14554
+ ],
14555
+ enumValues: [
14556
+ "player",
14557
+ "enemy",
14558
+ "neutral"
14559
+ ]
14560
+ },
14561
+ faction: {
14562
+ types: [
14563
+ "string"
14564
+ ],
14565
+ enumValues: [
14566
+ "player",
14567
+ "enemy",
14568
+ "neutral"
14569
+ ]
14570
+ },
14571
+ health: {
14572
+ types: [
14573
+ "number"
14574
+ ]
14575
+ },
14576
+ maxHealth: {
14577
+ types: [
14578
+ "number"
14579
+ ]
14580
+ },
14581
+ traits: {
14582
+ types: [
14583
+ "array"
14584
+ ],
14585
+ items: {
14586
+ types: [
14587
+ "object"
14588
+ ],
14589
+ properties: {
14590
+ name: {
14591
+ types: [
14592
+ "string"
14593
+ ]
14594
+ },
14595
+ currentState: {
14596
+ types: [
14597
+ "string"
14598
+ ]
14599
+ },
14600
+ states: {
14601
+ types: [
14602
+ "array"
14603
+ ],
14604
+ items: {
14605
+ types: [
14606
+ "string"
14607
+ ]
14608
+ }
14609
+ },
14610
+ cooldown: {
14611
+ types: [
14612
+ "number"
14613
+ ]
14614
+ }
14615
+ },
14616
+ required: [
14617
+ "name",
14618
+ "currentState",
14619
+ "states",
14620
+ "cooldown"
14621
+ ]
14622
+ }
14623
+ },
14624
+ previousPosition: {
14625
+ types: [
14626
+ "object"
14627
+ ],
14628
+ properties: {
14629
+ x: {
14630
+ types: [
14631
+ "number"
14632
+ ]
14633
+ },
14634
+ y: {
14635
+ types: [
14636
+ "number"
14637
+ ]
14638
+ }
14639
+ },
14640
+ required: [
14641
+ "x",
14642
+ "y"
14643
+ ]
14644
+ },
14645
+ elevation: {
14646
+ types: [
14647
+ "number"
14648
+ ]
14649
+ }
14650
+ },
14651
+ required: [
14652
+ "id"
14653
+ ]
14654
+ }
14655
+ },
14656
+ features: {
14657
+ types: [
14658
+ "array"
14659
+ ],
14660
+ description: "Direct feature data \u2014 forwarded to CastleBoard; takes priority over entity.",
14661
+ items: {
14662
+ types: [
14663
+ "object"
14664
+ ],
14665
+ properties: {
14666
+ id: {
14667
+ types: [
14668
+ "string"
14669
+ ]
14670
+ },
14671
+ x: {
14672
+ types: [
14673
+ "number"
14674
+ ]
14675
+ },
14676
+ y: {
14677
+ types: [
14678
+ "number"
14679
+ ]
14680
+ },
14681
+ z: {
14682
+ types: [
14683
+ "number"
14684
+ ]
14685
+ },
14686
+ type: {
14687
+ types: [
14688
+ "string"
14689
+ ]
14690
+ },
14691
+ sprite: {
14692
+ types: [
14693
+ "object"
14694
+ ]
14695
+ },
14696
+ assetUrl: {
14697
+ types: [
14698
+ "object"
14699
+ ]
14700
+ },
14701
+ color: {
14702
+ types: [
14703
+ "string"
14704
+ ]
14705
+ },
14706
+ elevation: {
14707
+ types: [
14708
+ "number"
14709
+ ]
14710
+ }
14711
+ },
14712
+ required: [
14713
+ "x",
14714
+ "y",
14715
+ "type"
14716
+ ]
14717
+ }
14718
+ },
14719
+ assetManifest: {
14720
+ types: [
14721
+ "string"
14722
+ ],
14723
+ description: "Direct asset manifest \u2014 forwarded to CastleBoard; takes priority over entity."
14090
14724
  }
14091
14725
  }
14092
14726
  },
@@ -14143,6 +14777,323 @@ var patterns_registry_default = {
14143
14777
  ],
14144
14778
  description: "Allow selecting / moving ALL heroes (including enemy). For testing.",
14145
14779
  default: false
14780
+ },
14781
+ tiles: {
14782
+ types: [
14783
+ "array"
14784
+ ],
14785
+ description: "Direct tile data \u2014 forwarded to WorldMapBoard; takes priority over entity.",
14786
+ items: {
14787
+ types: [
14788
+ "object"
14789
+ ],
14790
+ properties: {
14791
+ id: {
14792
+ types: [
14793
+ "string"
14794
+ ]
14795
+ },
14796
+ x: {
14797
+ types: [
14798
+ "number"
14799
+ ]
14800
+ },
14801
+ y: {
14802
+ types: [
14803
+ "number"
14804
+ ]
14805
+ },
14806
+ z: {
14807
+ types: [
14808
+ "number"
14809
+ ]
14810
+ },
14811
+ terrain: {
14812
+ types: [
14813
+ "string"
14814
+ ]
14815
+ },
14816
+ type: {
14817
+ types: [
14818
+ "string"
14819
+ ]
14820
+ },
14821
+ terrainSprite: {
14822
+ types: [
14823
+ "asset"
14824
+ ]
14825
+ },
14826
+ passable: {
14827
+ types: [
14828
+ "boolean"
14829
+ ]
14830
+ },
14831
+ movementCost: {
14832
+ types: [
14833
+ "number"
14834
+ ]
14835
+ },
14836
+ tileType: {
14837
+ types: [
14838
+ "string"
14839
+ ]
14840
+ },
14841
+ elevation: {
14842
+ types: [
14843
+ "number"
14844
+ ]
14845
+ }
14846
+ },
14847
+ required: [
14848
+ "x",
14849
+ "y"
14850
+ ]
14851
+ }
14852
+ },
14853
+ units: {
14854
+ types: [
14855
+ "array"
14856
+ ],
14857
+ description: "Direct unit data \u2014 forwarded to WorldMapBoard; takes priority over entity.",
14858
+ items: {
14859
+ types: [
14860
+ "object"
14861
+ ],
14862
+ properties: {
14863
+ id: {
14864
+ types: [
14865
+ "string"
14866
+ ]
14867
+ },
14868
+ position: {
14869
+ types: [
14870
+ "object"
14871
+ ],
14872
+ properties: {
14873
+ x: {
14874
+ types: [
14875
+ "number"
14876
+ ]
14877
+ },
14878
+ y: {
14879
+ types: [
14880
+ "number"
14881
+ ]
14882
+ }
14883
+ },
14884
+ required: [
14885
+ "x",
14886
+ "y"
14887
+ ]
14888
+ },
14889
+ x: {
14890
+ types: [
14891
+ "number"
14892
+ ]
14893
+ },
14894
+ y: {
14895
+ types: [
14896
+ "number"
14897
+ ]
14898
+ },
14899
+ z: {
14900
+ types: [
14901
+ "number"
14902
+ ]
14903
+ },
14904
+ sprite: {
14905
+ types: [
14906
+ "object"
14907
+ ]
14908
+ },
14909
+ unitType: {
14910
+ types: [
14911
+ "string"
14912
+ ]
14913
+ },
14914
+ heroId: {
14915
+ types: [
14916
+ "string"
14917
+ ]
14918
+ },
14919
+ name: {
14920
+ types: [
14921
+ "string"
14922
+ ]
14923
+ },
14924
+ team: {
14925
+ types: [
14926
+ "string"
14927
+ ],
14928
+ enumValues: [
14929
+ "player",
14930
+ "enemy",
14931
+ "neutral"
14932
+ ]
14933
+ },
14934
+ faction: {
14935
+ types: [
14936
+ "string"
14937
+ ],
14938
+ enumValues: [
14939
+ "player",
14940
+ "enemy",
14941
+ "neutral"
14942
+ ]
14943
+ },
14944
+ health: {
14945
+ types: [
14946
+ "number"
14947
+ ]
14948
+ },
14949
+ maxHealth: {
14950
+ types: [
14951
+ "number"
14952
+ ]
14953
+ },
14954
+ traits: {
14955
+ types: [
14956
+ "array"
14957
+ ],
14958
+ items: {
14959
+ types: [
14960
+ "object"
14961
+ ],
14962
+ properties: {
14963
+ name: {
14964
+ types: [
14965
+ "string"
14966
+ ]
14967
+ },
14968
+ currentState: {
14969
+ types: [
14970
+ "string"
14971
+ ]
14972
+ },
14973
+ states: {
14974
+ types: [
14975
+ "array"
14976
+ ],
14977
+ items: {
14978
+ types: [
14979
+ "string"
14980
+ ]
14981
+ }
14982
+ },
14983
+ cooldown: {
14984
+ types: [
14985
+ "number"
14986
+ ]
14987
+ }
14988
+ },
14989
+ required: [
14990
+ "name",
14991
+ "currentState",
14992
+ "states",
14993
+ "cooldown"
14994
+ ]
14995
+ }
14996
+ },
14997
+ previousPosition: {
14998
+ types: [
14999
+ "object"
15000
+ ],
15001
+ properties: {
15002
+ x: {
15003
+ types: [
15004
+ "number"
15005
+ ]
15006
+ },
15007
+ y: {
15008
+ types: [
15009
+ "number"
15010
+ ]
15011
+ }
15012
+ },
15013
+ required: [
15014
+ "x",
15015
+ "y"
15016
+ ]
15017
+ },
15018
+ elevation: {
15019
+ types: [
15020
+ "number"
15021
+ ]
15022
+ }
15023
+ },
15024
+ required: [
15025
+ "id"
15026
+ ]
15027
+ }
15028
+ },
15029
+ features: {
15030
+ types: [
15031
+ "array"
15032
+ ],
15033
+ description: "Direct feature data \u2014 forwarded to WorldMapBoard; takes priority over entity.",
15034
+ items: {
15035
+ types: [
15036
+ "object"
15037
+ ],
15038
+ properties: {
15039
+ id: {
15040
+ types: [
15041
+ "string"
15042
+ ]
15043
+ },
15044
+ x: {
15045
+ types: [
15046
+ "number"
15047
+ ]
15048
+ },
15049
+ y: {
15050
+ types: [
15051
+ "number"
15052
+ ]
15053
+ },
15054
+ z: {
15055
+ types: [
15056
+ "number"
15057
+ ]
15058
+ },
15059
+ type: {
15060
+ types: [
15061
+ "string"
15062
+ ]
15063
+ },
15064
+ sprite: {
15065
+ types: [
15066
+ "object"
15067
+ ]
15068
+ },
15069
+ assetUrl: {
15070
+ types: [
15071
+ "object"
15072
+ ]
15073
+ },
15074
+ color: {
15075
+ types: [
15076
+ "string"
15077
+ ]
15078
+ },
15079
+ elevation: {
15080
+ types: [
15081
+ "number"
15082
+ ]
15083
+ }
15084
+ },
15085
+ required: [
15086
+ "x",
15087
+ "y",
15088
+ "type"
15089
+ ]
15090
+ }
15091
+ },
15092
+ assetManifest: {
15093
+ types: [
15094
+ "string"
15095
+ ],
15096
+ description: "Direct asset manifest \u2014 forwarded to WorldMapBoard; takes priority over entity."
14146
15097
  }
14147
15098
  }
14148
15099
  },
@@ -24073,7 +25024,7 @@ var patterns_registry_default = {
24073
25024
  "asset"
24074
25025
  ],
24075
25026
  description: "URL for the speaker portrait image",
24076
- default: "https://almadar-kflow-assets.web.app/shared/characters/archetypes/00_base_model.png"
25027
+ default: "https://almadar-kflow-assets.web.app/shared/characters/archetypes/04_hero.png"
24077
25028
  },
24078
25029
  position: {
24079
25030
  types: [
@@ -28126,14 +29077,15 @@ var patterns_registry_default = {
28126
29077
  types: [
28127
29078
  "asset"
28128
29079
  ],
28129
- description: "Background image URL"
29080
+ description: "Background image URL",
29081
+ default: "https://almadar-kflow-assets.web.app/shared/scenes/resonators.jpeg"
28130
29082
  },
28131
29083
  assetBaseUrl: {
28132
29084
  types: [
28133
29085
  "asset"
28134
29086
  ],
28135
29087
  description: "Base URL prefix for asset URLs",
28136
- default: ""
29088
+ default: "https://almadar-kflow-assets.web.app/shared/"
28137
29089
  },
28138
29090
  className: {
28139
29091
  types: [
@@ -29874,7 +30826,8 @@ var patterns_registry_default = {
29874
30826
  types: [
29875
30827
  "asset"
29876
30828
  ],
29877
- description: "Background image URL tiled behind the isometric grid"
30829
+ description: "Background image URL tiled behind the isometric grid",
30830
+ default: "https://almadar-kflow-assets.web.app/shared/scenes/court.png"
29878
30831
  },
29879
30832
  showMinimap: {
29880
30833
  types: [
@@ -30186,7 +31139,8 @@ var patterns_registry_default = {
30186
31139
  types: [
30187
31140
  "asset"
30188
31141
  ],
30189
- description: "--- Remote asset loading ---"
31142
+ description: "--- Remote asset loading ---",
31143
+ default: "https://almadar-kflow-assets.web.app/shared/"
30190
31144
  },
30191
31145
  assetManifest: {
30192
31146
  types: [
@@ -30399,7 +31353,8 @@ var patterns_registry_default = {
30399
31353
  types: [
30400
31354
  "asset"
30401
31355
  ],
30402
- description: "Player sprite image URL"
31356
+ description: "Player sprite image URL",
31357
+ default: "https://almadar-kflow-assets.web.app/shared/platformer/characters/platformChar_idle.png"
30403
31358
  },
30404
31359
  tileSprites: {
30405
31360
  types: [
@@ -30416,14 +31371,15 @@ var patterns_registry_default = {
30416
31371
  types: [
30417
31372
  "asset"
30418
31373
  ],
30419
- description: "Background image URL"
31374
+ description: "Background image URL",
31375
+ default: "https://almadar-kflow-assets.web.app/shared/scenes/court.png"
30420
31376
  },
30421
31377
  assetBaseUrl: {
30422
31378
  types: [
30423
31379
  "asset"
30424
31380
  ],
30425
31381
  description: "Base URL prefix for asset URLs",
30426
- default: ""
31382
+ default: "https://almadar-kflow-assets.web.app/shared/platformer/"
30427
31383
  },
30428
31384
  leftEvent: {
30429
31385
  types: [
@@ -31545,6 +32501,370 @@ var patterns_registry_default = {
31545
32501
  kind: "entity",
31546
32502
  cardinality: "collection"
31547
32503
  },
32504
+ tiles: {
32505
+ types: [
32506
+ "array"
32507
+ ],
32508
+ description: "Direct tile data \u2014 takes priority over entity-derived tiles.",
32509
+ items: {
32510
+ types: [
32511
+ "object"
32512
+ ],
32513
+ properties: {
32514
+ id: {
32515
+ types: [
32516
+ "string"
32517
+ ]
32518
+ },
32519
+ x: {
32520
+ types: [
32521
+ "number"
32522
+ ]
32523
+ },
32524
+ y: {
32525
+ types: [
32526
+ "number"
32527
+ ]
32528
+ },
32529
+ z: {
32530
+ types: [
32531
+ "number"
32532
+ ]
32533
+ },
32534
+ terrain: {
32535
+ types: [
32536
+ "string"
32537
+ ]
32538
+ },
32539
+ type: {
32540
+ types: [
32541
+ "string"
32542
+ ]
32543
+ },
32544
+ terrainSprite: {
32545
+ types: [
32546
+ "asset"
32547
+ ]
32548
+ },
32549
+ passable: {
32550
+ types: [
32551
+ "boolean"
32552
+ ]
32553
+ },
32554
+ movementCost: {
32555
+ types: [
32556
+ "number"
32557
+ ]
32558
+ },
32559
+ tileType: {
32560
+ types: [
32561
+ "string"
32562
+ ]
32563
+ },
32564
+ elevation: {
32565
+ types: [
32566
+ "number"
32567
+ ]
32568
+ }
32569
+ },
32570
+ required: [
32571
+ "x",
32572
+ "y"
32573
+ ]
32574
+ }
32575
+ },
32576
+ units: {
32577
+ types: [
32578
+ "array"
32579
+ ],
32580
+ description: "Direct unit data \u2014 takes priority over entity-derived units.",
32581
+ items: {
32582
+ types: [
32583
+ "object"
32584
+ ],
32585
+ properties: {
32586
+ id: {
32587
+ types: [
32588
+ "string"
32589
+ ]
32590
+ },
32591
+ position: {
32592
+ types: [
32593
+ "object"
32594
+ ],
32595
+ properties: {
32596
+ x: {
32597
+ types: [
32598
+ "number"
32599
+ ]
32600
+ },
32601
+ y: {
32602
+ types: [
32603
+ "number"
32604
+ ]
32605
+ }
32606
+ },
32607
+ required: [
32608
+ "x",
32609
+ "y"
32610
+ ]
32611
+ },
32612
+ x: {
32613
+ types: [
32614
+ "number"
32615
+ ]
32616
+ },
32617
+ y: {
32618
+ types: [
32619
+ "number"
32620
+ ]
32621
+ },
32622
+ z: {
32623
+ types: [
32624
+ "number"
32625
+ ]
32626
+ },
32627
+ sprite: {
32628
+ types: [
32629
+ "asset"
32630
+ ]
32631
+ },
32632
+ unitType: {
32633
+ types: [
32634
+ "string"
32635
+ ]
32636
+ },
32637
+ heroId: {
32638
+ types: [
32639
+ "string"
32640
+ ]
32641
+ },
32642
+ name: {
32643
+ types: [
32644
+ "string"
32645
+ ]
32646
+ },
32647
+ team: {
32648
+ types: [
32649
+ "string"
32650
+ ],
32651
+ enumValues: [
32652
+ "player",
32653
+ "enemy",
32654
+ "neutral"
32655
+ ]
32656
+ },
32657
+ faction: {
32658
+ types: [
32659
+ "string"
32660
+ ],
32661
+ enumValues: [
32662
+ "player",
32663
+ "enemy",
32664
+ "neutral"
32665
+ ]
32666
+ },
32667
+ health: {
32668
+ types: [
32669
+ "number"
32670
+ ]
32671
+ },
32672
+ maxHealth: {
32673
+ types: [
32674
+ "number"
32675
+ ]
32676
+ },
32677
+ traits: {
32678
+ types: [
32679
+ "array"
32680
+ ],
32681
+ items: {
32682
+ types: [
32683
+ "object"
32684
+ ],
32685
+ properties: {
32686
+ name: {
32687
+ types: [
32688
+ "string"
32689
+ ]
32690
+ },
32691
+ currentState: {
32692
+ types: [
32693
+ "string"
32694
+ ]
32695
+ },
32696
+ states: {
32697
+ types: [
32698
+ "array"
32699
+ ],
32700
+ items: {
32701
+ types: [
32702
+ "string"
32703
+ ]
32704
+ }
32705
+ },
32706
+ cooldown: {
32707
+ types: [
32708
+ "number"
32709
+ ]
32710
+ }
32711
+ },
32712
+ required: [
32713
+ "name",
32714
+ "currentState",
32715
+ "states",
32716
+ "cooldown"
32717
+ ]
32718
+ }
32719
+ },
32720
+ previousPosition: {
32721
+ types: [
32722
+ "object"
32723
+ ],
32724
+ properties: {
32725
+ x: {
32726
+ types: [
32727
+ "number"
32728
+ ]
32729
+ },
32730
+ y: {
32731
+ types: [
32732
+ "number"
32733
+ ]
32734
+ }
32735
+ },
32736
+ required: [
32737
+ "x",
32738
+ "y"
32739
+ ]
32740
+ },
32741
+ elevation: {
32742
+ types: [
32743
+ "number"
32744
+ ]
32745
+ }
32746
+ },
32747
+ required: [
32748
+ "id"
32749
+ ]
32750
+ }
32751
+ },
32752
+ features: {
32753
+ types: [
32754
+ "array"
32755
+ ],
32756
+ description: "Direct feature data \u2014 takes priority over entity-derived features.",
32757
+ items: {
32758
+ types: [
32759
+ "object"
32760
+ ],
32761
+ properties: {
32762
+ id: {
32763
+ types: [
32764
+ "string"
32765
+ ]
32766
+ },
32767
+ x: {
32768
+ types: [
32769
+ "number"
32770
+ ]
32771
+ },
32772
+ y: {
32773
+ types: [
32774
+ "number"
32775
+ ]
32776
+ },
32777
+ z: {
32778
+ types: [
32779
+ "number"
32780
+ ]
32781
+ },
32782
+ type: {
32783
+ types: [
32784
+ "string"
32785
+ ]
32786
+ },
32787
+ sprite: {
32788
+ types: [
32789
+ "asset"
32790
+ ]
32791
+ },
32792
+ assetUrl: {
32793
+ types: [
32794
+ "asset"
32795
+ ]
32796
+ },
32797
+ color: {
32798
+ types: [
32799
+ "string"
32800
+ ]
32801
+ },
32802
+ elevation: {
32803
+ types: [
32804
+ "number"
32805
+ ]
32806
+ }
32807
+ },
32808
+ required: [
32809
+ "x",
32810
+ "y",
32811
+ "type"
32812
+ ]
32813
+ }
32814
+ },
32815
+ assetManifest: {
32816
+ types: [
32817
+ "object"
32818
+ ],
32819
+ description: "Direct asset manifest \u2014 takes priority over entity-derived manifest.",
32820
+ properties: {
32821
+ baseUrl: {
32822
+ types: [
32823
+ "asset"
32824
+ ]
32825
+ },
32826
+ terrains: {
32827
+ types: [
32828
+ "object"
32829
+ ],
32830
+ mapValue: {
32831
+ types: [
32832
+ "asset"
32833
+ ]
32834
+ }
32835
+ },
32836
+ units: {
32837
+ types: [
32838
+ "object"
32839
+ ],
32840
+ mapValue: {
32841
+ types: [
32842
+ "asset"
32843
+ ]
32844
+ }
32845
+ },
32846
+ features: {
32847
+ types: [
32848
+ "object"
32849
+ ],
32850
+ mapValue: {
32851
+ types: [
32852
+ "asset"
32853
+ ]
32854
+ }
32855
+ },
32856
+ effects: {
32857
+ types: [
32858
+ "object"
32859
+ ],
32860
+ mapValue: {
32861
+ types: [
32862
+ "asset"
32863
+ ]
32864
+ }
32865
+ }
32866
+ }
32867
+ },
31548
32868
  scale: {
31549
32869
  types: [
31550
32870
  "number"
@@ -32572,13 +33892,15 @@ var patterns_registry_default = {
32572
33892
  types: [
32573
33893
  "asset"
32574
33894
  ],
32575
- description: "--- Remote asset loading ---"
33895
+ description: "--- Remote asset loading ---",
33896
+ default: "https://almadar-kflow-assets.web.app/shared/effects/gas/gas00.png"
32576
33897
  },
32577
33898
  assetBaseUrl: {
32578
33899
  types: [
32579
33900
  "asset"
32580
33901
  ],
32581
- description: "Base URL for remote assets. Prepended to relative effectSpriteUrl paths."
33902
+ description: "Base URL for remote assets. Prepended to relative effectSpriteUrl paths.",
33903
+ default: "https://almadar-kflow-assets.web.app/shared/effects/"
32582
33904
  },
32583
33905
  assetManifest: {
32584
33906
  types: [
@@ -32873,6 +34195,360 @@ var patterns_registry_default = {
32873
34195
  kind: "entity",
32874
34196
  cardinality: "collection"
32875
34197
  },
34198
+ tiles: {
34199
+ types: [
34200
+ "array"
34201
+ ],
34202
+ description: "Direct tile data \u2014 takes priority over entity-derived tiles.",
34203
+ items: {
34204
+ types: [
34205
+ "object"
34206
+ ],
34207
+ properties: {
34208
+ id: {
34209
+ types: [
34210
+ "string"
34211
+ ]
34212
+ },
34213
+ x: {
34214
+ types: [
34215
+ "number"
34216
+ ]
34217
+ },
34218
+ y: {
34219
+ types: [
34220
+ "number"
34221
+ ]
34222
+ },
34223
+ z: {
34224
+ types: [
34225
+ "number"
34226
+ ]
34227
+ },
34228
+ terrain: {
34229
+ types: [
34230
+ "string"
34231
+ ]
34232
+ },
34233
+ type: {
34234
+ types: [
34235
+ "string"
34236
+ ]
34237
+ },
34238
+ terrainSprite: {
34239
+ types: [
34240
+ "asset"
34241
+ ]
34242
+ },
34243
+ passable: {
34244
+ types: [
34245
+ "boolean"
34246
+ ]
34247
+ },
34248
+ movementCost: {
34249
+ types: [
34250
+ "number"
34251
+ ]
34252
+ },
34253
+ tileType: {
34254
+ types: [
34255
+ "string"
34256
+ ]
34257
+ },
34258
+ elevation: {
34259
+ types: [
34260
+ "number"
34261
+ ]
34262
+ }
34263
+ },
34264
+ required: [
34265
+ "x",
34266
+ "y"
34267
+ ]
34268
+ }
34269
+ },
34270
+ units: {
34271
+ types: [
34272
+ "array"
34273
+ ],
34274
+ description: "Direct unit data \u2014 takes priority over entity-derived units.",
34275
+ items: {
34276
+ types: [
34277
+ "object"
34278
+ ],
34279
+ properties: {
34280
+ id: {
34281
+ types: [
34282
+ "string"
34283
+ ]
34284
+ },
34285
+ position: {
34286
+ types: [
34287
+ "object"
34288
+ ],
34289
+ properties: {
34290
+ x: {
34291
+ types: [
34292
+ "number"
34293
+ ]
34294
+ },
34295
+ y: {
34296
+ types: [
34297
+ "number"
34298
+ ]
34299
+ }
34300
+ },
34301
+ required: [
34302
+ "x",
34303
+ "y"
34304
+ ]
34305
+ },
34306
+ x: {
34307
+ types: [
34308
+ "number"
34309
+ ]
34310
+ },
34311
+ y: {
34312
+ types: [
34313
+ "number"
34314
+ ]
34315
+ },
34316
+ z: {
34317
+ types: [
34318
+ "number"
34319
+ ]
34320
+ },
34321
+ sprite: {
34322
+ types: [
34323
+ "asset"
34324
+ ]
34325
+ },
34326
+ unitType: {
34327
+ types: [
34328
+ "string"
34329
+ ]
34330
+ },
34331
+ heroId: {
34332
+ types: [
34333
+ "string"
34334
+ ]
34335
+ },
34336
+ name: {
34337
+ types: [
34338
+ "string"
34339
+ ]
34340
+ },
34341
+ team: {
34342
+ types: [
34343
+ "string"
34344
+ ],
34345
+ enumValues: [
34346
+ "player",
34347
+ "enemy",
34348
+ "neutral"
34349
+ ]
34350
+ },
34351
+ faction: {
34352
+ types: [
34353
+ "string"
34354
+ ],
34355
+ enumValues: [
34356
+ "player",
34357
+ "enemy",
34358
+ "neutral"
34359
+ ]
34360
+ },
34361
+ health: {
34362
+ types: [
34363
+ "number"
34364
+ ]
34365
+ },
34366
+ maxHealth: {
34367
+ types: [
34368
+ "number"
34369
+ ]
34370
+ },
34371
+ traits: {
34372
+ types: [
34373
+ "array"
34374
+ ],
34375
+ items: {
34376
+ types: [
34377
+ "object"
34378
+ ],
34379
+ properties: {
34380
+ name: {
34381
+ types: [
34382
+ "string"
34383
+ ]
34384
+ },
34385
+ currentState: {
34386
+ types: [
34387
+ "string"
34388
+ ]
34389
+ },
34390
+ states: {
34391
+ types: [
34392
+ "array"
34393
+ ],
34394
+ items: {
34395
+ types: [
34396
+ "string"
34397
+ ]
34398
+ }
34399
+ },
34400
+ cooldown: {
34401
+ types: [
34402
+ "number"
34403
+ ]
34404
+ }
34405
+ },
34406
+ required: [
34407
+ "name",
34408
+ "currentState",
34409
+ "states",
34410
+ "cooldown"
34411
+ ]
34412
+ }
34413
+ },
34414
+ previousPosition: {
34415
+ types: [
34416
+ "object"
34417
+ ],
34418
+ properties: {
34419
+ x: {
34420
+ types: [
34421
+ "number"
34422
+ ]
34423
+ },
34424
+ y: {
34425
+ types: [
34426
+ "number"
34427
+ ]
34428
+ }
34429
+ },
34430
+ required: [
34431
+ "x",
34432
+ "y"
34433
+ ]
34434
+ },
34435
+ elevation: {
34436
+ types: [
34437
+ "number"
34438
+ ]
34439
+ }
34440
+ },
34441
+ required: [
34442
+ "id"
34443
+ ]
34444
+ }
34445
+ },
34446
+ features: {
34447
+ types: [
34448
+ "array"
34449
+ ],
34450
+ description: "Direct feature data \u2014 takes priority over entity-derived features.",
34451
+ items: {
34452
+ types: [
34453
+ "object"
34454
+ ],
34455
+ properties: {
34456
+ id: {
34457
+ types: [
34458
+ "string"
34459
+ ]
34460
+ },
34461
+ x: {
34462
+ types: [
34463
+ "number"
34464
+ ]
34465
+ },
34466
+ y: {
34467
+ types: [
34468
+ "number"
34469
+ ]
34470
+ },
34471
+ z: {
34472
+ types: [
34473
+ "number"
34474
+ ]
34475
+ },
34476
+ type: {
34477
+ types: [
34478
+ "string"
34479
+ ]
34480
+ },
34481
+ sprite: {
34482
+ types: [
34483
+ "asset"
34484
+ ]
34485
+ },
34486
+ assetUrl: {
34487
+ types: [
34488
+ "asset"
34489
+ ]
34490
+ },
34491
+ color: {
34492
+ types: [
34493
+ "string"
34494
+ ]
34495
+ },
34496
+ elevation: {
34497
+ types: [
34498
+ "number"
34499
+ ]
34500
+ }
34501
+ },
34502
+ required: [
34503
+ "x",
34504
+ "y",
34505
+ "type"
34506
+ ]
34507
+ }
34508
+ },
34509
+ assetManifest: {
34510
+ types: [
34511
+ "object"
34512
+ ],
34513
+ description: "Direct asset manifest \u2014 takes priority over entity-derived manifest.",
34514
+ properties: {
34515
+ baseUrl: {
34516
+ types: [
34517
+ "asset"
34518
+ ]
34519
+ },
34520
+ terrains: {
34521
+ types: [
34522
+ "object"
34523
+ ],
34524
+ mapValue: {
34525
+ types: [
34526
+ "asset"
34527
+ ]
34528
+ }
34529
+ },
34530
+ units: {
34531
+ types: [
34532
+ "object"
34533
+ ],
34534
+ mapValue: {
34535
+ types: [
34536
+ "asset"
34537
+ ]
34538
+ }
34539
+ },
34540
+ features: {
34541
+ types: [
34542
+ "object"
34543
+ ],
34544
+ mapValue: {
34545
+ types: [
34546
+ "asset"
34547
+ ]
34548
+ }
34549
+ }
34550
+ }
34551
+ },
32876
34552
  scale: {
32877
34553
  types: [
32878
34554
  "number"
@@ -35558,107 +37234,424 @@ var patterns_registry_default = {
35558
37234
  }
35559
37235
  ]
35560
37236
  },
35561
- stateStyles: {
37237
+ stateStyles: {
37238
+ types: [
37239
+ "object"
37240
+ ],
37241
+ description: "Custom state styles passed to StateIndicator",
37242
+ mapValue: {
37243
+ types: [
37244
+ "object"
37245
+ ],
37246
+ properties: {
37247
+ icon: {
37248
+ types: [
37249
+ "icon",
37250
+ "string"
37251
+ ]
37252
+ },
37253
+ bgClass: {
37254
+ types: [
37255
+ "string"
37256
+ ]
37257
+ }
37258
+ },
37259
+ required: [
37260
+ "icon",
37261
+ "bgClass"
37262
+ ]
37263
+ }
37264
+ },
37265
+ className: {
37266
+ types: [
37267
+ "string"
37268
+ ],
37269
+ description: "Additional CSS classes"
37270
+ },
37271
+ isLoading: {
37272
+ types: [
37273
+ "boolean"
37274
+ ],
37275
+ description: "Loading state"
37276
+ },
37277
+ error: {
37278
+ types: [
37279
+ "object"
37280
+ ],
37281
+ description: "Error state",
37282
+ properties: {
37283
+ message: {
37284
+ types: [
37285
+ "string"
37286
+ ]
37287
+ },
37288
+ name: {
37289
+ types: [
37290
+ "string"
37291
+ ]
37292
+ },
37293
+ code: {
37294
+ types: [
37295
+ "string"
37296
+ ]
37297
+ },
37298
+ stack: {
37299
+ types: [
37300
+ "string"
37301
+ ]
37302
+ }
37303
+ },
37304
+ propertyRequired: [
37305
+ "message"
37306
+ ]
37307
+ },
37308
+ entity: {
37309
+ types: [
37310
+ "string"
37311
+ ],
37312
+ description: "Entity name for schema-driven auto-fetch"
37313
+ }
37314
+ }
37315
+ },
37316
+ "uncontrolled-battle-board": {
37317
+ type: "uncontrolled-battle-board",
37318
+ category: "game",
37319
+ tier: "organisms",
37320
+ family: "game",
37321
+ description: "UncontrolledBattleBoard Thin wrapper that composes `useBattleState` + `BattleBoard` for self-managing game state. Accepts `initialUnits` instead of the controlled-mode fields and manages units, phase, turn, gameResult, and selectedUnitId internally via the hook. Use this component when you want the BattleBoard to manage its own game logic (e.g. in Storybook, prototypes, or simple integrations). For Orbital trait integration, use `BattleBoard` directly in controlled mode.",
37322
+ suggestedFor: [
37323
+ "uncontrolled",
37324
+ "battle",
37325
+ "board",
37326
+ "uncontrolled battle board"
37327
+ ],
37328
+ typicalSize: "large",
37329
+ propsSchema: {
37330
+ entity: {
37331
+ types: [
37332
+ "object",
37333
+ "array"
37334
+ ],
37335
+ description: "Single board-state entity row (or array). The internal `useBattleState`",
37336
+ kind: "entity",
37337
+ cardinality: "collection"
37338
+ },
37339
+ tiles: {
37340
+ types: [
37341
+ "array"
37342
+ ],
37343
+ description: "Direct tile data \u2014 takes priority over entity-derived tiles.",
37344
+ items: {
37345
+ types: [
37346
+ "object"
37347
+ ],
37348
+ properties: {
37349
+ id: {
37350
+ types: [
37351
+ "string"
37352
+ ]
37353
+ },
37354
+ x: {
37355
+ types: [
37356
+ "number"
37357
+ ]
37358
+ },
37359
+ y: {
37360
+ types: [
37361
+ "number"
37362
+ ]
37363
+ },
37364
+ z: {
37365
+ types: [
37366
+ "number"
37367
+ ]
37368
+ },
37369
+ terrain: {
37370
+ types: [
37371
+ "string"
37372
+ ]
37373
+ },
37374
+ type: {
37375
+ types: [
37376
+ "string"
37377
+ ]
37378
+ },
37379
+ terrainSprite: {
37380
+ types: [
37381
+ "asset"
37382
+ ]
37383
+ },
37384
+ passable: {
37385
+ types: [
37386
+ "boolean"
37387
+ ]
37388
+ },
37389
+ movementCost: {
37390
+ types: [
37391
+ "number"
37392
+ ]
37393
+ },
37394
+ tileType: {
37395
+ types: [
37396
+ "string"
37397
+ ]
37398
+ },
37399
+ elevation: {
37400
+ types: [
37401
+ "number"
37402
+ ]
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: {
35562
37588
  types: [
35563
- "object"
37589
+ "array"
35564
37590
  ],
35565
- description: "Custom state styles passed to StateIndicator",
35566
- mapValue: {
37591
+ description: "Direct feature data \u2014 takes priority over entity-derived features.",
37592
+ items: {
35567
37593
  types: [
35568
37594
  "object"
35569
37595
  ],
35570
37596
  properties: {
35571
- icon: {
37597
+ id: {
35572
37598
  types: [
35573
- "icon",
35574
37599
  "string"
35575
37600
  ]
35576
37601
  },
35577
- bgClass: {
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: {
35578
37633
  types: [
35579
37634
  "string"
35580
37635
  ]
37636
+ },
37637
+ elevation: {
37638
+ types: [
37639
+ "number"
37640
+ ]
35581
37641
  }
35582
37642
  },
35583
37643
  required: [
35584
- "icon",
35585
- "bgClass"
37644
+ "x",
37645
+ "y",
37646
+ "type"
35586
37647
  ]
35587
37648
  }
35588
37649
  },
35589
- className: {
35590
- types: [
35591
- "string"
35592
- ],
35593
- description: "Additional CSS classes"
35594
- },
35595
- isLoading: {
35596
- types: [
35597
- "boolean"
35598
- ],
35599
- description: "Loading state"
35600
- },
35601
- error: {
35602
- types: [
35603
- "object"
35604
- ],
35605
- description: "Error state",
35606
- properties: {
35607
- message: {
35608
- types: [
35609
- "string"
35610
- ]
35611
- },
35612
- name: {
35613
- types: [
35614
- "string"
35615
- ]
35616
- },
35617
- code: {
35618
- types: [
35619
- "string"
35620
- ]
35621
- },
35622
- stack: {
35623
- types: [
35624
- "string"
35625
- ]
35626
- }
35627
- },
35628
- propertyRequired: [
35629
- "message"
35630
- ]
35631
- },
35632
- entity: {
37650
+ assetManifest: {
35633
37651
  types: [
35634
37652
  "string"
35635
37653
  ],
35636
- description: "Entity name for schema-driven auto-fetch"
35637
- }
35638
- }
35639
- },
35640
- "uncontrolled-battle-board": {
35641
- type: "uncontrolled-battle-board",
35642
- category: "game",
35643
- tier: "organisms",
35644
- family: "game",
35645
- description: "UncontrolledBattleBoard Thin wrapper that composes `useBattleState` + `BattleBoard` for self-managing game state. Accepts `initialUnits` instead of the controlled-mode fields and manages units, phase, turn, gameResult, and selectedUnitId internally via the hook. Use this component when you want the BattleBoard to manage its own game logic (e.g. in Storybook, prototypes, or simple integrations). For Orbital trait integration, use `BattleBoard` directly in controlled mode.",
35646
- suggestedFor: [
35647
- "uncontrolled",
35648
- "battle",
35649
- "board",
35650
- "uncontrolled battle board"
35651
- ],
35652
- typicalSize: "large",
35653
- propsSchema: {
35654
- entity: {
35655
- types: [
35656
- "object",
35657
- "array"
35658
- ],
35659
- description: "Single board-state entity row (or array). The internal `useBattleState`",
35660
- kind: "entity",
35661
- cardinality: "collection"
37654
+ description: "Direct asset manifest \u2014 takes priority over entity-derived manifest."
35662
37655
  }
35663
37656
  }
35664
37657
  },
@@ -35728,6 +37721,360 @@ var patterns_registry_default = {
35728
37721
  kind: "entity",
35729
37722
  cardinality: "collection"
35730
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
+ },
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: {
37765
+ types: [
37766
+ "asset"
37767
+ ]
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
+ }
37789
+ },
37790
+ required: [
37791
+ "x",
37792
+ "y"
37793
+ ]
37794
+ }
37795
+ },
37796
+ units: {
37797
+ types: [
37798
+ "array"
37799
+ ],
37800
+ description: "Direct unit data \u2014 takes priority over entity-derived units.",
37801
+ items: {
37802
+ types: [
37803
+ "object"
37804
+ ],
37805
+ properties: {
37806
+ id: {
37807
+ types: [
37808
+ "string"
37809
+ ]
37810
+ },
37811
+ position: {
37812
+ types: [
37813
+ "object"
37814
+ ],
37815
+ properties: {
37816
+ x: {
37817
+ types: [
37818
+ "number"
37819
+ ]
37820
+ },
37821
+ y: {
37822
+ types: [
37823
+ "number"
37824
+ ]
37825
+ }
37826
+ },
37827
+ required: [
37828
+ "x",
37829
+ "y"
37830
+ ]
37831
+ },
37832
+ x: {
37833
+ types: [
37834
+ "number"
37835
+ ]
37836
+ },
37837
+ y: {
37838
+ types: [
37839
+ "number"
37840
+ ]
37841
+ },
37842
+ z: {
37843
+ types: [
37844
+ "number"
37845
+ ]
37846
+ },
37847
+ sprite: {
37848
+ types: [
37849
+ "asset"
37850
+ ]
37851
+ },
37852
+ unitType: {
37853
+ types: [
37854
+ "string"
37855
+ ]
37856
+ },
37857
+ heroId: {
37858
+ types: [
37859
+ "string"
37860
+ ]
37861
+ },
37862
+ name: {
37863
+ types: [
37864
+ "string"
37865
+ ]
37866
+ },
37867
+ team: {
37868
+ types: [
37869
+ "string"
37870
+ ],
37871
+ enumValues: [
37872
+ "player",
37873
+ "enemy",
37874
+ "neutral"
37875
+ ]
37876
+ },
37877
+ faction: {
37878
+ types: [
37879
+ "string"
37880
+ ],
37881
+ enumValues: [
37882
+ "player",
37883
+ "enemy",
37884
+ "neutral"
37885
+ ]
37886
+ },
37887
+ health: {
37888
+ types: [
37889
+ "number"
37890
+ ]
37891
+ },
37892
+ maxHealth: {
37893
+ types: [
37894
+ "number"
37895
+ ]
37896
+ },
37897
+ traits: {
37898
+ types: [
37899
+ "array"
37900
+ ],
37901
+ items: {
37902
+ types: [
37903
+ "object"
37904
+ ],
37905
+ properties: {
37906
+ name: {
37907
+ types: [
37908
+ "string"
37909
+ ]
37910
+ },
37911
+ currentState: {
37912
+ types: [
37913
+ "string"
37914
+ ]
37915
+ },
37916
+ states: {
37917
+ types: [
37918
+ "array"
37919
+ ],
37920
+ items: {
37921
+ types: [
37922
+ "string"
37923
+ ]
37924
+ }
37925
+ },
37926
+ cooldown: {
37927
+ types: [
37928
+ "number"
37929
+ ]
37930
+ }
37931
+ },
37932
+ required: [
37933
+ "name",
37934
+ "currentState",
37935
+ "states",
37936
+ "cooldown"
37937
+ ]
37938
+ }
37939
+ },
37940
+ previousPosition: {
37941
+ types: [
37942
+ "object"
37943
+ ],
37944
+ properties: {
37945
+ x: {
37946
+ types: [
37947
+ "number"
37948
+ ]
37949
+ },
37950
+ y: {
37951
+ types: [
37952
+ "number"
37953
+ ]
37954
+ }
37955
+ },
37956
+ required: [
37957
+ "x",
37958
+ "y"
37959
+ ]
37960
+ },
37961
+ elevation: {
37962
+ types: [
37963
+ "number"
37964
+ ]
37965
+ }
37966
+ },
37967
+ required: [
37968
+ "id"
37969
+ ]
37970
+ }
37971
+ },
37972
+ features: {
37973
+ types: [
37974
+ "array"
37975
+ ],
37976
+ description: "Direct feature data \u2014 takes priority over entity-derived features.",
37977
+ items: {
37978
+ types: [
37979
+ "object"
37980
+ ],
37981
+ properties: {
37982
+ id: {
37983
+ types: [
37984
+ "string"
37985
+ ]
37986
+ },
37987
+ x: {
37988
+ types: [
37989
+ "number"
37990
+ ]
37991
+ },
37992
+ y: {
37993
+ types: [
37994
+ "number"
37995
+ ]
37996
+ },
37997
+ z: {
37998
+ types: [
37999
+ "number"
38000
+ ]
38001
+ },
38002
+ type: {
38003
+ types: [
38004
+ "string"
38005
+ ]
38006
+ },
38007
+ sprite: {
38008
+ types: [
38009
+ "asset"
38010
+ ]
38011
+ },
38012
+ assetUrl: {
38013
+ types: [
38014
+ "asset"
38015
+ ]
38016
+ },
38017
+ color: {
38018
+ types: [
38019
+ "string"
38020
+ ]
38021
+ },
38022
+ elevation: {
38023
+ types: [
38024
+ "number"
38025
+ ]
38026
+ }
38027
+ },
38028
+ required: [
38029
+ "x",
38030
+ "y",
38031
+ "type"
38032
+ ]
38033
+ }
38034
+ },
38035
+ assetManifest: {
38036
+ types: [
38037
+ "object"
38038
+ ],
38039
+ description: "Direct asset manifest \u2014 takes priority over entity-derived manifest.",
38040
+ properties: {
38041
+ baseUrl: {
38042
+ types: [
38043
+ "asset"
38044
+ ]
38045
+ },
38046
+ terrains: {
38047
+ types: [
38048
+ "object"
38049
+ ],
38050
+ mapValue: {
38051
+ types: [
38052
+ "asset"
38053
+ ]
38054
+ }
38055
+ },
38056
+ units: {
38057
+ types: [
38058
+ "object"
38059
+ ],
38060
+ mapValue: {
38061
+ types: [
38062
+ "asset"
38063
+ ]
38064
+ }
38065
+ },
38066
+ features: {
38067
+ types: [
38068
+ "object"
38069
+ ],
38070
+ mapValue: {
38071
+ types: [
38072
+ "asset"
38073
+ ]
38074
+ }
38075
+ }
38076
+ }
38077
+ },
35731
38078
  scale: {
35732
38079
  types: [
35733
38080
  "number"
@@ -41952,7 +44299,7 @@ var integrators_registry_default = {
41952
44299
  // src/component-mapping.json
41953
44300
  var component_mapping_default = {
41954
44301
  version: "1.0.0",
41955
- exportedAt: "2026-06-16T19:32:31.111Z",
44302
+ exportedAt: "2026-06-17T02:56:15.601Z",
41956
44303
  mappings: {
41957
44304
  "page-header": {
41958
44305
  component: "PageHeader",
@@ -43457,7 +45804,7 @@ var component_mapping_default = {
43457
45804
  // src/event-contracts.json
43458
45805
  var event_contracts_default = {
43459
45806
  version: "1.0.0",
43460
- exportedAt: "2026-06-16T19:32:31.111Z",
45807
+ exportedAt: "2026-06-17T02:56:15.601Z",
43461
45808
  contracts: {
43462
45809
  form: {
43463
45810
  emits: [