public String getBackrefName(int index) throws MDException {
		if (index >= backrefNames.size() || index < 0) {
			throw new MDException("Backref Names stack violation");
		}
		return backrefNames.get(index);
	}
This class holds a single context that is pushed or popped to/from a context stack in MDMang.
A context contains "backreferences" (as we currently understand backreferences and a context
of them--simplified from more complicated contexts, we are trying to whittle this away toward
non-existence).  There are backrefNames, backrefParameters, and backrefTemplateParameters.  A
context is created from a previous context using particular rules that are dictated by an
enumerated MDMcontext annotation.  These, too, might go away, but we have boiled them down to
what currently exists.  In the future, the MDContext class might go away and backreferences
could be part of the class for which the context has been created--but we started with this
current model while we were trying to understand when there was a context change and what
required the change; in fact, there are still questions that arise in my mind, yet I have not
yet created tests that might tease the answer out.  I do know, however, that one or more tests
in the MDMangTestStandard class had helped define what we have--I no longer have record of
which tests were solely responsible for revealing some of the special context/backreference
cases (e.g., could have been that a backreference to an internal template argument got used
in a certain way).
Ghidra/Features/MicrosoftDmang/src/main/java/mdemangler/MDContext.java