code: protected String addDependency(TaskGroup.HasTaskGroup dependency) {
          Objects.requireNonNull(dependency);
          this.taskGroup().addDependencyTaskGroup(dependency.taskGroup());
          return dependency.taskGroup().key();
      }
docs: Add a dependency task group for this model.
  
  @param dependency the dependency.
  @return key to be used as parameter to taskResult(string) method to retrieve result of root
  task in the given dependency task group