#[derive(Debug, thiserror::Error)]
#[non_exhaustive]
pub enum SkillError {
#[error("Invalid skill manifest: {0}")]
InvalidManifest(String),
#[error("I/O error: {0}")]
Io(#[from] std::io::Error),
#[error("YAML parse error: {0}")]
Yaml(#[from] serde_yaml::Error),
#[error("Runtime not implemented: {0}")]
RuntimeNotImplemented(String),
#[error("Runtime error ({runtime}): {message}")]
Runtime {
runtime: String,
message: String,
},
}