#[derive(Debug, thiserror::Error)]
pub enum SdkError {
#[error("Not authenticated or session expired")]
NotAuthenticated,
#[error("Authorization check failed: {0}")]
Unauthorized(String),
#[error("Request failed: {0}")]
RequestError(#[from] reqwest::Error),
#[error("Server error: {0}")]
ServerError(String),
#[error("License signature invalid or malformed: {0}")]
Signature(String),
#[error("License expired")]
LicenseExpired,
#[error("License field mismatch: {0}")]
LicenseFieldMismatch(String),
}
pub type SdkResult<T> = Result<T, SdkError>;