Probably like the new npm 3 dependency directories. If A and B require a common version of C then the hierarchy is totally flat (A B C at the root). If they require incompatible versions of C then there will be 2 C, one nested inside A and one inside B