docs: public void printUsage(OutputStream os) {
          int count = 0;
          PrintStream out = UTF8.printStream(os);
          for (String option : optionList) {
  
              if (optionGroups.containsKey(count)) {
                  out.println("  " + optionGroups.get(count));
              }
              count++;
  
              if (unlistedOptions.contains(option)) {
                  continue;
              }
              out.print("    ");
  
              StringBuilder buf = new StringBuilder();
              buf.append(option);
              if (optionExtraPartSynopsisMap.get(option) != null) {
                  String optionExtraPartSynopsis = optionExtraPartSynopsisMap.get(option);
                  buf.append("[:");
                  buf.append(optionExtraPartSynopsis);
                  buf.append("]");
              }
              if (requiresArgumentSet.contains(option)) {
                  buf.append(" <");
                  buf.append(argumentDescriptionMap.get(option));
                  buf.append(">");
              }
              printField(out, buf.toString(), maxWidth + 1);
  
              out.println(optionDescriptionMap.get(option));
          }
          out.flush();
      }