use std::borrow::Cow;

use super::{CommandArg, CommandId};

pub enum Visibility {
    UserVisible,
    Hidden,
}

pub struct CommandMeta {
    pub id: CommandId,
    pub title: Cow<'static, str>,
    #[allow(dead_code)]
    pub description: Cow<'static, str>,
    pub args: Vec<CommandArg>,
    /// Active when `app.active_contexts ∩ contexts ≠ ∅`.
    /// An empty list means active in **all** contexts.
    #[allow(dead_code)]
    pub contexts: Vec<Cow<'static, str>>,
    pub visibility: Visibility,
}
