docs: public final <T> void addOption(Class<T> cls, String name, String description, String exclusiveGroup, boolean mandatory)
      {
          if (names.contains(name))
          {
              throw new IllegalArgumentException(name+" is already added as argument");
          }
          Option opt = new Option(cls, name, description, exclusiveGroup, mandatory);
          Option old = map.put(name, opt);
          if (old != null)
          {
              throw new IllegalArgumentException(name+" was already added");
          }
          if (exclusiveGroup != null)
          {
              groups.add(exclusiveGroup, opt);
          }
      }