public void Update(DestinyMilestoneActivityVariant?other)
 {
     if (other is null)
     {
         return;
     }
     if (ActivityHash != other.ActivityHash)
     {
         ActivityHash = other.ActivityHash;
         OnPropertyChanged(nameof(ActivityHash));
     }
     if (!CompletionStatus.DeepEquals(other.CompletionStatus))
     {
         CompletionStatus.Update(other.CompletionStatus);
         OnPropertyChanged(nameof(CompletionStatus));
     }
     if (ActivityModeHash != other.ActivityModeHash)
     {
         ActivityModeHash = other.ActivityModeHash;
         OnPropertyChanged(nameof(ActivityModeHash));
     }
     if (ActivityModeType != other.ActivityModeType)
     {
         ActivityModeType = other.ActivityModeType;
         OnPropertyChanged(nameof(ActivityModeType));
     }
 }
 public bool DeepEquals(DestinyMilestoneActivityVariant?other)
 {
     return(other is not null &&
            ActivityHash == other.ActivityHash &&
            (CompletionStatus is not null ? CompletionStatus.DeepEquals(other.CompletionStatus) : other.CompletionStatus is null) &&
            ActivityModeHash == other.ActivityModeHash &&
            ActivityModeType == other.ActivityModeType);
 }