docs: @Override
      protected void ignoreDuplicatedChangeItemRequests() {
          if (getItems() != null) {
              final List<RESTAssignedPropertyTagCollectionItemV1> items = new ArrayList<RESTAssignedPropertyTagCollectionItemV1>(getItems());
  
              // on the second loop, remove any items that are marked for both add and remove is separate items
              for (int i = 0; i < items.size(); ++i) {
                  final RESTAssignedPropertyTagCollectionItemV1 child1 = items.get(i);
                  final RESTAssignedPropertyTagV1 childItem1 = child1.getItem();
  
                  // New Entity so ignore it
                  if (childItem1.getId() == null) continue;
  
                  // at this point we know that either add1 or remove1 will be true, but not both
                  final boolean add1 = child1.getState().equals(ADD_STATE);
                  final boolean remove1 = child1.getState().equals(REMOVE_STATE);
                  final boolean update1 = child1.getState().equals(UPDATE_STATE);
  
                  // Loop a second time, looking for duplicates
                  for (int j = i + 1; j < items.size(); ++j) {
                      final RESTAssignedPropertyTagCollectionItemV1 child2 = items.get(j);
                      final RESTAssignedPropertyTagV1 childItem2 = child2.getItem();
  
                      // New Entity so ignore it
                      if (childItem2.getId() == null) continue;
  
                      // Do some checks on values that could be null */
                      final boolean valueEqual = childItem1.getValue() == null && childItem2.getValue() == null || childItem1.getValue() !=
                              null && childItem1.getValue().equals(
                              childItem2.getValue());
                      final boolean relationshipIdEqual = childItem1.getRelationshipId() == null && childItem2.getRelationshipId() == null
                              || childItem1.getRelationshipId() != null && childItem1.getRelationshipId().equals(
                              childItem2.getRelationshipId());
  
                      // Check the PropertyTags for uniqueness and their value as well as their IDs
                      if (childItem1.getId().equals(
                              childItem2.getId()) && relationshipIdEqual && valueEqual && (((childItem1.getIsUnique() && childItem2
                              .getIsUnique())) || ((!childItem1.getIsUnique() || !childItem2.getIsUnique())))) {
                          final boolean add2 = child2.getState().equals(ADD_STATE);
                          final boolean remove2 = child2.getState().equals(REMOVE_STATE);
                          final boolean update2 = child2.getState().equals(UPDATE_STATE);
  
                          // check for double add, double remove, double update, and remove one instance
                          if ((add1 && add2) || (remove1 && remove2) || (update1 && update2)) getItems().remove(child1);
  
                          // check for double add, double remove, add and remove, remove and add
                          if ((add1 && remove2) || (remove1 && add2) || (update1 && remove2) || (update2 && remove1) || (update1 && add2)
                                  || (update2 && add1)) {
                              getItems().remove(child1);
                              getItems().remove(child2);
                          }
                      }
                  }
              }
          }
      }