//! Manifest struct — deserialized from _manifests/*.toml. //! One manifest = one agent. Source of truth; the .md file is generated. use serde::Deserialize; #[derive(Deserialize)] pub struct Manifest { pub name: String, pub description: String, pub tools: Vec, pub model: String, pub role: String, pub blocks: Vec, pub domain_in: Vec, pub forbidden_domain: Vec, pub handoff: Vec, #[serde(default)] pub output_extra_fields: Vec, pub memory_project: Option, pub project_claudemd: Option, pub references: Option, } #[derive(Deserialize)] pub struct Handoff { pub target: String, pub trigger: String, } #[derive(Deserialize)] pub struct References { #[serde(default)] pub extra: Vec, }