AsciiBox mergeHorizontal(List<AsciiBox> boxes) {
        switch (boxes.size()) {
            case 0:
                return new AsciiBox("");
            case 1:
                return boxes.get(0);
            case 2:
                return boxSideBySide(boxes.get(0), boxes.get(1));
            default:
                return boxSideBySide(boxes.get(0), mergeHorizontal(new ArrayList<>(boxes).subList(1, boxes.size())));
        }
    }
BoxBelowBox renders two boxes below

@param box1 above box2
@param box2 below box1
@return box1 above box2
plc4j/spi/src/main/java/org/apache/plc4x/java/spi/utils/ascii/AsciiBoxWriter.java