When you are creating long-lived abstractions, you should consider using of the many good options of data types provided by Clojure and not just plain maps.
Despite the annoying Common Lisp evangelism this is a great book for the non-novice Lisper.
Slides from the presentation
I shouldn't try to sell the tools I find useful in my tiny little corner of the development world to everyone
So far, my experience with TDD in functional programming is that it is just as beneficial in this paradigm as it is in more traditional ways to think about software.