Actually the tags are <>, <<CLASS_NOT_PREPARED>> or <<MAX_DEPTH_REACHED>, <<Already_Studied>>, meaning a lot of these can appear in the parsed file.
When importing in Moose,
it can be considered as a stringReference in some case, meaning a lot of check has to be done not to make an error.
It also mean comparison in String, that creates a code hard to maintain and understand.
A possibility would be to add to all object that could be replaced by a tag something with an idea like this:
For classReference :
"classReference" : {
"loaded" : true,
"fields": ...
}
or
"classReference" : {
"loaded" : false
}
this would mean an outputted file way larger, but easier to use