Do you have any input, Jay? How about we start on this and see where it leads us? I'm thinking we should approach this as a recode. Let's start simple and slow, laying a good groundwork to build off of.
How to handle logging has always been an issue with Ulysses, with it ending up that usually we don't log anything at all. I'm thinking that we could use a simplified version of
log4j for this issue.
Maybe we should have I/O checking in the ULib functions? This is also something I've always debated, but we could base it off the log4j level... to do this simply (at least imo), it would be similar to my idea for handling the ULX commands. IE:
function test( int, float, bool, player )
ULib.checkArgs( IntArg{ int }, FloatArg{ float, min=0.0, max=1.0 }, BoolArg{ bool }, PlayerArg{ player } )
...
end
I used the func{} convention in the ULX idea above as well, but in case you guys don't know, it's just syntactical sugar for func( {} ). I think this works a lot better than a huge parameter list and it allows you to expand the available options easily. IE, on PlayerArg, we might add "mustBeInGroup='admin'" or some such, and this wouldn't affect any other places we're using PlayerArg. Plus it's self-documenting.

Another idea I've had kicking around my head for a while (and to show you just how low-level I'm thinking about this on) is to drop
CamelCase and use underscores instead. Which do you guys think is more readable? I'm waaay open to suggestions on this one. Should we have any other particular naming conventions while we're at it? I strongly hold onto the belief that any classes, or more accurately for Lua, pseudo-classes, should start with a capital.
Yet another thing I'd like to see happen in a recode is unit testing. I hope you all know what this is, but in case you don't...
wiki to the rescue. Unfortunately Lua isn't exactly conducive to this. I can't decide exactly how this should be done... should we keep the unit tests in the source file they're testing? Should we just have a <filename>unittest.lua for each source file? Either way, I'd want to strip out the unit test code for releases. Unit testing should also be as easy as executing a console command and seeing the results in a file (or console but it's always harder to read the console).
That's all for now.

If spbogie is still alive and reads this, I'd like your input on all this too.