#[derive(Debug, thiserror::Error)]
pub enum Error {
#[error("failed to fetch OpenAPI spec: {0}")]
SpecFetch(String),
#[error("failed to parse OpenAPI spec: {0}")]
SpecParse(String),
#[error("unsupported OpenAPI version: {0}")]
UnsupportedVersion(String),
#[error("unresolved $ref: {0}")]
UnresolvedRef(String),
#[error("HTTP client error: {0}")]
HttpClient(String),
#[error("API error (status {status}): {body}")]
ApiError { status: u16, body: String },
#[error("tool execution error: {0}")]
ToolExecution(String),
#[error("server error: {0}")]
Server(String),
}