The start tag would be right after the XML declaration, i.e. <StartTag (the element name ends when a space is encountered), the end-tag would then be </StartTag. From there find the closing bracket >
Remember FHIR is a very immature 'standard'.
If you jump on the bandwagon, you must be prepared to be agile.
You talk about R5, but R6 is well on its way and, since they actually are STU4, 5, 6 and so on, there is no FHIR 1.0
Some standard bodies opt for stability like Nictiz in the Netherlands, where most of the official specifications are still based on STU3.
Opting for implementation of an immature standard ,one must be prepared for (extreme) agility, otherwise we are all ending op with in-operability because of different incompatible implementations.
![Idea Creator](https://community.intersystems.com/sites/default/files/badges/advanced_idea_creator_badge_0.png)
1: Yes 😉
2: See other comment on Quit
3: yes 😉
You should never 'modernize' for the sake of modernizing (refactoring is something else)
ZTrap is not old-fashioned, it's a mechanism other programming languages just don't have.
It is out-of-the-way, is doesn't introduce another stack level and it doesn't need extra indentation, it's just some code that you hope will never be executed, it isn't part of the main logic.
Try-Catch can be very useful for indeed a 'Try' for something you can't be sure how it will behave, such as
{}.%FromJSON(SomeJSON)