use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
pub struct SkillEntry {
pub id: String,
pub name: String,
pub description: String,
pub scope: String,
#[serde(default, skip_serializing_if = "String::is_empty")]
pub source: String,
pub is_active: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub shadowed_by: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
pub struct SkillListResponse {
pub skills: Vec<SkillEntry>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
pub struct SkillInspectResponse {
pub id: String,
pub name: String,
pub description: String,
pub scope: String,
#[serde(default, skip_serializing_if = "String::is_empty")]
pub source: String,
pub body: String,
}