#[derive(Debug, thiserror::Error)]
pub enum DomainError {
#[error("invalid file type: {0}")]
InvalidFileType(String),
#[error("invalid location: {0}")]
InvalidLocation(String),
#[error("invalid transfer state: {0}")]
InvalidTransferState(String),
#[error("invalid state transition: {from} → {to}")]
InvalidStateTransition { from: String, to: String },
#[error("validation error: {field} — {reason}")]
Validation { field: String, reason: String },
#[error("digest algorithm mismatch: cannot compare {left} with {right}")]
DigestAlgorithmMismatch { left: String, right: String },
}