public bool Equals(JsonSchema other) { if (other is null) { return(false); } return(Id == other.Id && (SchemaVersion == null ? other.SchemaVersion == null : SchemaVersion.EqualsWithFragments(other.SchemaVersion)) && string.Equals(Title, other.Title, StringComparison.Ordinal) && string.Equals(Description, other.Description, StringComparison.Ordinal) && Type.HasSameElementsAs(other.Type) && Enum.HasSameElementsAs(other.Enum) && (Items == null ? other.Items == null : Items.Equals(other.Items)) && (Properties == null ? other.Properties == null : Properties.HasSameElementsAs(other.Properties)) && Required.HasSameElementsAs(other.Required) && Definitions.HasSameElementsAs(other.Definitions) && (AdditionalItems == null ? other.AdditionalItems == null : AdditionalItems.Equals(other.AdditionalItems)) && (AdditionalProperties == null ? other.AdditionalProperties == null : AdditionalProperties.Equals(other.AdditionalProperties)) && (Dependencies == null ? other.Dependencies == null : Dependencies.HasSameElementsAs(other.Dependencies)) && (PatternProperties == null ? other.PatternProperties == null : PatternProperties.HasSameElementsAs(other.PatternProperties)) && (Reference == null ? other.Reference == null : Reference.Equals(other.Reference)) && Object.Equals(Default, other.Default) && Pattern == other.Pattern && MaxLength == other.MaxLength && MinLength == other.MinLength && MultipleOf == other.MultipleOf && Maximum == other.Maximum && ExclusiveMaximum == other.ExclusiveMaximum && MinItems == other.MinItems && MaxItems == other.MaxItems && UniqueItems == other.UniqueItems && string.Equals(Format, other.Format, StringComparison.Ordinal) && (AllOf == null ? other.AllOf == null : AllOf.HasSameElementsAs(other.AllOf)) && (AnyOf == null ? other.AnyOf == null : AnyOf.HasSameElementsAs(other.AnyOf)) && (OneOf == null ? other.OneOf == null : OneOf.HasSameElementsAs(other.OneOf)) && (Not == null ? other.Not == null : Not.Equals(other.Not))); }