#[derive(Debug, Clone, thiserror::Error)]
pub enum DiagnosticError {
#[error("failed to read model file: {0}")]
ReadModel(String),
#[error("failed to load profile: {0}")]
LoadProfile(String),
#[error("profile {name} extends `{base}`, but no such profile is built in")]
UnknownProfileBase { name: String, base: String },
#[error("cyclic profile inheritance: {chain}")]
CyclicProfileInheritance { chain: String },
#[error("shape expression `{expr}` references unresolved symbol `{symbol}`")]
UnresolvedShapeSymbol { expr: String, symbol: String },
#[error("shape expression `{expr}` failed to parse: {message}")]
ShapeExprParse { expr: String, message: String },
}