//! Protocol layer: bidirectional conversion between wire JSON and [`defect_core::llm`]
//! internal representations.
//!
//! This layer handles only encoding/decoding; it does not include transport, auth, or URL
//! templates. Each submodule corresponds to a [`defect_core::llm::ProtocolId`].
// anthropic_messages is shared by anthropic and bedrock (bedrock uses the Anthropic
// Messages shape).
// deepseek_chat is used only by deepseek and depends on openai_chat.
// openai_chat is shared by openai and deepseek.