docs: int guessFluffedSize() {
  
      // Start with the base fluffed size of the message headers.
      int total = FLUFFED_HEADER_BASE_SIZE;
  
      // For each routing path, get the estimates size for the destination name list.
      // The rp also contains a list of String busnames, a list of SIBUuid8s & a byte
      // array, so we guess at triple the estimate of the names size.
      int listSize = getHdr2().estimateFieldValueSize(JsHdr2Access.FORWARDROUTINGPATH_DESTINATIONNAME);
      total += listSize*3;
      listSize = getHdr2().estimateFieldValueSize(JsHdr2Access.REVERSEROUTINGPATH_DESTINATIONNAME);
      total += listSize*3;
  
      // Add more if the various 'guaranteed' variants are set
      if (getHdr2().getChoiceField(JsHdr2Access.GUARANTEED) == JsHdr2Access.IS_GUARANTEED_SET) {
        total += 350;
      }
      if (getHdr2().getChoiceField(JsHdr2Access.GUARANTEEDXBUS) == JsHdr2Access.IS_GUARANTEEDXBUS_SET) {
        total += 100;
      }
      if (getHdr2().getChoiceField(JsHdr2Access.GUARANTEEDVALUE) == JsHdr2Access.IS_GUARANTEEDVALUE_SET) {
        total += 200;
      }
      if (getHdr2().getChoiceField(JsHdr2Access.GUARANTEEDREMOTEBROWSE) == JsHdr2Access.IS_GUARANTEEDREMOTEBROWSE_SET) {
        total += 100;
      }
      if (getHdr2().getChoiceField(JsHdr2Access.GUARANTEEDREMOTEGET) == JsHdr2Access.IS_GUARANTEEDREMOTEGET_SET) {
        total += 180;
      }
  
      return total;
    }