It's a bit weird that they went with goto. It is a much smaller addition than continue + labeled break + labeled continue + switch, but it's still really unusual to see in a scripting language.
So now that module(...) is deprecated does anyone know the expected standard pattern? The changes say to just build it with code (setting _ENV?) but do the devs have a "right way" to do it?
An easy way is to just define your functions in a table, and at the end of the file to be required, return the table. This was the pattern used in Lua before 5.1. The source for Luacov provides a clear example: