We initially used a JSON string in submissions because the old EntityBundle and old Annotations objects where not defined in schema-to-pojo JSON , but we still needed some way to encapsulate the old EntityBundle in the Submissions object.
Now that we have EntityBundle V2, we no longer need to pass along a raw JSON since this version is defined as a schema-to-pojo JSON
We should also avoid mixing the old EntityBundle(V1) JSON and EntityBundleV2 JSON in the same entityBundleJSON object since that creates confusion for the clients when they attempt to de-serialize the String.
> We initially used a JSON string in submissions because the old EntityBundle and old Annotations objects where (sic) not defined in schema-to-pojo JSON
I remember things differently, that the reason was to create a 'loose binding' between the submission content and the bundle schema. If the schema were to change then old submissions would not be 'broken'. (Maybe can say what his recollection is.)
I'm not saying that I still agree with this logic however and I do like 's idea to put the bundle in a strongly typed field in the Submission.