Hey Adam,
Sorry to take so long in response here; I'm out of town.
CXC itself can definitely be used with ExtJS. I use ExtJS almost
exclusively now myself.
The Form component of CXC is definitely not exclusively for HTML and
is intended primarily as a validation layer between the client and the
Model. It can be used for HTML generation (as CatalystX::CRUD::YUI
does) but does not have to be. My long-standing intention has been to
create a CatalystX::CRUD::ExtJS that does exactly what you are doing,
but using a (as-yet-unwritten) Rose::HTMLx::Form::ExtJS class to
generate the JS for the forms, rather than the HTML for the forms.
That way the client-side validation could be automatically created to
match the server-side validation, plus all the other UI niceties.
For ExtJS you can also turn on the CatalystX::CRUD::REST compatability
quite nicely.
So, yes, what you want is definitely possible and is in fact what
CatalystX::CRUD was intended for: a View-agnostic glue between
Controller, Model, Form and ORM.
FWIW, I have a ExtJS CRUD .js lib I've developed for $work that will
be open-sourced at the end of this month. It's not designed for
Catalyst or CXC but is instead server agnostic. Let me know if you're
interested and I can point you at it once it is available.