code: private static long cloneChildrenToNewParent(ProductPartitionNode newParent,
        Iterable<ProductPartitionNode> children, final Long minimumId) {
      long updatedMinimumId = minimumId == null ? Long.MAX_VALUE : minimumId;
      for (ProductPartitionNode childNode : children) {
        newParent.asSubdivision();
        // Clone the child and add it to newParent's collection of children.
        ProductPartitionNode newChild = newParent.addChild(childNode.getDimension());
        newChild = ProductPartitionNode.copyProperties(childNode, newChild);
        updatedMinimumId =
            Math.min(updatedMinimumId, newChild.getProductPartitionId() == null ? Long.MAX_VALUE
                : newChild.getProductPartitionId());
        // Recursively clone the child's children.
        updatedMinimumId =
            cloneChildrenToNewParent(newChild, childNode.getChildren(), updatedMinimumId);
      }
      return updatedMinimumId;
    }
docs: Deeply clones each child in {@code children} and attaches it to {@code newParent}.
  
  @param newParent the new parent to which the cloned children will be added
  @param children the children to clone
  @param minimumId the minimum ID to compare to - may be null
  
  @return the minimum product partition ID found within the subtrees under {@code children}