namespace NeonSprawl.Server.Game.Mastery;

/// <summary>How the unlock was triggered (branch-pick tier perks vs path-auto after level-up).</summary>
public enum PerkUnlockSource
{
    BranchPick,
    LevelUp,
}

/// <summary>Internal event when a perk becomes unlocked (NEO-47). E9.M1 <c>perk_unlock</c> hook site: <see cref="PerkUnlockEngine"/> <c>TryUnlockPerks</c> (NEO-49).</summary>
/// <param name="BranchId">Chosen branch when relevant; null for edge cases without a branch context.</param>
public sealed record PerkUnlockEvent(
    string PlayerId,
    string PerkId,
    string SkillId,
    int TierIndex,
    string? BranchId,
    PerkUnlockSource Source);
