public bool DeepEquals(DestinyPublicMilestoneChallengeActivity?other)
 {
     return(other is not null &&
            ActivityHash == other.ActivityHash &&
            ChallengeObjectiveHashes.DeepEqualsListNaive(other.ChallengeObjectiveHashes) &&
            ModifierHashes.DeepEqualsListNaive(other.ModifierHashes) &&
            LoadoutRequirementIndex == other.LoadoutRequirementIndex &&
            PhaseHashes.DeepEqualsListNaive(other.PhaseHashes) &&
            BooleanActivityOptions.DeepEqualsDictionaryNaive(other.BooleanActivityOptions));
 }
 public void Update(DestinyPublicMilestoneChallengeActivity?other)
 {
     if (other is null)
     {
         return;
     }
     if (ActivityHash != other.ActivityHash)
     {
         ActivityHash = other.ActivityHash;
         OnPropertyChanged(nameof(ActivityHash));
     }
     if (!ChallengeObjectiveHashes.DeepEqualsListNaive(other.ChallengeObjectiveHashes))
     {
         ChallengeObjectiveHashes = other.ChallengeObjectiveHashes;
         OnPropertyChanged(nameof(ChallengeObjectiveHashes));
     }
     if (!ModifierHashes.DeepEqualsListNaive(other.ModifierHashes))
     {
         ModifierHashes = other.ModifierHashes;
         OnPropertyChanged(nameof(ModifierHashes));
     }
     if (LoadoutRequirementIndex != other.LoadoutRequirementIndex)
     {
         LoadoutRequirementIndex = other.LoadoutRequirementIndex;
         OnPropertyChanged(nameof(LoadoutRequirementIndex));
     }
     if (!PhaseHashes.DeepEqualsListNaive(other.PhaseHashes))
     {
         PhaseHashes = other.PhaseHashes;
         OnPropertyChanged(nameof(PhaseHashes));
     }
     if (!BooleanActivityOptions.DeepEqualsDictionaryNaive(other.BooleanActivityOptions))
     {
         BooleanActivityOptions = other.BooleanActivityOptions;
         OnPropertyChanged(nameof(BooleanActivityOptions));
     }
 }