Drop the unreachable single-record CultMesh variant refusal; tolerate duplicate catalog slots

A variant needs its base beside it, so a single-record store can never hold one:
that overload's refusal could not fire. SlotNames no longer throws on a catalog
that repeats a slot.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Meta Vens 2026-09-29 04:21:58 +02:00
commit 33664434f9
2 changed files with 1 additions and 3 deletions

View file

@ -2919,7 +2919,7 @@ namespace GameCult.Caching
resolution.Descriptor,
new CultVariantDelta(record.Variant.BaseKey, record.Variant.Overrides)
{
SlotNames = persisted?.Members.ToDictionary(member => member.Slot, member => member.MemberName)
SlotNames = persisted?.Members.GroupBy(member => member.Slot).ToDictionary(group => group.Key, group => group.First().MemberName)
},
null);
}

View file

@ -191,8 +191,6 @@ namespace GameCult.Mesh
$"CultCache document '{path}' has schema '{record.SchemaId}', expected '{expectedSchemaId}'.");
}
RefuseVariant(path, record);
if (!PublishesSchema(snapshot.SchemaCatalog, expectedSchemaId))
{
throw new InvalidDataException(