looking at the problem as you detailed it in your first post it seems like you're searching for a way to have variant object, where fields are shared between specific cases. There has been [discussion](https://github.com/nim-lang/RFCs/issues/19) to implement this, though they've come to a standstill.
What other have suggested is making the fields completely dynamic, which is not ideal, since it undermines type safety and is slower than a simple field. Though in this case it's probably the best solution.
