pub enum KrakenError {
ConnectionFailed { url: String, reason: String },
WebSocket(String),
InvalidJson { message: String, raw: String },
ChecksumMismatch { symbol: String, expected: u32, computed: u32 },
SubscriptionRejected { channel: String, reason: String },
RateLimited { retry_after: Duration },
ApiError { code: i32, message: String, raw: String, recovery: RecoveryHint },
AuthenticationFailed { reason: String },
TokenExpired,
InvalidSymbol(String),
OrderRejected { reason: String },
InsufficientFunds,
Timeout,
}