# we require the discriminator to be non-optional ## # @Enum: ## { 'enum': 'Enum', 'data': [ 'one', 'two' ] } ## # @Base: ## { 'struct': 'Base', 'data': { '*switch': 'Enum' } } ## # @Branch: ## { 'struct': 'Branch', 'data': { 'name': 'str' } } ## # @MyUnion: ## { 'union': 'MyUnion', 'base': 'Base', 'discriminator': '*switch', 'data': { 'one': 'Branch', 'two': 'Branch' } }