+ // In Java, protected means "any subclass can access fields on any other subclass'"
+ // In TypeScript, protected means "any subclass can access parent fields on instances of itself"
+ // To work around this, we add accessors for other instances' protected fields here.