This is a pretty big restructure to achieve a few different things:
Accept a Dry::Validation::Schema::Result as input, instead of having the form run the validation itself (this means that the form can remain a view concern only and the app can deal with the schema directly in other contexts)
Center around "form elements" as the key point for form extensibility. Define the 6 main elements in a consistent way and allow them to be subclassed later (and included in a form definition via the DSL)
Make the form definition DSL more natural by removing block arguments and having the form element name be the keyword for adding elements.
Provide an optional standard library of elements that match our formalist-standard-react library.
This is a pretty big restructure to achieve a few different things:
Dry::Validation::Schema::Result
as input, instead of having the form run the validation itself (this means that the form can remain a view concern only and the app can deal with the schema directly in other contexts)