I think of Schema as a runtime contracts library (I believe it does coercion and validation, but they seem related to me).
- small barrier to entry, thus immediately useful
- just add a contract/coercion to a function and you're off
- can manipulate contracts as regular clojure data
- documentation