docs: @Override
      public final Set<String> getPropertyNameSet() {
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.entry(this, tc, "getPropertyNameSet");
  
          /* Get the names of the real properties in the JMS Property Maps */
          Set<String> names = getNonSmokeAndMirrorsPropertyNameSet();
  
          /* Maelstrom's transportVersion may be in the specific variant field */
          if (isTransportVersionSet())
              names.add(MfpConstants.PRP_TRANSVER);
  
          /* JMSXAppId */
          if (getHdr2().getChoiceField(JsHdr2Access.XAPPID) != JsHdr2Access.IS_XAPPID_EMPTY) {
              names.add(SIProperties.JMSXAppID);
          }
  
          /* JMSXUserID */
          if (getUserid() != null) {
              names.add(SIProperties.JMSXUserID);
          }
  
          /* JMSXDeliveryCount is considered set if the message has been sent */
          if (isSent()) {
              names.add(SIProperties.JMSXDeliveryCount);
          }
  
          /* ARM Correlator */
          if (getARMCorrelator() != null) {
              names.add(SIProperties.JMS_IBM_ArmCorrelator);
              names.add(SIProperties.JMS_TOG_ARM_Correlator);
          }
  
          /* If any Exception field is set, all must be */
          if (getHdr2().getChoiceField(JsHdr2Access.EXCEPTION) != JsHdr2Access.IS_EXCEPTION_EMPTY) {
              names.add(SIProperties.JMS_IBM_ExceptionReason);
              names.add(SIProperties.JMS_IBM_ExceptionTimestamp);
              names.add(SIProperties.JMS_IBM_ExceptionMessage);
              /* ... but JMS_IBM_ExceptionProblemDestination could be set to null */
              if (getExceptionProblemDestination() != null) {
                  names.add(SIProperties.JMS_IBM_ExceptionProblemDestination);
              }
              /* ... but JMS_IBM_ExceptionSubscription could also be set to null */
              if (getExceptionProblemSubscription() != null) {
                  names.add(SIProperties.JMS_IBM_ExceptionProblemSubscription);
              }
          }
  
          /* If the SystemMessageId has been set, JMS_IBM_System_MessageID exists */
          if (getSystemMessageId() != null) {
              names.add(SIProperties.JMS_IBM_System_MessageID);
          }
  
          /* JMS_IBM_Feedback */
          if ((getApi().getChoiceField(JsApiAccess.REPORTFEEDBACK) != JsApiAccess.IS_REPORTFEEDBACK_UNSET) ||
              (getApi().getChoiceField(JsApiAccess.REPORTFEEDBACKINT) != JsApiAccess.IS_REPORTFEEDBACKINT_UNSET)) {
              names.add(SIProperties.JMS_IBM_Feedback);
          }
  
          /* JMS_IBM_Report_Xxxxxx */
          if (getHdr2().getChoiceField(JsHdr2Access.REPORTEXPIRY) != JsHdr2Access.IS_REPORTEXPIRY_UNSET) {
              names.add(SIProperties.JMS_IBM_Report_Expiration);
          }
          if (getHdr2().getChoiceField(JsHdr2Access.REPORTCOD) != JsHdr2Access.IS_REPORTCOD_UNSET) {
              names.add(SIProperties.JMS_IBM_Report_COD);
          }
          if (getHdr2().getChoiceField(JsHdr2Access.REPORTCOA) != JsHdr2Access.IS_REPORTCOA_UNSET) {
              names.add(SIProperties.JMS_IBM_Report_COA);
          }
          if (getApi().getChoiceField(JsApiAccess.REPORTEXCEPTION) != JsApiAccess.IS_REPORTEXCEPTION_UNSET) {
              names.add(SIProperties.JMS_IBM_Report_Exception);
          }
          if (getApi().getChoiceField(JsApiAccess.REPORTPAN) != JsApiAccess.IS_REPORTPAN_UNSET) {
              names.add(SIProperties.JMS_IBM_Report_PAN);
          }
          if (getApi().getChoiceField(JsApiAccess.REPORTNAN) != JsApiAccess.IS_REPORTNAN_UNSET) {
              names.add(SIProperties.JMS_IBM_Report_NAN);
          }
          if (getApi().getChoiceField(JsApiAccess.REPORTPASSMSGID) != JsApiAccess.IS_REPORTPASSMSGID_UNSET) {
              names.add(SIProperties.JMS_IBM_Report_Pass_Msg_ID);
          }
          if (getApi().getChoiceField(JsApiAccess.REPORTPASSCORRELID) != JsApiAccess.IS_REPORTPASSCORRELID_UNSET) {
              names.add(SIProperties.JMS_IBM_Report_Pass_Correl_ID);
          }
          if (getApi().getChoiceField(JsApiAccess.REPORTDISCARDMSG) != JsApiAccess.IS_REPORTDISCARDMSG_UNSET) {
              names.add(SIProperties.JMS_IBM_Report_Discard_Msg);
          }
  
          if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
              SibTr.exit(this, tc, "getPropertyNameSet", names);
          return names;
  
      }