If you're interested in "Lua with types", check out Teal aka "Typed Lua" aka "Tl": https://github.com/teal-language/tl. It compiles to Lua and is available as a single-file Lua module.
Because how memory is allocated for a data structure is a separate decision from what data structure you want to use. When a variable is declared as a certain type, choosing where the memory is allocated makes sense, but to build it into the type itself is restricting the uses of it. It also raises questions about what happens when you want to copy something on the stack to an offset in an array of the same thing on the heap. Allocation should be completely separate from data structure declarations in my opinion.
1. Does it continue the billion dollar mistake (null)?
2. Does it allow type parameters so I can write a generic Map that works with any kind of keys and values?