namespace EventsAppQuest.Core
{
    /// <summary>
    /// Resultado de um apontamento espacial simulado (raycast/gaze simulado).
    /// Usado pelo QuestSimulatedPointerController e pela camada de cursor/seleção.
    /// </summary>
    public class QuestSimulatedPointerHit
    {
        /// <summary>Identificador do alvo atingido (ex.: "guided_step", "hotspot").</summary>
        public string TargetId { get; set; }

        /// <summary>Tipo do alvo (painel, hotspot, ação, navegação, info).</summary>
        public QuestPointableTargetType TargetType { get; set; }

        /// <summary>Score de relevância do hit (0..1); maior = mais central/adequado.</summary>
        public float HitScore { get; set; }

        /// <summary>Se true, o alvo pode receber confirmação.</summary>
        public bool IsInteractable { get; set; }

        /// <summary>Texto curto para exibição (ex.: nome do alvo, dica de ação).</summary>
        public string HitHint { get; set; }

        /// <summary>Modo que originou este hit (foco, centro simulado, ciclo manual).</summary>
        public QuestPointerSourceMode SourceMode { get; set; }
    }
}
