class ViewModel::TraversalContext

def initialize_as_child(shared_context:, parent_context:, parent_viewmodel:, parent_association:)

override to maintain other node-specific state.
Shared context is the same, ancestry is established, and subclasses can
Overloaded constructor for initialization of descendent node contexts.
def initialize_as_child(shared_context:, parent_context:, parent_viewmodel:, parent_association:)
  @shared_context     = shared_context
  @parent_context     = parent_context
  @parent_viewmodel   = parent_viewmodel
  @parent_association = parent_association
  @root               = false
end