docs: public String toMarkdown() {
          String fm = "|%-4s|%-40s|%-10s|%-20s|%-10s|%-20s|%40s|\r\n";
          StringBuilder sb = new StringBuilder();
          sb.append(String.format(fm, "id", "key", "required", "Possible Values", "Default", "Description", "starters"));
          sb.append(String.format(fm, dup("-", 4), dup("-", 40), dup("-", 10), dup("-", 20), dup("-", 10), dup("-", 20), dup("-", 40)));
          int index = 0;
          ArrayList<String> keys = new ArrayList<>(docs.keySet());
          Collections.sort(keys);
          for (String key : keys) {
              PropDocBean doc = docs.get(key);
              sb.append(String.format(fm, index, key, doc.need ? "yes" : "no", Strings.join(",", doc.possible), doc.defaultValue, doc.value, Strings.join(",", doc.users)));
              index++;
          }
          return sb.toString().trim();
      }