docs: public boolean mergeCancellingPairs() {
          final Multimap<UUID, Item> cancellingPairPerInvoiceItemId = LinkedListMultimap.<UUID, Item>create();
          for (final Item item : items) {
              final UUID invoiceItemId = (item.getAction() == ItemAction.ADD) ? item.getId() : item.getLinkedId();
              cancellingPairPerInvoiceItemId.put(invoiceItemId, item);
          }
  
          for (final UUID invoiceItemId : cancellingPairPerInvoiceItemId.keySet()) {
              final Collection<Item> itemsToRemove = cancellingPairPerInvoiceItemId.get(invoiceItemId);
              Preconditions.checkState(itemsToRemove.size() <= 2, "Too many repairs for invoiceItemId='%s': %s", invoiceItemId, itemsToRemove);
              if (itemsToRemove.size() == 2) {
                  for (final Item itemToRemove : itemsToRemove) {
                      items.remove(itemToRemove);
                  }
              }
          }
  
          return items.isEmpty();
      }