Add validate method
Add async validation with tests
Add perf benchmarks, fix  and
Rename produce to compose
Small fixes
Add required method with tests
Add dropEmpty property
Simplify and make consistent pluck
Add cases method, sync so far