use serde::{Deserialize, Serialize}; #[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize, schemars::JsonSchema)] pub struct CommandInvokeParams { /// Opaque endpoint-issued command identifier from the client-shell projection. pub command_id: String, #[serde(default, skip_serializing_if = "Option::is_none")] pub workspace_id: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub tab_id: Option, #[serde(default, skip_serializing_if = "Option::is_none")] pub pane_id: Option, /// Client-owned selection coordinates, validated against the pane's content revision. #[serde(default, skip_serializing_if = "Option::is_none")] pub selection: Option, }