namespace EventsAppQuest.Core
{
    /// <summary>
    /// Comando de interação na apresentação Quest. Abstração simples para preparar a futura troca por input real
    /// (controlador, mão, gaze) sem retrabalho excessivo: o input adapter ou o SDK futuro emite comandos deste tipo.
    /// </summary>
    public enum QuestInteractionCommandType
    {
        NextSelectable,
        PreviousSelectable,
        ConfirmSelection,
        CancelSelection
    }

    /// <summary>Comando de interação (tipo e, opcionalmente, alvo).</summary>
    public struct QuestInteractionCommand
    {
        public QuestInteractionCommandType Type;
        /// <summary>Opcional: id do alvo quando o comando vem de apontamento/raycast.</summary>
        public string TargetId;

        public static QuestInteractionCommand FromType(QuestInteractionCommandType type)
        {
            return new QuestInteractionCommand { Type = type, TargetId = null };
        }
    }
}
