Я хочу использовать схему для проверки объекта запроса. Одно из значений на карте определяет, какие другие поля действительны.
Например, все они будут действительны:
{ :name "jane" :type :dog :barking true }
{ :name "alan" :type :bird :cheeping true }
{ :name "bert" :type :fish :swimming true }
Некоторые поля являются общими. Но другие зависят от значения :type
.
Например, это неверно:
{ :name "phil" :type :bird :barking false }
Как можно выразить такую схему?
Я рад использовать либо схему clj-schema, либо призматическую схему.