The reading of Siren types is, right now, too coupled with JSON as a data format. For instance, in pseudocode the reading of Entities goes something like this:
while (it = reader.nextName()) {
if (it is "someSirenHeader") {
someSirenHeaderVal = reader.nextString()
}
}
Notice the very JSON related functions nextName() and nextString() in that block. It would be good if we could make the reading at the Entity level more generic.