use serde::{Deserialize, Serialize};
use serde_json::Value;
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ToolCallParams {
pub name: String,
#[serde(default)]
pub arguments: Option<Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ResourceReadParams {
pub uri: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct ResourceSubscribeParams {
pub uri: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct PromptGetParams {
pub name: String,
#[serde(default)]
pub arguments: Option<Value>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
pub struct CancelRequestParams {
#[serde(rename = "requestId")]
pub request_id: Value,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub reason: Option<String>,
}