This commit also: * Allows to return non-rootable dictionaries from Codegen. * Merges the two context types in an enum type.