code: int guessApproxLength() {
  
      // Make a guess at the contribution of the header. The header size is
      // reasonably constant, with the exception of the forward/reverse routing
      // paths.
      int total = 400;   // Approx 400 bytes in normal use header fields
  
      int size = 0;
  
      // Only get the FRP list out of the message if it is NOT the singleton empty list
      // as we don't want to spawn a real one unnecessarily
      if (getHdr2().isNotEMPTYlist(JsHdr2Access.FORWARDROUTINGPATH_DESTINATIONNAME)) {
        List frp = (List)getHdr2().getField(JsHdr2Access.FORWARDROUTINGPATH_DESTINATIONNAME);
        if (frp != null) size += frp.size();
      }
  
      // Only get the RRP list out of the message if it is NOT the singleton empty list
      // as we don't want to spawn a real one unnecessarily
      if (getHdr2().isNotEMPTYlist(JsHdr2Access.REVERSEROUTINGPATH_DESTINATIONNAME)) {
        List rrp = (List)getHdr2().getField(JsHdr2Access.REVERSEROUTINGPATH_DESTINATIONNAME);
        if (rrp != null) size += rrp.size();
      }
  
      // Assume about 50 bytes per routing path entry (2 strings + UUID)
      if (size > 0) {
        total += size * 50;
      }
  
      // Add on the contents of the first slice of a flattened message (i.e. classname,
      // Schema ids, etc)
      total += 77;
      return total;
    }
docs: Provide the contribution of this part to the estimated encoded length
  Subclasses that wish to contribute to a quick guess at the length of a
  flattened/encoded message should override this method, invoke their
  superclass and add on their own contribution.
  
  @return int Description of returned value