switch-on result usage
Consider these declarations:

```
vec2u1:
  seq:
    - id: x
      type: u1
    - id: y
      type: u1

vec2u2:
  seq:
    - id: x
      type: u2
    - id: y
      type: u2
```

```
- id: position
  type:
    switch-on: _root.version
    cases:
      'version_id::ver1': vec4u2
      'version_id::ver2': vec4u1
```

Basically I have 2 vector types stored as 1 and 2 bytes, depending on file version.

So it works perfectly in terms of parsing, but the resulting type of "position" here is KaitaiStruct due to the type switching. Given this, how do I exactly use this in code? Do I have to track version myself and add tons of switches to cast manually, or is there a better solution? Talking about C#.

int x = (ex.Version == Example.VersionId.Ver1 ? ((Example.Vec4u2)ex.position).X : ((Example.Vec4u1)ex.position).X);
int y = (ex.Version == Example.VersionId.Ver1 ? ((Example.Vec4u2)ex.position).Y : ((Example.Vec4u1)ex.position).Y);