docs: private static void mergeBlocks(List< Block > blocks) {
          for (int i = 1; i < blocks.size(); i++) {
              Block b1 = blocks.get(i - 1);
              Block b2 = blocks.get(i);
              if ((b1.mode == b2.mode) &&
                  (b1.mode != EncodingMode.NUM || b1.length + b2.length <= MAX_NUMERIC_COMPACTION_BLOCK_SIZE)) {
                  b1.length += b2.length;
                  blocks.remove(i);
                  i--;
              }
          }
      }