Parser returns a list of possible matches, rather than just the first.
Parser returns a list of those possible matches that share the highest score. Matches are automatically scored at 0 if no score was assigned during matching. Unfortunately this does not help compound statements, where the score assigned to the SUBJECT will overwrite the score assigned to the OBJECT.
Added closed/open adjectives to doors. Demonstration of one way on-the-fly adjectives can be implemented.
Errors are logged to a file, with stack trace. In theory the command parsing loop is uncrashable. However, the network handling threads are more fragile.
@match debugging command reports time taken. Better identification of matched objects in match argument list.