using System.Text.Json.Nodes; using System.Text.Json.Serialization; namespace ModelContextProtocol.Protocol; /// /// Provides a base class for result payloads. /// public abstract class Result { /// Initializes the base result type. protected Result() { } /// /// Gets or sets metadata reserved by MCP for protocol-level metadata. /// /// /// Implementations must not make assumptions about its contents. /// [JsonPropertyName("_meta")] public JsonObject? Meta { get; set; } /// /// Gets or sets the type of the result, which allows the client to determine how to parse the result object. /// /// /// /// When absent or set to "complete", the result is a normal completed response. /// Other values discriminate alternate result subtypes so callers can choose the appropriate /// concrete payload to deserialize. /// /// /// Defaults to , which is equivalent to "complete". [JsonPropertyName("resultType")] public string? ResultType { get; set; } }