code: public static String getDisplayString(final String longArgName, final TaggedArgument taggedArg) {
          Utils.nonNull(longArgName);
          Utils.nonNull(taggedArg);
  
          StringBuilder sb = new StringBuilder();
          sb.append(longArgName);
          if (taggedArg.getTag() != null) {
              sb.append(ARGUMENT_TAG_NAME_SEPARATOR);
              sb.append(taggedArg.getTag());
  
              if (taggedArg.getTagAttributes() != null) {
                  taggedArg.getTagAttributes().entrySet().stream()
                          .forEach(
                                  entry -> {
                                      sb.append(ARGUMENT_KEY_VALUE_PAIR_DELIMITER);
                                      sb.append(entry.getKey().toString());
                                      sb.append(ARGUMENT_KEY_VALUE_SEPARATOR);
                                      sb.append(entry.getValue().toString());
                                  });
              }
          }
  
          return sb.toString();
      }
docs: Given a TaggedArgument implementation and a long argument name, return a string representation of argument,
  including the tag and attributes, for display purposes.
  
  @param taggedArg implementation of TaggedArgument interface
  @return a display string representing the tag name and attributes. May be empty if no tag name/attributes are present.