I like this, but can I make one recommendation? Ditch the classes and just operate on primitive data! You're very close to thinking functionally with the pipelining of commands operating on a message, but you've got a bit of overhead with the explicit data types.
Of course, this is just an opinion from someone who has been doing a lot of functional and declarative stuff these days with Javascript using underscore, d3, and angular, so your mileage may vary. :)