There’s some discussion about creating an extension for form inputs in this topic. Perhaps these ideas could be combined?