private Table<Integer, Integer, Object> buildHeaderTable(BundleHeader header) {
        TableBuilder table = new TableBuilder();
        table.row("Field", "Value");

        table.row("signature", header.signature());
        table.row("streamVersion", header.streamVersion());
        table.row("unityVersion", header.unityVersion());
        table.row("unityRevision", header.unityRevision());
        table.row("minimumStreamedBytes", header.minimumStreamedBytes());
        table.row("headerSize", header.headerSize());
        table.row("numberOfLevelsToDownload", header.numberOfLevelsToDownload());
        table.row("numberOfLevels", header.numberOfLevels());

        List<Pair<Long, Long>> levelByteEnds = header.levelByteEnd();
        for (int i = 0; i < levelByteEnds.size(); i++) {
            Pair<Long, Long> levelByteEnd = levelByteEnds.get(i);
            table.row("levelByteEnd[" + i + "][0]", levelByteEnd.getLeft());
            table.row("levelByteEnd[" + i + "][1]", levelByteEnd.getRight());
        }

        if (header.streamVersion() >= 2) {
            table.row("completeFileSize", header.completeFileSize());
        }

        if (header.streamVersion() >= 3) {
            table.row("dataHeaderSize", header.dataHeaderSize());
        }

        return table.get();
    }
@author Nico Bergemann <barracuda415 at yahoo.de>
disunity-cli/src/main/java/info/ata4/disunity/cli/command/bundle/BundleInfo.java