docs: String deriveGroupIdFromPackages(ProjectModel projectModel)
      {
          Map<Object, Long> pkgsMap = new HashMap<>();
          Set<String> pkgs = new HashSet<>(1000);
          GraphTraversal<Vertex, Vertex> pipeline = new GraphTraversalSource(graphContext.getGraph()).V(projectModel);
  
  
          pkgsMap = pipeline.out(ProjectModel.PROJECT_MODEL_TO_FILE)
                  .has(WindupVertexFrame.TYPE_PROP, new P(new BiPredicate<String, String>() {
                              @Override
                              public boolean test(String o, String o2) {
                                  return o.contains(o2);
                              }
                          },
                          GraphTypeManager.getTypeValue(JavaClassFileModel.class)))
                  .hasKey(JavaClassFileModel.PROPERTY_PACKAGE_NAME)
                  .groupCount()
                  .by(v -> upToThirdDot(graphContext, (Vertex)v)).toList().get(0);
  
          Map.Entry<Object, Long> biggest = null;
          for (Map.Entry<Object, Long> entry : pkgsMap.entrySet())
          {
              if (biggest == null || biggest.getValue() < entry.getValue())
                  biggest = entry;
          }
          // More than a half is of this package.
          if (biggest != null && biggest.getValue() > pkgsMap.size() / 2)
              return biggest.getKey().toString();
  
          return null;
      }