         throw new Error "#{badge}#µ2132 missing <field> tag attribute 'key' in table #{rpr layout_name} (#{jr event})"
       ### TAINT this is exactly the kind of dangerous 'sound have happened anywhere, anytime' state mutation
       that advocates of immutable state are warning us about: ###
-      L.current_field_selector  = Q.key
-      content_buffer            = @new_content_buffer S, L, layout_name,  L.current_field_selector
+      @push_field_selector S, L, layout_name, Q.key
+      content_buffer            = @new_content_buffer S, L, layout_name,  Q.key
       return send stamp event
     #.......................................................................................................
     if select event, ')', 'field'
       within_field              = false
       content_buffer            = null
-      # L.current_field_selector  = null
+      @pop_field_selector S, L
       return send stamp event
     #.......................................................................................................
     if within_field

#-----------------------------------------------------------------------------------------------------------
new_local_state = ->
  R =
    layout_name_stack:              []
    selectors_and_content_events:   {}
    layout_events:                  {}
    content_buffer:                 null
    within_field:                   false
    ### TAINT we use this attribute to communicate the current selector from `$handle_fields()` back to
    `$handle_content_events()`; this works b/c we're assuming that all event handling is happening in
    lockstep. It might stop working as soon as the lockstepping is broken by an intervening asynchronous
    or buffering stream transform. ###
    ### TAINT use `field_selector_stack` ###
    current_field_selector:         null
  return R



  return R

#-----------------------------------------------------------------------------------------------------------
@push_field_selector = ( S, L, layout_name, selector ) ->
  L.field_selector_stack.push [ layout_name, selector, ]
  return null

#-----------------------------------------------------------------------------------------------------------
@pop_field_selector = ( S, L ) ->
  if L.field_selector_stack.length < 1
    throw new Error "#{badge} µ49782 field selector stack empty"
  return L.field_selector_stack.pop()

#-----------------------------------------------------------------------------------------------------------
@content_buffers_from_layout_name = ( S, L, layout_name ) ->
  unless ( R = L.selectors_and_content_events[ layout_name ] )?
    throw new Error "#{badge} µ65671 unknown layout #{rpr layout_name}"
  return R

#-----------------------------------------------------------------------------------------------------------
