class AppError(Exception): """Domain error used by services to return canonical API errors.""" def __init__( self, code: str, message: str, details: dict | list | None = None, status_code: int = 400, ) -> None: super().__init__(message) self.code = code self.message = message self.details = details or {} self.status_code = status_code