//! Unified request format for protocol compilation

/// Unified request format (for protocol compilation)
#[derive(Debug, Clone, Default)]
pub struct UnifiedRequest {
    /// Operation intent used for endpoint routing (e.g. "chat", "completions", "embeddings")
    pub operation: String,
    /// Provider model id (e.g. "deepseek-chat", "gpt-4o-mini")
    pub model: String,
    pub messages: Vec<crate::types::message::Message>,
    pub temperature: Option<f64>,
    pub max_tokens: Option<u32>,
    pub stream: bool,
    pub tools: Option<Vec<crate::types::tool::ToolDefinition>>,
    /// OpenAI-style tool choice. Examples:
    /// - "auto"
    /// - "none"
    /// - {"type":"function","function":{"name":"web_search"}}
    pub tool_choice: Option<serde_json::Value>,
    /// JSON mode configuration for structured output
    pub response_format: Option<crate::structured::JsonModeConfig>,
}
