using System.Text.Json.Serialization; namespace ModelContextProtocol.Protocol; /// /// Represents a JSON-RPC message used in the Model Context Protocol (MCP) and that includes an ID. /// /// /// In the JSON-RPC protocol, messages with an ID require a response from the receiver. /// This includes request messages (which expect a matching response) and response messages /// (which include the ID of the original request they're responding to). /// The ID is used to correlate requests with their responses, allowing asynchronous /// communication where multiple requests can be sent without waiting for responses. /// public abstract class JsonRpcMessageWithId : JsonRpcMessage { /// Prevent external derivations. private protected JsonRpcMessageWithId() { } /// /// Gets or sets the message identifier. /// /// /// Each ID is expected to be unique within the context of a given session. /// [JsonPropertyName("id")] public RequestId Id { get; set; } }