I do that in my engine (source available, but probably not worth deciphering).
In my case, an "entity" is a concept that exists wholly within Lua. There's no C++ backing for "entities". As such, an "entity" is whatever that specific game needs. Sometimes it's just a table with a little data attached to it, sometimes it's a 2d Frame element (note that Frames are entirely Lua constructions as well, I just have a standard UI library), sometimes it's something complicated with AI and rendering and then it's still just a thing created in Lua.
Many people use Lua to script object systems that have C++ backing, such that the entity "lives" in C++ and calls Lua for its scripting. I used to do that, but I found myself getting happier and happier as I moved code out of C++ and into Lua. At this point, I use C++ solely to handle the OS API calls, and all layout/rendering/AI/game logic is in 100% pure Lua.
Feel free to ask questions, I'm quite willing to answer :)