docs: public Iterable<TechnologyTagModel> findTechnologyTagsForProject(ProjectModelTraversal traversal)
      {
          Set<TechnologyTagModel> results = new TreeSet<>(new DefaultTechnologyTagComparator());
  
          GraphTraversal<Vertex, Vertex> pipeline = new GraphTraversalSource(getGraphContext().getGraph()).V(traversal.getCanonicalProject().getElement());
          pipeline.out(ProjectModel.PROJECT_MODEL_TO_FILE);
          pipeline.in(TechnologyTagModel.TECH_TAG_TO_FILE_MODEL).has(WindupVertexFrame.TYPE_PROP, Text.textContains(TechnologyTagModel.TYPE));
  
          Iterable<TechnologyTagModel> modelIterable = new FramedVertexIterable<>(getGraphContext().getFramed(), pipeline.toList(),
                      TechnologyTagModel.class);
          results.addAll(Iterators.asSet(modelIterable));
  
          for (ProjectModelTraversal childTraversal : traversal.getChildren())
          {
              results.addAll(Iterators.asSet(findTechnologyTagsForProject(childTraversal)));
          }
  
          return results;
      }