in src/Proton/Types/Transport/Begin.cs [209:230]
public override bool Equals(object obj)
{
return obj is Begin begin &&
modified == begin.modified &&
remoteChannel == begin.remoteChannel &&
nextOutgoingId == begin.nextOutgoingId &&
incomingWindow == begin.incomingWindow &&
outgoingWindow == begin.outgoingWindow &&
handleMax == begin.handleMax &&
EqualityComparer<Symbol[]>.Default.Equals(offeredCapabilities, begin.offeredCapabilities) &&
EqualityComparer<Symbol[]>.Default.Equals(desiredCapabilities, begin.desiredCapabilities) &&
EqualityComparer<IDictionary<Symbol, object>>.Default.Equals(properties, begin.properties) &&
RemoteChannel == begin.RemoteChannel &&
NextOutgoingId == begin.NextOutgoingId &&
IncomingWindow == begin.IncomingWindow &&
OutgoingWindow == begin.OutgoingWindow &&
HandleMax == begin.HandleMax &&
EqualityComparer<Symbol[]>.Default.Equals(OfferedCapabilities, begin.OfferedCapabilities) &&
EqualityComparer<Symbol[]>.Default.Equals(DesiredCapabilities, begin.DesiredCapabilities) &&
EqualityComparer<IDictionary<Symbol, object>>.Default.Equals(Properties, begin.Properties) &&
Type == begin.Type;
}