From d04c93da1d8540890a6e8e0324704bf4ec7ddd76 Mon Sep 17 00:00:00 2001 From: Eirik Tsarpalis Date: Tue, 18 Nov 2025 19:39:58 +0200 Subject: [PATCH] Remove TODOs related to AllowOutOfOrderMetadataProperty workarounds. --- src/ModelContextProtocol.Core/Protocol/ContentBlock.cs | 4 +++- .../Protocol/ElicitRequestParams.cs | 4 +++- src/ModelContextProtocol.Core/Protocol/Reference.cs | 6 ++++-- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/ModelContextProtocol.Core/Protocol/ContentBlock.cs b/src/ModelContextProtocol.Core/Protocol/ContentBlock.cs index ccc5e9623..012038f1d 100644 --- a/src/ModelContextProtocol.Core/Protocol/ContentBlock.cs +++ b/src/ModelContextProtocol.Core/Protocol/ContentBlock.cs @@ -25,7 +25,7 @@ namespace ModelContextProtocol.Protocol; /// See the schema for more details. /// /// -[JsonConverter(typeof(Converter))] // TODO: This converter exists due to the lack of downlevel support for AllowOutOfOrderMetadataProperties. +[JsonConverter(typeof(Converter))] public abstract class ContentBlock { /// Prevent external derivations. @@ -55,6 +55,8 @@ private protected ContentBlock() /// /// Provides a for . /// + /// Provides a polymorphic converter for the class that doesn't require + /// setting explicitly. [EditorBrowsable(EditorBrowsableState.Never)] public class Converter : JsonConverter { diff --git a/src/ModelContextProtocol.Core/Protocol/ElicitRequestParams.cs b/src/ModelContextProtocol.Core/Protocol/ElicitRequestParams.cs index 2cd94a5de..50f9d4d51 100644 --- a/src/ModelContextProtocol.Core/Protocol/ElicitRequestParams.cs +++ b/src/ModelContextProtocol.Core/Protocol/ElicitRequestParams.cs @@ -61,7 +61,7 @@ public IDictionary Properties /// Represents restricted subset of JSON Schema: /// , , , or . /// - [JsonConverter(typeof(Converter))] // TODO: This converter exists due to the lack of downlevel support for AllowOutOfOrderMetadataProperties. + [JsonConverter(typeof(Converter))] public abstract class PrimitiveSchemaDefinition { /// Prevent external derivations. @@ -84,6 +84,8 @@ protected private PrimitiveSchemaDefinition() /// /// Provides a for . /// + /// Provides a polymorphic converter for the class that doesn't require + /// setting explicitly. [EditorBrowsable(EditorBrowsableState.Never)] public class Converter : JsonConverter { diff --git a/src/ModelContextProtocol.Core/Protocol/Reference.cs b/src/ModelContextProtocol.Core/Protocol/Reference.cs index 876ce4017..d5a78c33a 100644 --- a/src/ModelContextProtocol.Core/Protocol/Reference.cs +++ b/src/ModelContextProtocol.Core/Protocol/Reference.cs @@ -39,6 +39,10 @@ private protected Reference() /// /// Provides a for . /// + /// + /// Provides a polymorphic converter for the class that doesn't require + /// setting explicitly. + /// [EditorBrowsable(EditorBrowsableState.Never)] public sealed class Converter : JsonConverter { @@ -95,8 +99,6 @@ public sealed class Converter : JsonConverter } } - // TODO: This converter exists due to the lack of downlevel support for AllowOutOfOrderMetadataProperties. - switch (type) { case "ref/prompt":