using System.Diagnostics.CodeAnalysis;
namespace NeonSprawl.Server.Game.Skills;
///
/// Read-only access to validated entries loaded at startup ().
///
///
/// E2.M2 (XP grants): callers issuing skill XP must ensure XpGrantEvent.sourceKind (or successor)
/// is listed on the target skill’s ; the award engine should reject
/// grants outside that set once implemented.
/// NEO-36: HTTP/read-model projections should depend on this interface rather than reaching into the catalog.
///
public interface ISkillDefinitionRegistry
{
/// Attempts to resolve a skill by stable id (see skill-def.schema.json). Unknown ids and null return false without throwing.
bool TryGetDefinition(string? skillId, [NotNullWhen(true)] out SkillDefRow? definition);
/// Every loaded definition, ordered by (ordinal).
IReadOnlyList GetDefinitionsInIdOrder();
}