ToolResponse.forVersion

Project the final CallToolResult to the negotiated protocol version so version-gated fields are not emitted to peers that don't understand them. CallToolResult.structuredContent is a 2025-06-18+ field and is stripped for 2024-11-05 / 2025-03-26. An InputRequiredResult is draft-only (MRTR): its {inputRequests, [requestState]} shape carries no content and exists only on versions whose schema permits it. Emitting it to a non-MRTR peer, whose CallToolResult requires content, is a programming error (a handler ignoring the documented stateless contract), so reject it rather than projecting an off-schema result onto the wire.

struct ToolResponse
const @safe
forVersion