namespace FlappyBird.Core
{
    /// <summary>
    /// Contract for the score management service.
    /// Matches the interface defined in AI_RULES.md.
    /// </summary>
    public interface IScoreManager
    {
        /// <summary>Current score for this session.</summary>
        int CurrentScore { get; }
        /// <summary>All-time high score (persisted via PlayerPrefs).</summary>
        int HighScore { get; }
        /// <summary>Adds <paramref name="points"/> to the current score.</summary>
        void AddScore(int points);
        /// <summary>Resets the current score to zero (call on game restart).</summary>
        void ResetScore();
        /// <summary>Fired whenever the current score changes. Passes the new score value.</summary>
        event System.Action<int> OnScoreChanged;
        /// <summary>Fired when a new high score is set. Passes the new high score value.</summary>
        event System.Action<int> OnHighScoreBeaten;
    }
}