using System.Collections.ObjectModel; namespace NeonSprawl.Server.Game.Skills; /// In-memory skill catalog loaded at startup (NEO-34). Game code should prefer for lookups (NEO-35). public sealed class SkillDefinitionCatalog { public SkillDefinitionCatalog( string skillsDirectory, IReadOnlyDictionary byId, int catalogJsonFileCount) { SkillsDirectory = skillsDirectory; ById = new ReadOnlyDictionary(new Dictionary(byId, StringComparer.Ordinal)); CatalogJsonFileCount = catalogJsonFileCount; } /// Absolute path to the directory that was enumerated for *.json catalogs. public string SkillsDirectory { get; } public IReadOnlyDictionary ById { get; } public int DistinctSkillCount => ById.Count; /// Number of *.json files under . public int CatalogJsonFileCount { get; } }