| object :empty | |
| object Base | |
| member enum1: TestEnum optional=False | |
| member c_d: str optional=True | |
| object Branch1 | |
| member string: str optional=False | |
| object Branch2 | |
| member value: int optional=False | |
| enum TestEnum ['base', 'c-d'] | |
| object TestUnion | |
| base Base | |
| tag enum1 | |
| case base: Branch1 | |
| case c-d: Branch2 |