Old:
{
"type": "Integer",
"namedtype": "name",
"length": 32,
"forbidnull": true,
"interface": "IIterator",
"key": "Integer",
"value": {},
"fields": []
}
My suggestion:
{
"base": "Integer",
"name": "name",
"length": 32,
"nullable": false,
"interface": "IIterator",
"keytype": "Integer",
"elementtype": {},
"fields": []
}
Furthermore, I believe that the extendedreturntype and extendedtype fields should be simple strings used to reference the type descriptors in namedtypes.