One controlled form
You own all state. The element renders the fields, emits changes and validity, and nothing else.
<baht-form></baht-form><script> document.querySelector('baht-form').form = { form_id: 'f1', form_name: 'Person', fields: [ { order: 1, type: 'text', key: 'first_name', label: 'First name', width: '1/2', required: true } ] };</script>