namespace SVSim.Database.Services; /// /// Read-only access to game-domain configuration. Resolves each section atomically through the /// tier chain: DB row in GameConfigsappsettings.json section /// "GameConfig:<SectionName>"T.ShippedDefaults()new T(). /// /// "Atomic" means: the first tier that has the section wins entirely; tiers are not merged /// per-property. This is deliberate — see 2026-05-24 config refactor discussion. Caching is /// not implemented today (scoped lifetime; one DB read per request); the interface is shaped /// to allow it to be added later without changing call sites. /// /// public interface IGameConfigService { /// /// Resolves the section identified by 's /// ConfigSectionAttribute. Throws if the type is not annotated. /// T Get() where T : class, new(); }