code: public String addDependency(FunctionalTaskItem dependencyTaskItem) {
          IndexableTaskItem dependency = IndexableTaskItem.create(dependencyTaskItem);
          this.addDependency(dependency);
          return dependency.key();
      }
docs: Mark root of this task task group depends on the given TaskItem.
  This ensure this task group's root get picked for execution only after the completion
  of invocation of provided TaskItem.
  
  @param dependencyTaskItem the task item that this task group depends on
  @return the key of the dependency