I'm still not sure about the naming indeed. I shall look at forms libs and see what comes out.

The idea is to have 3 kinds : 
* list of basic types (int, string, ...) (``subtype`` in the current code)
* list of objects with some fields (``subfields`` in the current code)
* list of sub-model

It could be : 
* ``itemtype`` : expect an existing field type (``int``, ``string``, ...) or ``model`` or ``object``
* if ``object``, then expect ``itemfields``
* if ``model``, then expect existing model name ``model``