docs: public void flattenToBuffer(ByteBuffer buf) {
          buf.put(INCOMPLETE_ENCODING_FROM_JAVA); // encoding version
          buf.put((byte)1); // owns_loops_
          buf.put((byte)(m_loops.size() > 1 ? 1 : 0)); // has_holes_
          buf.putInt(m_loops.size());
          int depth = 0;
          for (List<XYZPoint> loop : m_loops) {
              flattenLoopToBuffer(loop, depth, buf);
              depth = 1;
          }
          flattenEmptyBoundToBuffer(buf);
      }