docs: public static String getFullDescription(Parameter<?> param) {
      StringBuilder description = new StringBuilder(1000) //
          .append(param.getShortDescription()).append(FormatUtil.NEWLINE);
      param.describeValues(description);
      if(!FormatUtil.endsWith(description, FormatUtil.NEWLINE)) {
        description.append(FormatUtil.NEWLINE);
      }
      if(param.hasDefaultValue()) {
        description.append("Default: ").append(param.getDefaultValueAsString()).append(FormatUtil.NEWLINE);
      }
      List<? extends ParameterConstraint<?>> constraints = param.getConstraints();
      if(constraints != null && !constraints.isEmpty()) {
        description.append((constraints.size() == 1) ? "Constraint: " : "Constraints: ") //
            .append(constraints.get(0).getDescription(param.getOptionID().getName()));
        for(int i = 1; i < constraints.size(); i++) {
          description.append(", ").append(constraints.get(i).getDescription(param.getOptionID().getName()));
        }
        description.append(FormatUtil.NEWLINE);
      }
      return description.toString();
    }