//! Archive backend capability enumeration.
//!
//! Mandatory session + message primitives are NOT listed here — every
//! backend has them. This enum represents the *optional* sub-traits a
//! backend opts into, surfaced through `ArchiveBackend::as_xxx()` accessors.

use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Copy, Serialize, Deserialize, PartialEq, Eq, Hash)]
pub enum ArchiveCapability {
    Search,
    Dag,
    MetaEvents,
    ConnectorRegistry,
    SessionMapping,
}

pub type CapabilitySet = std::collections::HashSet<ArchiveCapability>;
