class_docstr: Action which implements and executes the form logic.
class_docstr_tok: ["Action","which","implements","and","executes","the","form","logic","."]
code: def _find_next_slot_to_request(
      self, tracker: DialogueStateTracker, domain: Domain
  ) -> Optional[Text]:
      return next(
          (
              slot
              for slot in self.required_slots(domain)
              if self._should_request_slot(tracker, slot)
          ),
          None,
      )
  
imports: import copy
  from typing import Text, List, Optional, Union, Any, Dict, Set
  import itertools
  import logging
  import structlog
  import json
  from rasa.core.actions import action
  from rasa.core.actions.loops import LoopAction
  from rasa.core.channels import OutputChannel
  from rasa.shared.core.domain import Domain, KEY_SLOTS
  from rasa.shared.core.constants import SlotMappingType, SLOT_MAPPINGS, MAPPING_TYPE
  from rasa.core.actions.action import ActionExecutionRejection, RemoteAction
  from rasa.shared.core.constants import ACTION_EXTRACT_SLOTS, ACTION_LISTEN_NAME, REQUESTED_SLOT
  from rasa.shared.constants import UTTER_PREFIX
  from rasa.shared.core.events import Event, SlotSet, ActionExecuted, ActiveLoop, ActionExecutionRejected, Restarted
  from rasa.core.nlg import NaturalLanguageGenerator
  from rasa.shared.core.slot_mappings import SlotMapping
  from rasa.shared.core.slots import ListSlot
  from rasa.shared.core.trackers import DialogueStateTracker
  from rasa.utils.endpoints import EndpointConfig
label_desc: Use image node_id 16 for calling the FormAction obj's underlying member method code with example usage: obj._find_next_slot_to_request(tracker, domain) and returns: next