docs: private static void manipulateProperties(Map<String,Object> destProps, boolean isTopic, EncodingLevel encodingLevel) {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.entry(tc, "manipulateProperties", new Object[]{destProps, isTopic, encodingLevel});
  
      // Remove those properties that we do not want to be encoded (ever) when the
      // destination is stored in the message. These are in general things that are
      // sensible only for the local instance of the destination object, or those that
      // are stored elsewhere in the message.
      destProps.remove(JmsInternalConstants.FORWARD_ROUTING_PATH);
      destProps.remove(JmsInternalConstants.REVERSE_ROUTING_PATH);
  
      if (encodingLevel != EncodingLevel.FULL)
      {
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(tc, "Removing reply header properties from list");
        // Remove any properties that are only required by the full
        // encoding ('cos we're going to use this encoding for reply destinations.
        destProps.remove(JmsInternalConstants.PRIORITY         );
        destProps.remove(JmsInternalConstants.TIME_TO_LIVE     );
        destProps.remove(JmsInternalConstants.SCOPE_TO_LOCAL_QP);
        destProps.remove(JmsInternalConstants.GATHER_MESSAGES  );
      }
  
      if (encodingLevel == EncodingLevel.MINIMAL)
      {
        if (TraceComponent.isAnyTracingEnabled() && tc.isDebugEnabled()) SibTr.debug(tc, "Removing dest name properties from list");
        // Remove any properties that are not required by the minimal
        // encoding, which is used for reply destinations when not processing MQ source messages
        destProps.remove(JmsInternalConstants.DEST_DISCRIM     );
        destProps.remove(JmsInternalConstants.DEST_NAME        );
        destProps.remove(JmsInternalConstants.BUS_NAME         );
      }
  
      // Alter the map slightly to specialise for Queue and Topic.
      if (isTopic) {
        // Remove the DestName and Discriminator properties and replace
        // them with TopicSpace and TopicName.
        Object destNameObj = destProps.remove(JmsInternalConstants.DEST_NAME);
        if (destNameObj != null) destProps.put("topicSpace", destNameObj);
        Object destDiscrimObj = destProps.remove(JmsInternalConstants.DEST_DISCRIM);
        if (destDiscrimObj != null) destProps.put("topicName", destDiscrimObj);
      }
      else {
        // Remove destName and add queueName
        Object destNameObj = destProps.remove(JmsInternalConstants.DEST_NAME);
        if (destNameObj != null) destProps.put("queueName", destNameObj);
        // We could still have a discriminator, in which case rename it to our supported name
        Object destDiscrimObj = destProps.remove(JmsInternalConstants.DEST_DISCRIM);
        if (destDiscrimObj != null) destProps.put("destDiscrim", destDiscrimObj);
      }
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled()) SibTr.exit(tc, "manipulateProperies", destProps);
    }