Love this! We started on this path over the last two years of something like this (a component system but also combines a standard behavior for "data sources" so that a table or pagination can just automatically read and modify this datasource).
We named it LiveElements and have always wanted to open source it, but it's just not at all clean enough to be put in a state where I'd like others to use it.
Our datasource concept is similar to what fop does (and over time, we'd like to look at migrating over to just use fop since it has been around long enough, and we don't want to have our bespoke datasource stuff).
But we haven't had the bandwidth to clean up and document it yet.
Same with a richer forms engine we've been building where you can just have a compose a type "markdown" which includes changeset validations for markdown formatting, etc.
Or a texture of type "SMS" which gives you a character count and looks at the unicode to see how many SMS segments would be used when authoring an SMS message (which is specific to our app but no reason why others can't benefit)