#[derive(Debug, thiserror::Error)]
pub enum EngineError {
#[error("IO error: {0}")]
Io(#[from] std::io::Error),
#[error("Git operation failed: {0}")]
Git(#[from] git2::Error),
#[error("File system operation failed: {0}")]
FileSystem(String),
#[error("Source fetch failed: {0}")]
SourceFetchFailed(String),
#[error("Final project copy failed: {0}")]
FinalCopyFailed(String),
}