However, I have found one good alternative, where the stream event has
no unique field. This approach involves a dummy event
"AnnounceContext", which are sent by newly created contexts. These
messages have no musical meaning, and should not be part of any output
file, but you must listen to them if you want to find out about the
context structure.
I'd suggest that an AnnounceContext event contains a direct reference
to the newly created context, as well as a direct reference to the
CreateContext event. This makes it very clear which CreateContext
events that result in which contexts.
I like my new design better than my original one, because data is
separated in a more logical way, and because I think it eliminates a
bad hack in create_context.