docs: public String generateDescriptionHtml(ProvisioningFeatureDefinition feature, boolean generateKnowledgeCentreLinks, String licenseType) {
          final String shortName = feature.getHeader("IBM-ShortName");
          final String installName = shortName != null ? shortName : feature.getSymbolicName();
          final String shortDescription = feature.getHeader("Subsystem-Description", Locale.ENGLISH);
          final String appliesTo = feature.getHeader("IBM-AppliesTo");
          StringBuilder result = new StringBuilder();
          if (shortDescription != null && !shortDescription.isEmpty()) {
              result.append("<div id=\"ibm-wasdev-feature-desc-content\">").append(System.lineSeparator());
              result.append(shortDescription).append(System.lineSeparator());
              result.append("</div>").append(System.lineSeparator());
          }
          if (licenseType != null && licenseType.equals("ILAN")) {
              result.append("<div id=\"ibm-wasdev-feature-usage-message\">").append(System.lineSeparator());
              result.append("<p><b>Usage restriction:</b> Use of this feature is provided as-is and is not covered by any IBM support contract.").append(System.lineSeparator());
              result.append("</div>").append(System.lineSeparator());
          }
          result.append("<h2 id=\"ibm-wasdev-feature-instructions-title\">Command Line Install</h2>").append(System.lineSeparator());
          result.append("<div id=\"ibm-wasdev-feature-instructions-content\">").append(System.lineSeparator());
          result.append("To install the feature from the command line, type:<br/>");
          result.append("<code>bin/installUtility install ");
          result.append(installName);
          result.append("</code> <br/>").append(System.lineSeparator());
          if (!isBeta(appliesTo)) {
              result.append("If you are installing into 8.5.5.5 or earlier and the feature supports that version, use the featureManager command, for example:<br/>");
              result.append("<code>bin/featureManager install ");
              result.append(installName);
              result.append(" --when-file-exists=ignore</code>").append(System.lineSeparator());
          }
          result.append("</div>").append(System.lineSeparator());
          if (shortName != null && !shortName.isEmpty() && feature.getVisibility() == Visibility.PUBLIC) {
              result.append(" <h2 id=\"ibm-wasdev-feature-notes-title\">Config Instructions</h2> ").append(System.lineSeparator());
              result.append("<div id=\"ibm-wasdev-feature-notes-content\">").append(System.lineSeparator());
              result.append("To use the feature at runtime add the following to your server.xml file<br/>").append(System.lineSeparator());
              result.append("<code>&lt;featureManager&gt;</br>").append(System.lineSeparator());
              result.append("&nbsp;&nbsp;&lt;feature&gt;");
              // user features don't have a knowledge center link but do need the feature name prefixed with "usr:"
              if (!generateKnowledgeCentreLinks) {
                  result.append("usr:");
              }
              result.append(shortName);
              result.append("&lt;/feature&gt;</br>").append(System.lineSeparator());
              result.append("&lt;/featureManager&gt;</br></code> </div>").append(System.lineSeparator());
  
              if (generateKnowledgeCentreLinks) {
                  String urlPathSegment = "";
                  if (isBeta(appliesTo)) {
                      urlPathSegment = BETA_KC_URL_PATH_SEGMENT;
                  } else if (isZOS(appliesTo)) {
                      urlPathSegment = ZOS_KC_URL_PATH_SEGMENT;
                  } else {
                      urlPathSegment = FP_KC_URL_PATH_SEGMENT;
                  }
                  // Additional info block
                  result.append(" <h2 id=\"ibm-wasdev-feature-notes-title\">Additional Information</h2> ").append(System.lineSeparator());
                  result.append(" <div id=\"ibm-wasdev-feature-additional-information\">").append(System.lineSeparator());
                  result.append("  <ul>").append(System.lineSeparator());
  
                  result.append("   <li>For the complete feature documentation, see the <a href=\"http://www.ibm.com/support/knowledgecenter/");
                  result.append(urlPathSegment);
                  result.append("/ae/rwlp_feature_");
                  result.append(shortName);
                  result.append(".html");
                  result.append("\">" + shortName + "</a>");
                  result.append(" feature description in IBM Knowledge Center.</li>").append(System.lineSeparator());
  
                  result.append("   <li>For more detailed installation instructions, including using Installation Manager and WebSphere Developer Tools, see ");
                  result.append("<a href=\"http://www.ibm.com/support/knowledgecenter/");
                  result.append(urlPathSegment);
                  result.append("/com.ibm.websphere.wlp.nd.multiplatform.doc/ae/twlp_inst_assets.html\">Installing Liberty Repository assets</a>");
                  result.append(" in IBM Knowledge Center.</li>").append(System.lineSeparator());
  
                  result.append("   <li>For offline installation from a directory-based repository using 8.5.5.8 or higher, see ");
                  result.append("<a href=\"https://www.ibm.com/support/knowledgecenter/");
                  result.append(urlPathSegment);
                  result.append("/com.ibm.websphere.wlp.nd.multiplatform.doc/ae/t_install_assets_installUtility.html\">Installing assets using the installUtility command</a>");
                  result.append(" in IBM Knowledge Center.</li>").append(System.lineSeparator());
                  
                  result.append("   <li>For system requirements, see <a href=\"");
                  result.append(SOFTWARE_COMPATIBITY_URL);
                  result.append("\">WebSphere Application Server detailed system requirements</a>. ");
                  result.append("Select the appropriate release, and click <b>WebSphere Application Server (all editions)</b>. ");
                  result.append("Select the edition, and choose the offering you want in Requirements by component.</li>").append(System.lineSeparator());
  
                  result.append("  </ul>").append(System.lineSeparator());
                  result.append("</div>").append(System.lineSeparator());
              }
          }
          return result.toString();
      }