Add support for textarea config form fields with the JSON constraint
## Description
When a plugin's configuration form uses the AI module's `'#type' => 'ai_json_schema'` element (e.g. the ECA Chat action — [ai_integration_eca#3585014](https://git.drupalcode.org/project/ai_integration_eca/-/work_items/3585014) — and, proposed, the AI Agent structured-output field), the Workflow Modeler renders it as a plain single-line text input instead of a JSON editor.
This is because the modeler does not render Drupal form HTML. `WorkflowModeler::configForm()` runs the built form through `FormToJsonConverter`, which extracts each element's `#type`/`#title`/`#default_value`/etc. into a JSON descriptor; the React app then renders its own widget per `field.type`. `ConfigurationForm` has no case for `ai_json_schema`, so it falls through to the `default:` branch and renders `<input type="text">`. The element's CodeMirror editor (which depends on rendered Drupal HTML + a JS library) never applies here.
Add a dedicated React widget so the modeler renders a proper JSON editor for this type, matching the experience of the Drupal-side element. The value remains a JSON string, consistent with the element's backend contract.
## Acceptance criteria
* A field of type `ai_json_schema` renders as a CodeMirror editor (line numbers, code folding, JSON lint) in the configuration panel, not a plain text input.
* Invalid JSON shows a readable inline message in addition to the gutter marker; valid/empty shows none.
* The value is stored and round-trips as a JSON string (save, reopen — content preserved).
* Renders correctly in both light and dark mode; no double-escaped text in messages.
## Testing instructions *(added by implementor before review)*
1. Enable `ai`, `eca`, `modeler`, `ai_integration_eca`. On a dev release of `ai`, build its editor JS is **not** required for the modeler (the modeler uses its own bundle). Rebuild the modeler UI if testing source changes: `cd web/modules/contrib/modeler/ui && npm install && npm run build:production`, then `drush cr`.
2. Create an ECA model containing the **Chat** action and edit it with the Workflow Modeler (`/admin/config/workflow/eca/{id}/edit_with/workflow_modeler`).
3. Select the action and open its configuration → confirm the **Schema** field renders as a CodeMirror editor with line numbers and fold arrows.
4. Type invalid JSON → confirm the inline "Invalid JSON: …" message and gutter marker; click **Format** on valid JSON → confirm it pretty-prints.
5. Save, reopen → confirm the schema persists.
## Related issues *(optional)*
* /relate ai_integration_eca#3585014 — first consumer that produces this field type.
* /relate ai#3586536 — the off-canvas (bpmn_io) fix for the same element; independent of this modeler change.
issue