We need to support an index of classes and dependencies which contain them.
This would allow us to do wildcard expansion, and also allow facets to depend on a class, not a specific dependency. I believe Lincoln has the information about wildcard support, for the facet dependency idea my thoughts are an index like this would allow a facet to declare a class, or collection of classes, which it requires to function. For example the faces facet could depend on FacesContext, or PhaseListener or some other class. When a facet checks to see if a project has the dependencies it could match multiple jars instead one specific jar. Again in the faces example it could match Mojarra, MyFaces, JBoss spec jars, Geromino spec jars, etc.
We could keep a local cache and add to it, we could also have an online cache available which users could push to and also merge into their local cache.