At least one optional key present in clojure's Schema
You can specify whatever predicate you want in your schemas:
(def my-schema
(s/both
(s/pred (complement empty) 'not-empty)
{(s/optional-key :foo) Bool
(s/optional-key :baz) Bool
(s/optional-key :bar) Bool}))
If you are asking how to validate the map using just the built-in predicates you could write:
(def my-schema
(s/both
{(s/optional-key :foo) Bool
(s/optional-key :baz) Bool
(s/optional-key :bar) Bool}
(s/either
{:foo Bool s/Any s/Any}
{:baz Bool s/Any s/Any}
{:bar Bool s/Any s/Any})))
which is pretty ugly and a lot more verbose than the pred
example