docs: def add_transition(self, from_state_id, from_outcome, to_state_id, to_outcome, transition_id=None):
          """Adds a transition to the container state
  
          Note: Either the toState or the toOutcome needs to be "None"
  
          :param from_state_id: The source state of the transition
          :param from_outcome: The outcome id of the source state to connect the transition to
          :param to_state_id: The target state of the transition
          :param to_outcome: The target outcome id of a container state
          :param transition_id: An optional transition id for the new transition
          """
  
          transition_id = self.check_transition_id(transition_id)
  
          # Set from_state_id to None for start transitions, as from_state_id and from_outcome should both be None for
          # these transitions
          if from_state_id == self.state_id and from_outcome is None:
              from_state_id = None
  
          new_transition = Transition(from_state_id, from_outcome, to_state_id, to_outcome, transition_id, self)
          self.transitions[transition_id] = new_transition
  
          # notify all states waiting for transition to be connected
          self._transitions_cv.acquire()
          self._transitions_cv.notify_all()
          self._transitions_cv.release()
          # self.create_transition(from_state_id, from_outcome, to_state_id, to_outcome, transition_id)
          return transition_id