Use typed category tokens in verifier

This commit is contained in:
Meta Vens 2026-06-14 10:46:27 +01:00
commit 2fa129c976
4 changed files with 9 additions and 5 deletions

Binary file not shown.

View file

@ -9,5 +9,6 @@
<ItemGroup>
<ProjectReference Include="..\Aetheria.State\Aetheria.State.csproj" />
<ProjectReference Include="..\Aetheria.State.Unity\Aetheria.State.Unity.csproj" />
</ItemGroup>
</Project>

View file

@ -1,5 +1,6 @@
using Aetheria.State;
using Aetheria.State.Documents;
using GameCult.Aetheria.State.Unity;
var root = args.Length > 0 ? Path.GetFullPath(args[0]) : Directory.GetCurrentDirectory();
var statePath = args.Length > 1
@ -86,13 +87,13 @@ var importedThermalCurveItems = items.Count(item => item.ThermalPerformanceCurve
var thermalResilienceItems = items.Count(item => item.ThermalResilience > 0);
var audioStatItems = items.Count(item => item.AudioStats.Length > 0);
var audioStatCount = items.Sum(item => item.AudioStats.Length);
var consumableItems = items.Count(item => item.Category == "ConsumableItemData");
var consumableDurationItems = items.Count(item => item.Category == "ConsumableItemData" && item.Duration > 0);
var consumableItems = items.Count(item => item.Category == AetheriaRuntimeItemCategories.Consumable);
var consumableDurationItems = items.Count(item => item.Category == AetheriaRuntimeItemCategories.Consumable && item.Duration > 0);
var consumableEffectivenessItems = items.Count(item => item.EffectivenessCurveKeys.Length > 0);
var actionBarIconItems = items.Count(item => !string.IsNullOrWhiteSpace(item.ActionBarIcon));
var dockingBayItems = items.Count(item => item.Category == "DockingBayData");
var dockingBayItems = items.Count(item => item.Category == AetheriaRuntimeItemCategories.DockingBay);
var dockingBayMaxSizeItems = items.Count(item =>
item.Category == "DockingBayData" &&
item.Category == AetheriaRuntimeItemCategories.DockingBay &&
item.DockingMaxSizeX > 0 &&
item.DockingMaxSizeY > 0);
var describedCorporations = corporations.Count(corporation => !string.IsNullOrWhiteSpace(corporation.Description));

View file

@ -549,7 +549,9 @@ legacy catalog cache, and legacy UI paths should be migration-only or deleted.
map is keyed by typed behavior payload kind rather than legacy union key.
Runtime item category classification uses package-owned
`AetheriaRuntimeItemCategories` tokens; gameplay code should not ask C#
legacy DTO class names to classify typed catalog rows.
legacy DTO class names to classify typed catalog rows. The typed state
verifier also consumes those package-owned category tokens for consumable and
docking-bay coverage checks instead of hardcoding migrated class-name strings.
Item/behavior DTO field layout for the temporary projection bridge is now
marked with project-owned `LegacyPayloadKeyAttribute`, not MessagePack
metadata. Item properties