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();
}