This PR implements the restriction discussed in #299. While (with #337) case-insensitive uniqueness does allow a registry of components or WIT packages to lowercase everything without collision, enforcing case-insensitive uniqueness (on publication) may end up requiring non-trivial extra work (e.g., maintaining a whole side index) if the registry is implemented on top of an existing infrastructure (say, an OCI registry). This also avoids some corner cases that will likely turn into incompatibilities in core infrastructure.
This PR implements the restriction discussed in #299. While (with #337) case-insensitive uniqueness does allow a registry of components or WIT packages to lowercase everything without collision, enforcing case-insensitive uniqueness (on publication) may end up requiring non-trivial extra work (e.g., maintaining a whole side index) if the registry is implemented on top of an existing infrastructure (say, an OCI registry). This also avoids some corner cases that will likely turn into incompatibilities in core infrastructure.