toJson

The questions object exactly as it is sent, e.g. for logging or cache keys. Key a cache on its text, toJson().toString(): the object compares as a map, which ignores order, while a Choice's option order is part of the question. It holds the references of attached images, not their bytes, so a key for a set with images must cover each image's bytes too (JevImage.copyBytes). A generated reference is new for every instance, so it makes the key unique even for identical bytes.