static BUILD_BLOCK_INDEX(mapBuf, uniqueMapIdBytes, flagData) {
        const types = Object.entries(flagData).filter(([key, value]) => {
            return value === true;
        }).map(([key, value]) => {
            return parseInt(key);
        });
        const foundChunks = [];
        const foundChunksArr = [];
        let offset = 0;
        let foundIndex;

        do {
            foundIndex = mapBuf.indexOf(uniqueMapIdBytes, offset);

            if (foundIndex !== -1) {
                const type = types[foundChunksArr.length];

                foundChunksArr.push({
                    type: type,
                    startIdx: foundIndex
                });
                offset = foundIndex + 4;
            }
        } while (foundIndex !== -1);

        foundChunksArr.forEach((elem, idx) => {
            foundChunks.push({
                type: elem.type,
                view: mapBuf.subarray(elem.startIdx, foundChunksArr[idx+1]?.startIdx)
            });
        });

        return foundChunks;
    }
Because each block conveniently starts with the uniqueMapId, we can use that
to slice our map file into blocks that can then be processed further

@param {Buffer} mapBuf
@param {Buffer} uniqueMapIdBytes
@param {object} flagData
@return {Array<Block>}