type MoveType = enum Jump, Slide Move = object case t: MoveType of Jump: speed: float height: float of Slide: speed: float friction: float when isMainModule: let myJump = Move(t: Jump, speed: 1, height: 5) let mySlide = Move(t: Slide, speed: 2, friction: 0.5) echo myJump, mySlide # `Error: attempt to redefine: 'speed'` # This sucks