This is an awesome project. It re-envisions Forms in a similar way to how Views re-envisioned SQL queries. Kudos for all the hard work to get this far.
The one serious limitation I have found so far in this project is that it does not use the Field API. Form fields do not have field definitions, and their data is not stored in the Field system. Thats OK for some use cases, but fatal for others. Here are some things we give up by skipping Field API:
- Views integration gets difficult and custom -
- Rules integration is custom -
- Rest API/GraphQL/JSON API support gets difficult and custom
- No 'Add another value' feature -
- Translation of submissions (this is not a big need)
- Token support is custom (already done)
- Form modes and display modes for submissions are gone. At least form modes would be useful. Any modules that do layout of fields/forms need custom integration (e.g. Panels, Display suite, ...).
- More stuff I have not thought of yet
I would really love to do entity building via YAML Form. Some stuff we would need:
- Form elements need to map to a Field API storage type
- The field storage needs to change based on changes in the UI. This is starting to sound like an alternate Field UI. I have no problem with that!
Have a look at the form.io project, which syncs an externally defined form definition (in JSON), with a Drupal entity. This is somewhat analogous to what we need here.
I'm sure it would be hard to move to Field API now, but also so powerful. Lets use this issue to discuss.