Что-то типа того:
[
{name: "fieldName", 'type': "email", 'length': {min: 10, max: 50}, label: "Field Label"}
]
И все в таком духе. Реализовать сборщик формы в зависимости от типа тоже реально.
Еще есть готовые реализации. Я увы работал с этой проблемой только в контексте работы с Backbone. Тут мне помогла
эта реализация