`canExecute` is used by the GUI to determine if a UI element wired to the command is enabled or not.  I wasn't sure about having a separate object or using a type literal was better, adding a property onto the function didn't occur to me.  I erred on the side of clarity but I'm open to other ideas, this is basically a port of similar concepts in MVVM in .NET, there might be better ways to do it in JavaScript that aren't possible in the .NET world.