docs: def format_configchoicefield_nodes(field_name, field, field_id, state, lineno):
      """Create a section node that documents a ConfigChoiceField config field.
  
      Parameters
      ----------
      field_name : `str`
          Name of the configuration field (the attribute name of on the config
          class).
      field : ``lsst.pex.config.ConfigChoiceField``
          A configuration field.
      field_id : `str`
          Unique identifier for this field. This is used as the id and name of
          the section node. with a -section suffix
      state : ``docutils.statemachine.State``
          Usually the directive's ``state`` attribute.
      lineno (`int`)
          Usually the directive's ``lineno`` attribute.
  
      Returns
      -------
      ``docutils.nodes.section``
          Section containing documentation nodes for the ConfigChoiceField.
      """
      # Create a definition list for the choices
      choice_dl = nodes.definition_list()
      for choice_value, choice_class in field.typemap.items():
          item = nodes.definition_list_item()
          item_term = nodes.term()
          item_term += nodes.literal(text=repr(choice_value))
          item += item_term
          item_definition = nodes.definition()
          def_para = nodes.paragraph()
          name = '.'.join((choice_class.__module__, choice_class.__name__))
          def_para += pending_config_xref(rawsource=name)
          item_definition += def_para
          item += item_definition
          choice_dl.append(item)
  
      choices_node = nodes.definition_list_item()
      choices_node.append(nodes.term(text='Choices'))
      choices_definition = nodes.definition()
      choices_definition.append(choice_dl)
      choices_node.append(choices_definition)
  
      # Field type
      field_type_item = nodes.definition_list_item()
      field_type_item.append(nodes.term(text="Field type"))
      field_type_item_content = nodes.definition()
      field_type_item_content_p = nodes.paragraph()
      if field.multi:
          multi_text = "Multi-selection "
      else:
          multi_text = "Single-selection "
      field_type_item_content_p += nodes.Text(multi_text, multi_text)
      field_type_item_content_p += make_python_xref_nodes_for_type(
          type(field),
          state,
          hide_namespace=True)[0].children[0]
      if field.optional:
          field_type_item_content_p += nodes.Text(' (optional)', ' (optional)')
      field_type_item_content += field_type_item_content_p
      field_type_item += field_type_item_content
  
      dl = nodes.definition_list()
      dl += create_default_item_node(field, state)
      dl += field_type_item
      dl += choices_node
  
      # Doc for this field, parsed as rst
      desc_node = create_description_node(field, state)
  
      # Title for configuration field
      title = create_title_node(field_name, field, field_id, state, lineno)
  
      return [title, dl, desc_node]