docs: public Object addToListOption(String key, Object value) {
          if (key != null && !key.equals("")) {
              if (this.containsKey(key) && this.get(key) != null) {
                  if (!(this.get(key) instanceof List)) { //If was not a list, getAsList returns an Unmodifiable List.
                      // Create new modifiable List with the content, and replace.
                      this.put(key, new ArrayList<>(this.getAsList(key)));
                  }
                  try {
                      this.getList(key).add(value);
                  } catch (UnsupportedOperationException e) {
                      List<Object> list = new ArrayList<>(this.getList(key));
                      list.add(value);
                      this.put(key, list);
                  }
              } else {
                  List<Object> list = new ArrayList<>();  //New List instead of "Arrays.asList" or "Collections.singletonList" to avoid unmodifiable list.
                  list.add(value);
                  this.put(key, list);
              }
              return this.getList(key);
          }
          return null;
      }