namespace EventsAppQuest.Core
{
    /// <summary>
    /// Alvo selecionável na apresentação Quest: identificador, tipo, nome para exibição, disponibilidade e dica de ação.
    /// Preparado para futura substituição do input abstrato por input real (apontamento/raycast).
    /// </summary>
    public class QuestSelectableTarget
    {
        /// <summary>Identificador único do alvo (ex.: "step_0", "hotspot_1").</summary>
        public string TargetId { get; set; }

        /// <summary>Tipo do alvo (passo, hotspot, estado, botão, modo).</summary>
        public QuestSelectableTargetType TargetType { get; set; }

        /// <summary>Nome curto para exibição na UI.</summary>
        public string DisplayName { get; set; }

        /// <summary>Se true, o alvo pode ser selecionado e ativado no estado atual.</summary>
        public bool IsCurrentlyAvailable { get; set; }

        /// <summary>Dica textual da ação ao confirmar (ex.: "Próx. passo", "Reiniciar").</summary>
        public string SelectionHint { get; set; }

        /// <summary>Chave opcional para dados relacionados (ex.: índice do passo, id do hotspot).</summary>
        public string RelatedDataKey { get; set; }
    }
}
