At present the rights structure is created as a table. This means using ipairs() to access it.
This works fine, but it occured to me that some work could be avoided if one knew that the hash contained '*'. This would be trivial to do if rights were a plain hash rather than a table. Does the rights var need to be a table? I.e. is the order significant?
