#![cfg_attr(test, allow(clippy::expect_used, clippy::unwrap_used))]

//! Diagnostic surface for the extension subsystem — load-time issues
//! (missing fields, duplicates, built-in conflicts) and runtime spawn
//! failures collect here and are surfaced via `/extensions`.

use serde::Serialize;

#[derive(Debug, Clone, Serialize, PartialEq, Eq)]
#[serde(rename_all = "snake_case")]
pub enum DiagnosticSeverity {
    Warn,
    Error,
}

#[derive(Debug, Clone, Serialize, PartialEq, Eq)]
pub struct ExtensionDiagnostic {
    /// Name of the extension this diagnostic pertains to, or
    /// `"<manifest>"` for file-level diagnostics (parse errors).
    pub extension_name: String,
    pub severity: DiagnosticSeverity,
    pub message: String,
}
