Olá, interessante o projeto.
Peço que pesquise no Github o que existe de similares, pode ser mais interessante contribuir para um projeto já existente e maduro do que iniciar um novo projeto.
É uma idéia bem comum, com certeza haverá outros projetos similares.
Bom, mas contribuindo.
Sugiro que o campo não seja apenas uma string e sim um objeto mais complexo, onde vc pode configurar seu campo para ser mais flexivel.
Por exemplo:
field = Field(label="Nome", type="text", args=Args(max_size=35), onAction=functionToCallOnPerformed)
Outra coisa muito interessante, que acredito ser algo como "tendência", é por toda essa configuração em um XML e desenvolver um interpretador de XML.
Um exemplo muito bem feito disso é o JavaFX para Java, onde pode ser criado uma tela usando o Scene Builder, salvar a mesma em um arquivo e carrega-lo no seu código.
Outro exemplo é o Glade para GTK, que segue a mesma idéia.
Pense em sistemas maiores, desenvolvidos por várias pessoas. Leve em consideração boas praticas de desenvolvimento e divisão de responsabilidades (camadas).
Isso tudo ajuda vc a desenvolver um framework sustentável.
Bom, eu sei que vc ainda tá começando (pelo que falou no inicio), mas nada melhor do que começar tendo uma visão mais ampla.
A minha idéia é não fazer vc desistir do seu projeto, mas tentar dar um futuro mais próspero.
Bons estudos.
Joao Luiz