using System.Diagnostics.CodeAnalysis; namespace NeonSprawl.Server.Game.Mastery; /// /// Read-only access to validated mastery tracks and perks loaded at startup (). /// public interface IMasteryCatalogRegistry { /// Attempts to resolve a track by skillId. Unknown ids and null return false without throwing. bool TryGetTrack(string? skillId, [NotNullWhen(true)] out MasteryTrackRow? track); /// Attempts to resolve a perk by stable id. Unknown ids and null return false without throwing. bool TryGetPerk(string? perkId, [NotNullWhen(true)] out PerkDefRow? perk); /// Every loaded track, ordered by (ordinal). IReadOnlyList GetTracksInSkillIdOrder(); /// Every loaded perk, ordered by (ordinal). IReadOnlyList GetPerksInIdOrder(); }