use thiserror::Error;
#[derive(Debug, Error, PartialEq, Eq)]
pub enum ValidationError {
#[error("invalid JSON: {0}")]
InvalidJson(String),
#[error("type mismatch at {path}: {message}")]
TypeMismatch { path: String, message: String },
#[error("schema violation at {path}: {message}")]
SchemaViolation { path: String, message: String },
#[error("invariant violation: {0}")]
InvariantViolation(String),
}