class TrackerError(Exception): """A stable, user-facing tracker failure.""" def __init__(self, code, message, *, retryable=False, provider=None, operation=None, details=None): super().__init__(message) self.code = code self.message = message self.retryable = retryable self.provider = provider self.operation = operation self.details = details or {} def to_dict(self): return { "code": self.code, "message": self.message, "retryable": self.retryable, "provider": self.provider, "operation": self.operation, "details": self.details, }