a modular multi-protocol bot framework for clojure