use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
pub struct EnvelopeWarning {
pub code: String,
pub message: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[cfg_attr(feature = "schemars", derive(schemars::JsonSchema))]
pub struct WireEnvelope<T> {
pub schema_version: u32,
#[serde(default)]
pub command: Option<String>,
pub data: T,
#[serde(default)]
pub exit_code: i32,
#[serde(default, skip_serializing_if = "Vec::is_empty")]
pub warnings: Vec<EnvelopeWarning>,
}