Before going down this path, it's important to understand the substantial performance implications.
Reference: https://clojure.org/guides/spec
Spec assertions (not pre/post checks) can actually be compiled completely out of production code so those can really be nothing (but not if you're adding them in wrapper layers).