docs: private Command<? super T> createOption(String fieldName, Class<?> type) {
      if (type == Integer.class || type == int.class) {
        return new IntegerFieldOption<T>(fieldName);
      } else if (type == Long.class || type == long.class) {
        return new LongFieldOption<T>(fieldName);
      } else if (type == Boolean.class || type == boolean.class) {
        return new BooleanFieldOption<T>(fieldName);
      } else if (type == String.class) {
        return new StringFieldOption<T>(fieldName);
      } else if (type == Double.class || type == double.class) {
        return new DoubleFieldOption<T>(fieldName);
      } else if (type == Float.class || type == float.class) {
        return new FloatFieldOption<T>(fieldName);
      } else if (type == File.class) {
        return new FileFieldOption<T>(fieldName);
      }
      throw new IllegalArgumentException("Cannot create option for parameter of type `" + type.getName() + "'");
    }