using System.Diagnostics.CodeAnalysis; namespace NeonSprawl.Server.Game.Factions; /// /// Read-only access to validated entries loaded at startup (). /// public interface IFactionDefinitionRegistry { /// Attempts to resolve a faction by stable id (see faction-def.schema.json). Unknown ids and null return false without throwing. bool TryGetDefinition(string? factionId, [NotNullWhen(true)] out FactionDefRow? definition); /// Every loaded definition, ordered by (ordinal). IReadOnlyList GetDefinitionsInIdOrder(); }