clojure.spec is a Clojure language feature introduced in Clojure 1.9 for defining predicative and structural data and function definitions.
Writing a spec should enable automatic:
- Validation
- Error reporting
- Destructuring
- Instrumentation
- Test-data generation
- Generative test generation