hehe, that's exactly what I was thinking. Maybe the console has a normal chat mode where everything you type is just chat unless it starts with some character, and then it gets interpreted as Lua or some such. But then there's a Lua mode where everything is Lua unless you start it with "/say" or "/team" or some such? Either way, we could have the console display the output of Lua commands and it could be a nice debugging feature -- maybe even allow changing Game::Config values.
Finally, I'm thinking about also making a few other objects that are currently strictly singletons owned by the Game::ProgramBase (a new base class to the Game::Program class) object -- this will cause them to continue to behave much like singletons, but will allow us to have more than one for unit testing and such. These are Config, Lang, Renderer, maybe loggers, (and NetworkManager is going away).
For the console on the dedicated server, I think I'm going to setup a separate derived class to ProgramBase that omits the sound, window and opengl overhead and just uses standard in and standard out for the console (at least that's what I'm thinking). But still, I'm not going to implement that very soon from now, I'm just trying to get things organized into relatively sane concepts. In the end, I think it'll take a lot more to be in place before a dedicated server can be implemented because we'll need the ability to vote in order to kick people out, change the map, etc. Currently, whomever hosts the game has the control over all of those things.