I agree. I've added definitions for each message we're using and added them to all the freedom.on() calls. I don't know of a way to have TypeScript tell us when, for example, we pass the wrong type to a freedom.emit() call but I agree it's good to have types (for documentation purposes, if nothing else).