First I thought object would be super simple compared to array...then I actually read the spec a bit more and realised there's a whole bunch of stuff. Optional fields turns this into 2^N combinations, and then to generate all states for all of those 2^N etc etc.
Made good progress on the project today. Array generator is now working, 4th attempt's the charm apparently. Lots of refactoring too. Overall it's getting to a neat place.
Next thing is more tests for arrays and after that comes object generator.