I think the real fix here is to have runtime.get_block take an optional parent as context for the block. That would enable real-time inheritance computation as well as any other contextual info. In this case, the contextual info which is missing is which of the *n* possible named-structure's (aka, courses) branch's pointing to this one structure is the one getting the child. The structure does not have enough info to state whether or not the fetched item is being fetched as part of a named-structure's branch's head or just as part of a directly addressed structure. However, since *most* structures will have zero or one referring named structure x branch, and since most get_children() calls will occur in a thread/runtime in which only one of the possibly many named structures x branch addresses, or at worst, the most recently used name x branch is the one whose parent is requesting this item, the probability of a wrong name x branch attribution is very low.

The risk of a wrong attribution is that any update operations to the child will infer that the intent is to update the name x branch, but that's also the risk of no attribution (the head didn't progress w/ the update)