We do something similar using DCRs.Essentially the "component" builds forms based on the DCRs. Each DCR defines fieldsets, inputs, validation etc.The component then can reference a single, or multiple, DCRs and creates one large form from it.