diff --git a/dotnet/src/Microsoft.AutoGen/Contracts/PythonEquiv/ISubscriptionDefinition.cs b/dotnet/src/Microsoft.AutoGen/Contracts/PythonEquiv/ISubscriptionDefinition.cs
index ee24e6a02..da78c7656 100644
--- a/dotnet/src/Microsoft.AutoGen/Contracts/PythonEquiv/ISubscriptionDefinition.cs
+++ b/dotnet/src/Microsoft.AutoGen/Contracts/PythonEquiv/ISubscriptionDefinition.cs
@@ -5,16 +5,49 @@ using System.Diagnostics.CodeAnalysis;
namespace Microsoft.AutoGen.Contracts.Python;
+///
+/// Defines a subscription that matches topics and maps them to agents.
+///
public interface ISubscriptionDefinition
{
+ ///
+ /// Gets the unique identifier of the subscription.
+ ///
public string Id { get; }
+ ///
+ /// Determines whether the specified object is equal to the current subscription.
+ ///
+ /// The object to compare with the current instance.
+ /// true if the specified object is equal to this instance; otherwise, false.
public bool Equals([NotNullWhen(true)] object? obj) => obj is ISubscriptionDefinition other && Equals(other);
+
+ ///
+ /// Determines whether the specified subscription is equal to the current subscription.
+ ///
+ /// The subscription to compare.
+ /// true if the subscriptions are equal; otherwise, false.
public bool Equals(ISubscriptionDefinition? other) => Id == other?.Id;
+ ///
+ /// Returns a hash code for this subscription.
+ ///
+ /// A hash code for the subscription.
public int GetHashCode() => Id.GetHashCode();
+ ///
+ /// Checks if a given matches the subscription.
+ ///
+ /// The topic to check.
+ /// true if the topic matches the subscription; otherwise, false.
public bool Matches(TopicId topic);
+
+ ///
+ /// Maps a to an .
+ /// Should only be called if returns true.
+ ///
+ /// The topic to map.
+ /// The that should handle the topic.
public AgentId MapToAgent(TopicId topic);
}