docs: private Item createNewItem(@Nullable final LocalDate startDate, @Nullable final LocalDate endDate, @Nullable final UUID targetInvoiceId, final boolean mergeMode) {
          // Find the ADD (build phase) or CANCEL (merge phase) item of this interval
          final Item item = getResultingItem(mergeMode);
          if (item == null || startDate == null || endDate == null || targetInvoiceId == null) {
              return item;
          }
  
          // Prorate (build phase) or repair (merge phase) this item, as needed
          final InvoiceItem proratedInvoiceItem = item.toProratedInvoiceItem(startDate, endDate);
          if (proratedInvoiceItem == null) {
              return null;
          } else {
              // Keep track of the repaired amount for this item
              item.incrementCurrentRepairedAmount(proratedInvoiceItem.getAmount().abs());
              return new Item(proratedInvoiceItem, targetInvoiceId, item.getAction());
          }
      }