///|
fn http_peer_error(
  body : String,
  expected : @types.RequestId,
) -> @types.MCPError raise @types.MCPError {
  let value = @validation.parse_json(body)
  guard value is Object(fields) &&
    fields.get("jsonrpc") == Some(Json::string("2.0")) &&
    !fields.contains("method") &&
    !fields.contains("result") &&
    fields.get("id") is Some(id) &&
    @types.RequestId::from_json(id) == expected &&
    fields.get("error") is Some(error) else {
    raise @types.InvalidRequest(
      "HTTP error response must match the originating JSON-RPC request",
    )
  }
  @types.MCPError::from_jsonrpc_error(error)
}