/// The raw request and response JSON exchanged with the provider,
/// paired with the typed (normalized) response.
///
/// Returned by every `_raw` method on [`crate::LlmClientRaw`]. Useful for
/// debugging provider-specific transformations or implementing custom parsing.
/// Raw exchange data for streaming responses.
///
/// Returned by [`crate::LlmClientRaw::chat_stream_raw`]. The stream itself is
/// not captured in its entirety — only the request body is available upfront.
/// `RawStreamExchange` intentionally does not implement `Clone` because streams
/// cannot be duplicated.