docs: public void put(final String key, final Object value) {
          if (TASK_DIRECTORY_KEY.equals(key) && this.values.keySet().contains(TASK_DIRECTORY_KEY)) {
              // ensure that no one overwrites the task directory
              throw new IllegalArgumentException("Invalid key: " + key);
          }
  
          if (value == null) {
              throw new IllegalArgumentException(
                      "A null value was attempted to be put into the values object under key: " + key);
          }
          this.values.put(key, value);
      }