Package names on ::requires identifies packages by file name, but it would be handy if a given package file could self-identify with an internally selected name. This internal name should then be exposed so that it can be used to qualify things like class names to avoid name conflict issues.
One question that needs deciding is how to handle package name conflicts. These could just be ignored, but I think it might be good to flag the conflict as an error if a program requires multiple packages that use the same name. I'm not in favor of making this a global error.