update item type definition
The previous definition could result in unexpected errors. The previous oneof(...) throws an instantiation error when the parsed term is not ground. This may happen for example when a JSON object is parsed to a dict (tag is a variable). The replacement has the same semantical meaning but avoids throwing an instantiation exception when applied on a dict.