Warn when masterfeat expansion silently drops unobtainable feats
build-binaries / build-binaries (pull_request) Successful in 2m14s
test-image / build-image (pull_request) Successful in 34s
test / test (pull_request) Successful in 1m23s

classFeatExpansionCanUseFeat excludes ALLCLASSESCANUSE=0 feats from
class feat table masterfeat expansion. When such a feat also has no
MinLevelClass, no class can ever obtain it — a data bug that previously
failed silently (e.g. Spell Focus vanishing from the wizard table).

New validator warns for exactly that case; deliberate exclusions with
an explicit MinLevelClass stay silent.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-06 12:59:27 +02:00
co-authored by Claude Fable 5
parent 9357b30994
commit 34c950073b
3 changed files with 181 additions and 0 deletions
+1
View File
@@ -268,6 +268,7 @@ func ValidateProject(p *project.Project) ValidationReport {
validateNativeLockAllocation(dataDir, p.EffectiveConfig().TopData.RowGeneration, &report)
validateGeneratedFeatFamilies(dataDir, &report)
validateClassSpellbooks(dataDir, &report)
validateClassFeatMasterfeatAccessibility(dataDir, &report)
validateItempropsRegistryGraph(dataDir, &report)
if _, err := os.Stat(statePath); err == nil {
report.Files++