#[derive(Debug, thiserror::Error)]
pub enum ClientError {
#[error("Not connected to conductor")]
NotConnected,
#[error("Connection failed: {0}")]
ConnectionFailed(String),
#[error("Serialization error: {0}")]
SerializationError(String),
#[error("Zome call failed: {0}")]
ZomeCallFailed(String),
#[error("Timeout after {0}ms")]
Timeout(u32),
#[error("WebSocket error: {0}")]
WebSocketError(String),
#[error("Unknown request ID: {0}")]
UnknownRequestId(u64),
#[error("Invalid response: {0}")]
InvalidResponse(String),
#[error("Authentication failed: {0}")]
AuthenticationFailed(String),
#[error("Unknown role: {0}")]
UnknownRole(String),
}