Well, switching my program from using standard Objects to Object variants has proved a good move so far, i am able to use Json to save the objects and restore them very easily.
The only downside i came across was when passing an object variant to a procedure, Nim would not allow me to use the value from an object sent in as a parameter in the construction of a similar object. I had to directly name the object type for Nim to let me compile. Error i was getting was: ''' Error: cannot prove that it's safe to initialize 'hypenated_as_one' with the runtime value for the discriminator 'kind' ''' This is not such a big deal though, since its easy for me to type in the name of the object i want to create... however it could allow more typos to occur... which is a bit annoying.