Add test
Refactor tmpl
refactor field
Refactor write field
Improve error msg
Add list<string> field support
Fix gen code test
Fix list<string> widget support
fmt test output