@almadar/patterns 2.44.0 → 2.45.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:07:52.301Z",
5
5
  patterns: {
6
6
  "entity-table": {
7
7
  type: "entity-table",
@@ -14087,6 +14087,323 @@ var patterns_registry_default = {
14087
14087
  ],
14088
14088
  description: "Canvas render scale",
14089
14089
  default: 0.45
14090
+ },
14091
+ tiles: {
14092
+ types: [
14093
+ "array"
14094
+ ],
14095
+ description: "Direct tile data \u2014 forwarded to CastleBoard; takes priority over entity.",
14096
+ items: {
14097
+ types: [
14098
+ "object"
14099
+ ],
14100
+ properties: {
14101
+ id: {
14102
+ types: [
14103
+ "string"
14104
+ ]
14105
+ },
14106
+ x: {
14107
+ types: [
14108
+ "number"
14109
+ ]
14110
+ },
14111
+ y: {
14112
+ types: [
14113
+ "number"
14114
+ ]
14115
+ },
14116
+ z: {
14117
+ types: [
14118
+ "number"
14119
+ ]
14120
+ },
14121
+ terrain: {
14122
+ types: [
14123
+ "string"
14124
+ ]
14125
+ },
14126
+ type: {
14127
+ types: [
14128
+ "string"
14129
+ ]
14130
+ },
14131
+ terrainSprite: {
14132
+ types: [
14133
+ "asset"
14134
+ ]
14135
+ },
14136
+ passable: {
14137
+ types: [
14138
+ "boolean"
14139
+ ]
14140
+ },
14141
+ movementCost: {
14142
+ types: [
14143
+ "number"
14144
+ ]
14145
+ },
14146
+ tileType: {
14147
+ types: [
14148
+ "string"
14149
+ ]
14150
+ },
14151
+ elevation: {
14152
+ types: [
14153
+ "number"
14154
+ ]
14155
+ }
14156
+ },
14157
+ required: [
14158
+ "x",
14159
+ "y"
14160
+ ]
14161
+ }
14162
+ },
14163
+ units: {
14164
+ types: [
14165
+ "array"
14166
+ ],
14167
+ description: "Direct unit data \u2014 forwarded to CastleBoard; takes priority over entity.",
14168
+ items: {
14169
+ types: [
14170
+ "object"
14171
+ ],
14172
+ properties: {
14173
+ id: {
14174
+ types: [
14175
+ "string"
14176
+ ]
14177
+ },
14178
+ position: {
14179
+ types: [
14180
+ "object"
14181
+ ],
14182
+ properties: {
14183
+ x: {
14184
+ types: [
14185
+ "number"
14186
+ ]
14187
+ },
14188
+ y: {
14189
+ types: [
14190
+ "number"
14191
+ ]
14192
+ }
14193
+ },
14194
+ required: [
14195
+ "x",
14196
+ "y"
14197
+ ]
14198
+ },
14199
+ x: {
14200
+ types: [
14201
+ "number"
14202
+ ]
14203
+ },
14204
+ y: {
14205
+ types: [
14206
+ "number"
14207
+ ]
14208
+ },
14209
+ z: {
14210
+ types: [
14211
+ "number"
14212
+ ]
14213
+ },
14214
+ sprite: {
14215
+ types: [
14216
+ "object"
14217
+ ]
14218
+ },
14219
+ unitType: {
14220
+ types: [
14221
+ "string"
14222
+ ]
14223
+ },
14224
+ heroId: {
14225
+ types: [
14226
+ "string"
14227
+ ]
14228
+ },
14229
+ name: {
14230
+ types: [
14231
+ "string"
14232
+ ]
14233
+ },
14234
+ team: {
14235
+ types: [
14236
+ "string"
14237
+ ],
14238
+ enumValues: [
14239
+ "player",
14240
+ "enemy",
14241
+ "neutral"
14242
+ ]
14243
+ },
14244
+ faction: {
14245
+ types: [
14246
+ "string"
14247
+ ],
14248
+ enumValues: [
14249
+ "player",
14250
+ "enemy",
14251
+ "neutral"
14252
+ ]
14253
+ },
14254
+ health: {
14255
+ types: [
14256
+ "number"
14257
+ ]
14258
+ },
14259
+ maxHealth: {
14260
+ types: [
14261
+ "number"
14262
+ ]
14263
+ },
14264
+ traits: {
14265
+ types: [
14266
+ "array"
14267
+ ],
14268
+ items: {
14269
+ types: [
14270
+ "object"
14271
+ ],
14272
+ properties: {
14273
+ name: {
14274
+ types: [
14275
+ "string"
14276
+ ]
14277
+ },
14278
+ currentState: {
14279
+ types: [
14280
+ "string"
14281
+ ]
14282
+ },
14283
+ states: {
14284
+ types: [
14285
+ "array"
14286
+ ],
14287
+ items: {
14288
+ types: [
14289
+ "string"
14290
+ ]
14291
+ }
14292
+ },
14293
+ cooldown: {
14294
+ types: [
14295
+ "number"
14296
+ ]
14297
+ }
14298
+ },
14299
+ required: [
14300
+ "name",
14301
+ "currentState",
14302
+ "states",
14303
+ "cooldown"
14304
+ ]
14305
+ }
14306
+ },
14307
+ previousPosition: {
14308
+ types: [
14309
+ "object"
14310
+ ],
14311
+ properties: {
14312
+ x: {
14313
+ types: [
14314
+ "number"
14315
+ ]
14316
+ },
14317
+ y: {
14318
+ types: [
14319
+ "number"
14320
+ ]
14321
+ }
14322
+ },
14323
+ required: [
14324
+ "x",
14325
+ "y"
14326
+ ]
14327
+ },
14328
+ elevation: {
14329
+ types: [
14330
+ "number"
14331
+ ]
14332
+ }
14333
+ },
14334
+ required: [
14335
+ "id"
14336
+ ]
14337
+ }
14338
+ },
14339
+ features: {
14340
+ types: [
14341
+ "array"
14342
+ ],
14343
+ description: "Direct feature data \u2014 forwarded to CastleBoard; takes priority over entity.",
14344
+ items: {
14345
+ types: [
14346
+ "object"
14347
+ ],
14348
+ properties: {
14349
+ id: {
14350
+ types: [
14351
+ "string"
14352
+ ]
14353
+ },
14354
+ x: {
14355
+ types: [
14356
+ "number"
14357
+ ]
14358
+ },
14359
+ y: {
14360
+ types: [
14361
+ "number"
14362
+ ]
14363
+ },
14364
+ z: {
14365
+ types: [
14366
+ "number"
14367
+ ]
14368
+ },
14369
+ type: {
14370
+ types: [
14371
+ "string"
14372
+ ]
14373
+ },
14374
+ sprite: {
14375
+ types: [
14376
+ "object"
14377
+ ]
14378
+ },
14379
+ assetUrl: {
14380
+ types: [
14381
+ "object"
14382
+ ]
14383
+ },
14384
+ color: {
14385
+ types: [
14386
+ "string"
14387
+ ]
14388
+ },
14389
+ elevation: {
14390
+ types: [
14391
+ "number"
14392
+ ]
14393
+ }
14394
+ },
14395
+ required: [
14396
+ "x",
14397
+ "y",
14398
+ "type"
14399
+ ]
14400
+ }
14401
+ },
14402
+ assetManifest: {
14403
+ types: [
14404
+ "string"
14405
+ ],
14406
+ description: "Direct asset manifest \u2014 forwarded to CastleBoard; takes priority over entity."
14090
14407
  }
14091
14408
  }
14092
14409
  },
@@ -14143,6 +14460,323 @@ var patterns_registry_default = {
14143
14460
  ],
14144
14461
  description: "Allow selecting / moving ALL heroes (including enemy). For testing.",
14145
14462
  default: false
14463
+ },
14464
+ tiles: {
14465
+ types: [
14466
+ "array"
14467
+ ],
14468
+ description: "Direct tile data \u2014 forwarded to WorldMapBoard; takes priority over entity.",
14469
+ items: {
14470
+ types: [
14471
+ "object"
14472
+ ],
14473
+ properties: {
14474
+ id: {
14475
+ types: [
14476
+ "string"
14477
+ ]
14478
+ },
14479
+ x: {
14480
+ types: [
14481
+ "number"
14482
+ ]
14483
+ },
14484
+ y: {
14485
+ types: [
14486
+ "number"
14487
+ ]
14488
+ },
14489
+ z: {
14490
+ types: [
14491
+ "number"
14492
+ ]
14493
+ },
14494
+ terrain: {
14495
+ types: [
14496
+ "string"
14497
+ ]
14498
+ },
14499
+ type: {
14500
+ types: [
14501
+ "string"
14502
+ ]
14503
+ },
14504
+ terrainSprite: {
14505
+ types: [
14506
+ "asset"
14507
+ ]
14508
+ },
14509
+ passable: {
14510
+ types: [
14511
+ "boolean"
14512
+ ]
14513
+ },
14514
+ movementCost: {
14515
+ types: [
14516
+ "number"
14517
+ ]
14518
+ },
14519
+ tileType: {
14520
+ types: [
14521
+ "string"
14522
+ ]
14523
+ },
14524
+ elevation: {
14525
+ types: [
14526
+ "number"
14527
+ ]
14528
+ }
14529
+ },
14530
+ required: [
14531
+ "x",
14532
+ "y"
14533
+ ]
14534
+ }
14535
+ },
14536
+ units: {
14537
+ types: [
14538
+ "array"
14539
+ ],
14540
+ description: "Direct unit data \u2014 forwarded to WorldMapBoard; takes priority over entity.",
14541
+ items: {
14542
+ types: [
14543
+ "object"
14544
+ ],
14545
+ properties: {
14546
+ id: {
14547
+ types: [
14548
+ "string"
14549
+ ]
14550
+ },
14551
+ position: {
14552
+ types: [
14553
+ "object"
14554
+ ],
14555
+ properties: {
14556
+ x: {
14557
+ types: [
14558
+ "number"
14559
+ ]
14560
+ },
14561
+ y: {
14562
+ types: [
14563
+ "number"
14564
+ ]
14565
+ }
14566
+ },
14567
+ required: [
14568
+ "x",
14569
+ "y"
14570
+ ]
14571
+ },
14572
+ x: {
14573
+ types: [
14574
+ "number"
14575
+ ]
14576
+ },
14577
+ y: {
14578
+ types: [
14579
+ "number"
14580
+ ]
14581
+ },
14582
+ z: {
14583
+ types: [
14584
+ "number"
14585
+ ]
14586
+ },
14587
+ sprite: {
14588
+ types: [
14589
+ "object"
14590
+ ]
14591
+ },
14592
+ unitType: {
14593
+ types: [
14594
+ "string"
14595
+ ]
14596
+ },
14597
+ heroId: {
14598
+ types: [
14599
+ "string"
14600
+ ]
14601
+ },
14602
+ name: {
14603
+ types: [
14604
+ "string"
14605
+ ]
14606
+ },
14607
+ team: {
14608
+ types: [
14609
+ "string"
14610
+ ],
14611
+ enumValues: [
14612
+ "player",
14613
+ "enemy",
14614
+ "neutral"
14615
+ ]
14616
+ },
14617
+ faction: {
14618
+ types: [
14619
+ "string"
14620
+ ],
14621
+ enumValues: [
14622
+ "player",
14623
+ "enemy",
14624
+ "neutral"
14625
+ ]
14626
+ },
14627
+ health: {
14628
+ types: [
14629
+ "number"
14630
+ ]
14631
+ },
14632
+ maxHealth: {
14633
+ types: [
14634
+ "number"
14635
+ ]
14636
+ },
14637
+ traits: {
14638
+ types: [
14639
+ "array"
14640
+ ],
14641
+ items: {
14642
+ types: [
14643
+ "object"
14644
+ ],
14645
+ properties: {
14646
+ name: {
14647
+ types: [
14648
+ "string"
14649
+ ]
14650
+ },
14651
+ currentState: {
14652
+ types: [
14653
+ "string"
14654
+ ]
14655
+ },
14656
+ states: {
14657
+ types: [
14658
+ "array"
14659
+ ],
14660
+ items: {
14661
+ types: [
14662
+ "string"
14663
+ ]
14664
+ }
14665
+ },
14666
+ cooldown: {
14667
+ types: [
14668
+ "number"
14669
+ ]
14670
+ }
14671
+ },
14672
+ required: [
14673
+ "name",
14674
+ "currentState",
14675
+ "states",
14676
+ "cooldown"
14677
+ ]
14678
+ }
14679
+ },
14680
+ previousPosition: {
14681
+ types: [
14682
+ "object"
14683
+ ],
14684
+ properties: {
14685
+ x: {
14686
+ types: [
14687
+ "number"
14688
+ ]
14689
+ },
14690
+ y: {
14691
+ types: [
14692
+ "number"
14693
+ ]
14694
+ }
14695
+ },
14696
+ required: [
14697
+ "x",
14698
+ "y"
14699
+ ]
14700
+ },
14701
+ elevation: {
14702
+ types: [
14703
+ "number"
14704
+ ]
14705
+ }
14706
+ },
14707
+ required: [
14708
+ "id"
14709
+ ]
14710
+ }
14711
+ },
14712
+ features: {
14713
+ types: [
14714
+ "array"
14715
+ ],
14716
+ description: "Direct feature data \u2014 forwarded to WorldMapBoard; takes priority over entity.",
14717
+ items: {
14718
+ types: [
14719
+ "object"
14720
+ ],
14721
+ properties: {
14722
+ id: {
14723
+ types: [
14724
+ "string"
14725
+ ]
14726
+ },
14727
+ x: {
14728
+ types: [
14729
+ "number"
14730
+ ]
14731
+ },
14732
+ y: {
14733
+ types: [
14734
+ "number"
14735
+ ]
14736
+ },
14737
+ z: {
14738
+ types: [
14739
+ "number"
14740
+ ]
14741
+ },
14742
+ type: {
14743
+ types: [
14744
+ "string"
14745
+ ]
14746
+ },
14747
+ sprite: {
14748
+ types: [
14749
+ "object"
14750
+ ]
14751
+ },
14752
+ assetUrl: {
14753
+ types: [
14754
+ "object"
14755
+ ]
14756
+ },
14757
+ color: {
14758
+ types: [
14759
+ "string"
14760
+ ]
14761
+ },
14762
+ elevation: {
14763
+ types: [
14764
+ "number"
14765
+ ]
14766
+ }
14767
+ },
14768
+ required: [
14769
+ "x",
14770
+ "y",
14771
+ "type"
14772
+ ]
14773
+ }
14774
+ },
14775
+ assetManifest: {
14776
+ types: [
14777
+ "string"
14778
+ ],
14779
+ description: "Direct asset manifest \u2014 forwarded to WorldMapBoard; takes priority over entity."
14146
14780
  }
14147
14781
  }
14148
14782
  },
@@ -24073,7 +24707,7 @@ var patterns_registry_default = {
24073
24707
  "asset"
24074
24708
  ],
24075
24709
  description: "URL for the speaker portrait image",
24076
- default: "https://almadar-kflow-assets.web.app/shared/characters/archetypes/00_base_model.png"
24710
+ default: "https://almadar-kflow-assets.web.app/shared/characters/archetypes/04_hero.png"
24077
24711
  },
24078
24712
  position: {
24079
24713
  types: [
@@ -28126,14 +28760,15 @@ var patterns_registry_default = {
28126
28760
  types: [
28127
28761
  "asset"
28128
28762
  ],
28129
- description: "Background image URL"
28763
+ description: "Background image URL",
28764
+ default: "https://almadar-kflow-assets.web.app/shared/scenes/resonators.jpeg"
28130
28765
  },
28131
28766
  assetBaseUrl: {
28132
28767
  types: [
28133
28768
  "asset"
28134
28769
  ],
28135
28770
  description: "Base URL prefix for asset URLs",
28136
- default: ""
28771
+ default: "https://almadar-kflow-assets.web.app/shared/"
28137
28772
  },
28138
28773
  className: {
28139
28774
  types: [
@@ -29874,7 +30509,8 @@ var patterns_registry_default = {
29874
30509
  types: [
29875
30510
  "asset"
29876
30511
  ],
29877
- description: "Background image URL tiled behind the isometric grid"
30512
+ description: "Background image URL tiled behind the isometric grid",
30513
+ default: "https://almadar-kflow-assets.web.app/shared/scenes/court.png"
29878
30514
  },
29879
30515
  showMinimap: {
29880
30516
  types: [
@@ -30186,7 +30822,8 @@ var patterns_registry_default = {
30186
30822
  types: [
30187
30823
  "asset"
30188
30824
  ],
30189
- description: "--- Remote asset loading ---"
30825
+ description: "--- Remote asset loading ---",
30826
+ default: "https://almadar-kflow-assets.web.app/shared/"
30190
30827
  },
30191
30828
  assetManifest: {
30192
30829
  types: [
@@ -30399,7 +31036,8 @@ var patterns_registry_default = {
30399
31036
  types: [
30400
31037
  "asset"
30401
31038
  ],
30402
- description: "Player sprite image URL"
31039
+ description: "Player sprite image URL",
31040
+ default: "https://almadar-kflow-assets.web.app/shared/platformer/characters/platformChar_idle.png"
30403
31041
  },
30404
31042
  tileSprites: {
30405
31043
  types: [
@@ -30416,14 +31054,15 @@ var patterns_registry_default = {
30416
31054
  types: [
30417
31055
  "asset"
30418
31056
  ],
30419
- description: "Background image URL"
31057
+ description: "Background image URL",
31058
+ default: "https://almadar-kflow-assets.web.app/shared/scenes/court.png"
30420
31059
  },
30421
31060
  assetBaseUrl: {
30422
31061
  types: [
30423
31062
  "asset"
30424
31063
  ],
30425
31064
  description: "Base URL prefix for asset URLs",
30426
- default: ""
31065
+ default: "https://almadar-kflow-assets.web.app/shared/platformer/"
30427
31066
  },
30428
31067
  leftEvent: {
30429
31068
  types: [
@@ -31545,6 +32184,370 @@ var patterns_registry_default = {
31545
32184
  kind: "entity",
31546
32185
  cardinality: "collection"
31547
32186
  },
32187
+ tiles: {
32188
+ types: [
32189
+ "array"
32190
+ ],
32191
+ description: "Direct tile data \u2014 takes priority over entity-derived tiles.",
32192
+ items: {
32193
+ types: [
32194
+ "object"
32195
+ ],
32196
+ properties: {
32197
+ id: {
32198
+ types: [
32199
+ "string"
32200
+ ]
32201
+ },
32202
+ x: {
32203
+ types: [
32204
+ "number"
32205
+ ]
32206
+ },
32207
+ y: {
32208
+ types: [
32209
+ "number"
32210
+ ]
32211
+ },
32212
+ z: {
32213
+ types: [
32214
+ "number"
32215
+ ]
32216
+ },
32217
+ terrain: {
32218
+ types: [
32219
+ "string"
32220
+ ]
32221
+ },
32222
+ type: {
32223
+ types: [
32224
+ "string"
32225
+ ]
32226
+ },
32227
+ terrainSprite: {
32228
+ types: [
32229
+ "asset"
32230
+ ]
32231
+ },
32232
+ passable: {
32233
+ types: [
32234
+ "boolean"
32235
+ ]
32236
+ },
32237
+ movementCost: {
32238
+ types: [
32239
+ "number"
32240
+ ]
32241
+ },
32242
+ tileType: {
32243
+ types: [
32244
+ "string"
32245
+ ]
32246
+ },
32247
+ elevation: {
32248
+ types: [
32249
+ "number"
32250
+ ]
32251
+ }
32252
+ },
32253
+ required: [
32254
+ "x",
32255
+ "y"
32256
+ ]
32257
+ }
32258
+ },
32259
+ units: {
32260
+ types: [
32261
+ "array"
32262
+ ],
32263
+ description: "Direct unit data \u2014 takes priority over entity-derived units.",
32264
+ items: {
32265
+ types: [
32266
+ "object"
32267
+ ],
32268
+ properties: {
32269
+ id: {
32270
+ types: [
32271
+ "string"
32272
+ ]
32273
+ },
32274
+ position: {
32275
+ types: [
32276
+ "object"
32277
+ ],
32278
+ properties: {
32279
+ x: {
32280
+ types: [
32281
+ "number"
32282
+ ]
32283
+ },
32284
+ y: {
32285
+ types: [
32286
+ "number"
32287
+ ]
32288
+ }
32289
+ },
32290
+ required: [
32291
+ "x",
32292
+ "y"
32293
+ ]
32294
+ },
32295
+ x: {
32296
+ types: [
32297
+ "number"
32298
+ ]
32299
+ },
32300
+ y: {
32301
+ types: [
32302
+ "number"
32303
+ ]
32304
+ },
32305
+ z: {
32306
+ types: [
32307
+ "number"
32308
+ ]
32309
+ },
32310
+ sprite: {
32311
+ types: [
32312
+ "asset"
32313
+ ]
32314
+ },
32315
+ unitType: {
32316
+ types: [
32317
+ "string"
32318
+ ]
32319
+ },
32320
+ heroId: {
32321
+ types: [
32322
+ "string"
32323
+ ]
32324
+ },
32325
+ name: {
32326
+ types: [
32327
+ "string"
32328
+ ]
32329
+ },
32330
+ team: {
32331
+ types: [
32332
+ "string"
32333
+ ],
32334
+ enumValues: [
32335
+ "player",
32336
+ "enemy",
32337
+ "neutral"
32338
+ ]
32339
+ },
32340
+ faction: {
32341
+ types: [
32342
+ "string"
32343
+ ],
32344
+ enumValues: [
32345
+ "player",
32346
+ "enemy",
32347
+ "neutral"
32348
+ ]
32349
+ },
32350
+ health: {
32351
+ types: [
32352
+ "number"
32353
+ ]
32354
+ },
32355
+ maxHealth: {
32356
+ types: [
32357
+ "number"
32358
+ ]
32359
+ },
32360
+ traits: {
32361
+ types: [
32362
+ "array"
32363
+ ],
32364
+ items: {
32365
+ types: [
32366
+ "object"
32367
+ ],
32368
+ properties: {
32369
+ name: {
32370
+ types: [
32371
+ "string"
32372
+ ]
32373
+ },
32374
+ currentState: {
32375
+ types: [
32376
+ "string"
32377
+ ]
32378
+ },
32379
+ states: {
32380
+ types: [
32381
+ "array"
32382
+ ],
32383
+ items: {
32384
+ types: [
32385
+ "string"
32386
+ ]
32387
+ }
32388
+ },
32389
+ cooldown: {
32390
+ types: [
32391
+ "number"
32392
+ ]
32393
+ }
32394
+ },
32395
+ required: [
32396
+ "name",
32397
+ "currentState",
32398
+ "states",
32399
+ "cooldown"
32400
+ ]
32401
+ }
32402
+ },
32403
+ previousPosition: {
32404
+ types: [
32405
+ "object"
32406
+ ],
32407
+ properties: {
32408
+ x: {
32409
+ types: [
32410
+ "number"
32411
+ ]
32412
+ },
32413
+ y: {
32414
+ types: [
32415
+ "number"
32416
+ ]
32417
+ }
32418
+ },
32419
+ required: [
32420
+ "x",
32421
+ "y"
32422
+ ]
32423
+ },
32424
+ elevation: {
32425
+ types: [
32426
+ "number"
32427
+ ]
32428
+ }
32429
+ },
32430
+ required: [
32431
+ "id"
32432
+ ]
32433
+ }
32434
+ },
32435
+ features: {
32436
+ types: [
32437
+ "array"
32438
+ ],
32439
+ description: "Direct feature data \u2014 takes priority over entity-derived features.",
32440
+ items: {
32441
+ types: [
32442
+ "object"
32443
+ ],
32444
+ properties: {
32445
+ id: {
32446
+ types: [
32447
+ "string"
32448
+ ]
32449
+ },
32450
+ x: {
32451
+ types: [
32452
+ "number"
32453
+ ]
32454
+ },
32455
+ y: {
32456
+ types: [
32457
+ "number"
32458
+ ]
32459
+ },
32460
+ z: {
32461
+ types: [
32462
+ "number"
32463
+ ]
32464
+ },
32465
+ type: {
32466
+ types: [
32467
+ "string"
32468
+ ]
32469
+ },
32470
+ sprite: {
32471
+ types: [
32472
+ "asset"
32473
+ ]
32474
+ },
32475
+ assetUrl: {
32476
+ types: [
32477
+ "asset"
32478
+ ]
32479
+ },
32480
+ color: {
32481
+ types: [
32482
+ "string"
32483
+ ]
32484
+ },
32485
+ elevation: {
32486
+ types: [
32487
+ "number"
32488
+ ]
32489
+ }
32490
+ },
32491
+ required: [
32492
+ "x",
32493
+ "y",
32494
+ "type"
32495
+ ]
32496
+ }
32497
+ },
32498
+ assetManifest: {
32499
+ types: [
32500
+ "object"
32501
+ ],
32502
+ description: "Direct asset manifest \u2014 takes priority over entity-derived manifest.",
32503
+ properties: {
32504
+ baseUrl: {
32505
+ types: [
32506
+ "asset"
32507
+ ]
32508
+ },
32509
+ terrains: {
32510
+ types: [
32511
+ "object"
32512
+ ],
32513
+ mapValue: {
32514
+ types: [
32515
+ "asset"
32516
+ ]
32517
+ }
32518
+ },
32519
+ units: {
32520
+ types: [
32521
+ "object"
32522
+ ],
32523
+ mapValue: {
32524
+ types: [
32525
+ "asset"
32526
+ ]
32527
+ }
32528
+ },
32529
+ features: {
32530
+ types: [
32531
+ "object"
32532
+ ],
32533
+ mapValue: {
32534
+ types: [
32535
+ "asset"
32536
+ ]
32537
+ }
32538
+ },
32539
+ effects: {
32540
+ types: [
32541
+ "object"
32542
+ ],
32543
+ mapValue: {
32544
+ types: [
32545
+ "asset"
32546
+ ]
32547
+ }
32548
+ }
32549
+ }
32550
+ },
31548
32551
  scale: {
31549
32552
  types: [
31550
32553
  "number"
@@ -32572,13 +33575,15 @@ var patterns_registry_default = {
32572
33575
  types: [
32573
33576
  "asset"
32574
33577
  ],
32575
- description: "--- Remote asset loading ---"
33578
+ description: "--- Remote asset loading ---",
33579
+ default: "https://almadar-kflow-assets.web.app/shared/effects/gas/gas00.png"
32576
33580
  },
32577
33581
  assetBaseUrl: {
32578
33582
  types: [
32579
33583
  "asset"
32580
33584
  ],
32581
- description: "Base URL for remote assets. Prepended to relative effectSpriteUrl paths."
33585
+ description: "Base URL for remote assets. Prepended to relative effectSpriteUrl paths.",
33586
+ default: "https://almadar-kflow-assets.web.app/shared/effects/"
32582
33587
  },
32583
33588
  assetManifest: {
32584
33589
  types: [
@@ -32873,6 +33878,360 @@ var patterns_registry_default = {
32873
33878
  kind: "entity",
32874
33879
  cardinality: "collection"
32875
33880
  },
33881
+ tiles: {
33882
+ types: [
33883
+ "array"
33884
+ ],
33885
+ description: "Direct tile data \u2014 takes priority over entity-derived tiles.",
33886
+ items: {
33887
+ types: [
33888
+ "object"
33889
+ ],
33890
+ properties: {
33891
+ id: {
33892
+ types: [
33893
+ "string"
33894
+ ]
33895
+ },
33896
+ x: {
33897
+ types: [
33898
+ "number"
33899
+ ]
33900
+ },
33901
+ y: {
33902
+ types: [
33903
+ "number"
33904
+ ]
33905
+ },
33906
+ z: {
33907
+ types: [
33908
+ "number"
33909
+ ]
33910
+ },
33911
+ terrain: {
33912
+ types: [
33913
+ "string"
33914
+ ]
33915
+ },
33916
+ type: {
33917
+ types: [
33918
+ "string"
33919
+ ]
33920
+ },
33921
+ terrainSprite: {
33922
+ types: [
33923
+ "asset"
33924
+ ]
33925
+ },
33926
+ passable: {
33927
+ types: [
33928
+ "boolean"
33929
+ ]
33930
+ },
33931
+ movementCost: {
33932
+ types: [
33933
+ "number"
33934
+ ]
33935
+ },
33936
+ tileType: {
33937
+ types: [
33938
+ "string"
33939
+ ]
33940
+ },
33941
+ elevation: {
33942
+ types: [
33943
+ "number"
33944
+ ]
33945
+ }
33946
+ },
33947
+ required: [
33948
+ "x",
33949
+ "y"
33950
+ ]
33951
+ }
33952
+ },
33953
+ units: {
33954
+ types: [
33955
+ "array"
33956
+ ],
33957
+ description: "Direct unit data \u2014 takes priority over entity-derived units.",
33958
+ items: {
33959
+ types: [
33960
+ "object"
33961
+ ],
33962
+ properties: {
33963
+ id: {
33964
+ types: [
33965
+ "string"
33966
+ ]
33967
+ },
33968
+ position: {
33969
+ types: [
33970
+ "object"
33971
+ ],
33972
+ properties: {
33973
+ x: {
33974
+ types: [
33975
+ "number"
33976
+ ]
33977
+ },
33978
+ y: {
33979
+ types: [
33980
+ "number"
33981
+ ]
33982
+ }
33983
+ },
33984
+ required: [
33985
+ "x",
33986
+ "y"
33987
+ ]
33988
+ },
33989
+ x: {
33990
+ types: [
33991
+ "number"
33992
+ ]
33993
+ },
33994
+ y: {
33995
+ types: [
33996
+ "number"
33997
+ ]
33998
+ },
33999
+ z: {
34000
+ types: [
34001
+ "number"
34002
+ ]
34003
+ },
34004
+ sprite: {
34005
+ types: [
34006
+ "asset"
34007
+ ]
34008
+ },
34009
+ unitType: {
34010
+ types: [
34011
+ "string"
34012
+ ]
34013
+ },
34014
+ heroId: {
34015
+ types: [
34016
+ "string"
34017
+ ]
34018
+ },
34019
+ name: {
34020
+ types: [
34021
+ "string"
34022
+ ]
34023
+ },
34024
+ team: {
34025
+ types: [
34026
+ "string"
34027
+ ],
34028
+ enumValues: [
34029
+ "player",
34030
+ "enemy",
34031
+ "neutral"
34032
+ ]
34033
+ },
34034
+ faction: {
34035
+ types: [
34036
+ "string"
34037
+ ],
34038
+ enumValues: [
34039
+ "player",
34040
+ "enemy",
34041
+ "neutral"
34042
+ ]
34043
+ },
34044
+ health: {
34045
+ types: [
34046
+ "number"
34047
+ ]
34048
+ },
34049
+ maxHealth: {
34050
+ types: [
34051
+ "number"
34052
+ ]
34053
+ },
34054
+ traits: {
34055
+ types: [
34056
+ "array"
34057
+ ],
34058
+ items: {
34059
+ types: [
34060
+ "object"
34061
+ ],
34062
+ properties: {
34063
+ name: {
34064
+ types: [
34065
+ "string"
34066
+ ]
34067
+ },
34068
+ currentState: {
34069
+ types: [
34070
+ "string"
34071
+ ]
34072
+ },
34073
+ states: {
34074
+ types: [
34075
+ "array"
34076
+ ],
34077
+ items: {
34078
+ types: [
34079
+ "string"
34080
+ ]
34081
+ }
34082
+ },
34083
+ cooldown: {
34084
+ types: [
34085
+ "number"
34086
+ ]
34087
+ }
34088
+ },
34089
+ required: [
34090
+ "name",
34091
+ "currentState",
34092
+ "states",
34093
+ "cooldown"
34094
+ ]
34095
+ }
34096
+ },
34097
+ previousPosition: {
34098
+ types: [
34099
+ "object"
34100
+ ],
34101
+ properties: {
34102
+ x: {
34103
+ types: [
34104
+ "number"
34105
+ ]
34106
+ },
34107
+ y: {
34108
+ types: [
34109
+ "number"
34110
+ ]
34111
+ }
34112
+ },
34113
+ required: [
34114
+ "x",
34115
+ "y"
34116
+ ]
34117
+ },
34118
+ elevation: {
34119
+ types: [
34120
+ "number"
34121
+ ]
34122
+ }
34123
+ },
34124
+ required: [
34125
+ "id"
34126
+ ]
34127
+ }
34128
+ },
34129
+ features: {
34130
+ types: [
34131
+ "array"
34132
+ ],
34133
+ description: "Direct feature data \u2014 takes priority over entity-derived features.",
34134
+ items: {
34135
+ types: [
34136
+ "object"
34137
+ ],
34138
+ properties: {
34139
+ id: {
34140
+ types: [
34141
+ "string"
34142
+ ]
34143
+ },
34144
+ x: {
34145
+ types: [
34146
+ "number"
34147
+ ]
34148
+ },
34149
+ y: {
34150
+ types: [
34151
+ "number"
34152
+ ]
34153
+ },
34154
+ z: {
34155
+ types: [
34156
+ "number"
34157
+ ]
34158
+ },
34159
+ type: {
34160
+ types: [
34161
+ "string"
34162
+ ]
34163
+ },
34164
+ sprite: {
34165
+ types: [
34166
+ "asset"
34167
+ ]
34168
+ },
34169
+ assetUrl: {
34170
+ types: [
34171
+ "asset"
34172
+ ]
34173
+ },
34174
+ color: {
34175
+ types: [
34176
+ "string"
34177
+ ]
34178
+ },
34179
+ elevation: {
34180
+ types: [
34181
+ "number"
34182
+ ]
34183
+ }
34184
+ },
34185
+ required: [
34186
+ "x",
34187
+ "y",
34188
+ "type"
34189
+ ]
34190
+ }
34191
+ },
34192
+ assetManifest: {
34193
+ types: [
34194
+ "object"
34195
+ ],
34196
+ description: "Direct asset manifest \u2014 takes priority over entity-derived manifest.",
34197
+ properties: {
34198
+ baseUrl: {
34199
+ types: [
34200
+ "asset"
34201
+ ]
34202
+ },
34203
+ terrains: {
34204
+ types: [
34205
+ "object"
34206
+ ],
34207
+ mapValue: {
34208
+ types: [
34209
+ "asset"
34210
+ ]
34211
+ }
34212
+ },
34213
+ units: {
34214
+ types: [
34215
+ "object"
34216
+ ],
34217
+ mapValue: {
34218
+ types: [
34219
+ "asset"
34220
+ ]
34221
+ }
34222
+ },
34223
+ features: {
34224
+ types: [
34225
+ "object"
34226
+ ],
34227
+ mapValue: {
34228
+ types: [
34229
+ "asset"
34230
+ ]
34231
+ }
34232
+ }
34233
+ }
34234
+ },
32876
34235
  scale: {
32877
34236
  types: [
32878
34237
  "number"
@@ -35728,6 +37087,360 @@ var patterns_registry_default = {
35728
37087
  kind: "entity",
35729
37088
  cardinality: "collection"
35730
37089
  },
37090
+ tiles: {
37091
+ types: [
37092
+ "array"
37093
+ ],
37094
+ description: "Direct tile data \u2014 takes priority over entity-derived tiles.",
37095
+ items: {
37096
+ types: [
37097
+ "object"
37098
+ ],
37099
+ properties: {
37100
+ id: {
37101
+ types: [
37102
+ "string"
37103
+ ]
37104
+ },
37105
+ x: {
37106
+ types: [
37107
+ "number"
37108
+ ]
37109
+ },
37110
+ y: {
37111
+ types: [
37112
+ "number"
37113
+ ]
37114
+ },
37115
+ z: {
37116
+ types: [
37117
+ "number"
37118
+ ]
37119
+ },
37120
+ terrain: {
37121
+ types: [
37122
+ "string"
37123
+ ]
37124
+ },
37125
+ type: {
37126
+ types: [
37127
+ "string"
37128
+ ]
37129
+ },
37130
+ terrainSprite: {
37131
+ types: [
37132
+ "asset"
37133
+ ]
37134
+ },
37135
+ passable: {
37136
+ types: [
37137
+ "boolean"
37138
+ ]
37139
+ },
37140
+ movementCost: {
37141
+ types: [
37142
+ "number"
37143
+ ]
37144
+ },
37145
+ tileType: {
37146
+ types: [
37147
+ "string"
37148
+ ]
37149
+ },
37150
+ elevation: {
37151
+ types: [
37152
+ "number"
37153
+ ]
37154
+ }
37155
+ },
37156
+ required: [
37157
+ "x",
37158
+ "y"
37159
+ ]
37160
+ }
37161
+ },
37162
+ units: {
37163
+ types: [
37164
+ "array"
37165
+ ],
37166
+ description: "Direct unit data \u2014 takes priority over entity-derived units.",
37167
+ items: {
37168
+ types: [
37169
+ "object"
37170
+ ],
37171
+ properties: {
37172
+ id: {
37173
+ types: [
37174
+ "string"
37175
+ ]
37176
+ },
37177
+ position: {
37178
+ types: [
37179
+ "object"
37180
+ ],
37181
+ properties: {
37182
+ x: {
37183
+ types: [
37184
+ "number"
37185
+ ]
37186
+ },
37187
+ y: {
37188
+ types: [
37189
+ "number"
37190
+ ]
37191
+ }
37192
+ },
37193
+ required: [
37194
+ "x",
37195
+ "y"
37196
+ ]
37197
+ },
37198
+ x: {
37199
+ types: [
37200
+ "number"
37201
+ ]
37202
+ },
37203
+ y: {
37204
+ types: [
37205
+ "number"
37206
+ ]
37207
+ },
37208
+ z: {
37209
+ types: [
37210
+ "number"
37211
+ ]
37212
+ },
37213
+ sprite: {
37214
+ types: [
37215
+ "asset"
37216
+ ]
37217
+ },
37218
+ unitType: {
37219
+ types: [
37220
+ "string"
37221
+ ]
37222
+ },
37223
+ heroId: {
37224
+ types: [
37225
+ "string"
37226
+ ]
37227
+ },
37228
+ name: {
37229
+ types: [
37230
+ "string"
37231
+ ]
37232
+ },
37233
+ team: {
37234
+ types: [
37235
+ "string"
37236
+ ],
37237
+ enumValues: [
37238
+ "player",
37239
+ "enemy",
37240
+ "neutral"
37241
+ ]
37242
+ },
37243
+ faction: {
37244
+ types: [
37245
+ "string"
37246
+ ],
37247
+ enumValues: [
37248
+ "player",
37249
+ "enemy",
37250
+ "neutral"
37251
+ ]
37252
+ },
37253
+ health: {
37254
+ types: [
37255
+ "number"
37256
+ ]
37257
+ },
37258
+ maxHealth: {
37259
+ types: [
37260
+ "number"
37261
+ ]
37262
+ },
37263
+ traits: {
37264
+ types: [
37265
+ "array"
37266
+ ],
37267
+ items: {
37268
+ types: [
37269
+ "object"
37270
+ ],
37271
+ properties: {
37272
+ name: {
37273
+ types: [
37274
+ "string"
37275
+ ]
37276
+ },
37277
+ currentState: {
37278
+ types: [
37279
+ "string"
37280
+ ]
37281
+ },
37282
+ states: {
37283
+ types: [
37284
+ "array"
37285
+ ],
37286
+ items: {
37287
+ types: [
37288
+ "string"
37289
+ ]
37290
+ }
37291
+ },
37292
+ cooldown: {
37293
+ types: [
37294
+ "number"
37295
+ ]
37296
+ }
37297
+ },
37298
+ required: [
37299
+ "name",
37300
+ "currentState",
37301
+ "states",
37302
+ "cooldown"
37303
+ ]
37304
+ }
37305
+ },
37306
+ previousPosition: {
37307
+ types: [
37308
+ "object"
37309
+ ],
37310
+ properties: {
37311
+ x: {
37312
+ types: [
37313
+ "number"
37314
+ ]
37315
+ },
37316
+ y: {
37317
+ types: [
37318
+ "number"
37319
+ ]
37320
+ }
37321
+ },
37322
+ required: [
37323
+ "x",
37324
+ "y"
37325
+ ]
37326
+ },
37327
+ elevation: {
37328
+ types: [
37329
+ "number"
37330
+ ]
37331
+ }
37332
+ },
37333
+ required: [
37334
+ "id"
37335
+ ]
37336
+ }
37337
+ },
37338
+ features: {
37339
+ types: [
37340
+ "array"
37341
+ ],
37342
+ description: "Direct feature data \u2014 takes priority over entity-derived features.",
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
+ type: {
37369
+ types: [
37370
+ "string"
37371
+ ]
37372
+ },
37373
+ sprite: {
37374
+ types: [
37375
+ "asset"
37376
+ ]
37377
+ },
37378
+ assetUrl: {
37379
+ types: [
37380
+ "asset"
37381
+ ]
37382
+ },
37383
+ color: {
37384
+ types: [
37385
+ "string"
37386
+ ]
37387
+ },
37388
+ elevation: {
37389
+ types: [
37390
+ "number"
37391
+ ]
37392
+ }
37393
+ },
37394
+ required: [
37395
+ "x",
37396
+ "y",
37397
+ "type"
37398
+ ]
37399
+ }
37400
+ },
37401
+ assetManifest: {
37402
+ types: [
37403
+ "object"
37404
+ ],
37405
+ description: "Direct asset manifest \u2014 takes priority over entity-derived manifest.",
37406
+ properties: {
37407
+ baseUrl: {
37408
+ types: [
37409
+ "asset"
37410
+ ]
37411
+ },
37412
+ terrains: {
37413
+ types: [
37414
+ "object"
37415
+ ],
37416
+ mapValue: {
37417
+ types: [
37418
+ "asset"
37419
+ ]
37420
+ }
37421
+ },
37422
+ units: {
37423
+ types: [
37424
+ "object"
37425
+ ],
37426
+ mapValue: {
37427
+ types: [
37428
+ "asset"
37429
+ ]
37430
+ }
37431
+ },
37432
+ features: {
37433
+ types: [
37434
+ "object"
37435
+ ],
37436
+ mapValue: {
37437
+ types: [
37438
+ "asset"
37439
+ ]
37440
+ }
37441
+ }
37442
+ }
37443
+ },
35731
37444
  scale: {
35732
37445
  types: [
35733
37446
  "number"
@@ -41952,7 +43665,7 @@ var integrators_registry_default = {
41952
43665
  // src/component-mapping.json
41953
43666
  var component_mapping_default = {
41954
43667
  version: "1.0.0",
41955
- exportedAt: "2026-06-16T19:32:31.111Z",
43668
+ exportedAt: "2026-06-17T02:07:52.301Z",
41956
43669
  mappings: {
41957
43670
  "page-header": {
41958
43671
  component: "PageHeader",
@@ -43457,7 +45170,7 @@ var component_mapping_default = {
43457
45170
  // src/event-contracts.json
43458
45171
  var event_contracts_default = {
43459
45172
  version: "1.0.0",
43460
- exportedAt: "2026-06-16T19:32:31.111Z",
45173
+ exportedAt: "2026-06-17T02:07:52.301Z",
43461
45174
  contracts: {
43462
45175
  form: {
43463
45176
  emits: [