Modul 01 Hotfix A2: AnvilRecipe.IsSplendorCosmic entfernt

Splendorous-Tool-Bonus is character-equipment state, not recipe state.
The flag moved to the simulator's stats layer (CraftStats.HasSplendorousTool
in module 02) per the 01-RecipeData Rev 6 spec polish (A2).

- AnvilRecipe.cs: IsSplendorCosmic property removed. Cosmic doc-block
  trimmed to four flags (IsCosmic + two MissionHas* + IsIshgardExpert)
  and now points consumers at the stats-layer for the Splendor branch.
- LuminaRecipeAdapter.cs: assignment in the recipe walk removed.
  ValidateCosmicInvariant drops the IsSplendorCosmic implication
  (MissionHas* checks unchanged).
- ConditionMechanicsTable.cs: header comment rewritten to describe
  Splendor as a stats-layer override rather than a recipe-flag override.

Sweep over Anvil/RecipeData/, Anvil/SelfTest/, Anvil/Hosting/,
Plugin.cs, and PluginHostFactory.cs: zero remaining references to
IsSplendorCosmic. Build clean (0/0), csharpier check clean.
This commit is contained in:
2026-05-28 18:30:32 +02:00
parent 8e624e509a
commit ce3fdda51c
3 changed files with 10 additions and 14 deletions
+6 -5
View File
@@ -28,19 +28,20 @@ public sealed record AnvilRecipe
// Cosmic Exploration (Patch 7.x). v0.1.0 ships with MissionHas* always
// false (SH-15 option B) - the data schema stays in place so v0.2.0+ can
// light up the surface by resolving the WKS mission sheet without
// touching the type. IsCosmic / IsSplendorCosmic are still set by the
// recipe-detection path so the catalog knows which recipes belong to the
// Cosmic surface even while the action flags stay dormant.
// touching the type. IsCosmic is still set by the recipe-detection path
// so the catalog knows which recipes belong to the Cosmic surface even
// while the mission flags stay dormant. The Splendorous-tool bonus is
// character-equipment state rather than recipe state, so it lives in
// the simulator's stats layer (CraftStats.HasSplendorousTool in module
// 02) instead of carrying a flag on this record.
//
// Adapter invariant (validated when the catalog is built):
// IsSplendorCosmic == true implies IsCosmic == true
// MissionHasMaterialMiracle == true implies IsCosmic == true
// MissionHasSteadyHand == true implies IsCosmic == true
//
// Inconsistent recipe states (sub-flag without master flag) throw at
// catalog-build time instead of silently corrupting the simulator.
public required bool IsCosmic { get; init; }
public required bool IsSplendorCosmic { get; init; }
public required bool MissionHasMaterialMiracle { get; init; }
public required bool MissionHasSteadyHand { get; init; }
public required bool IsIshgardExpert { get; init; }