docs: def check_child_validity(self, child):
          """Check validity of passed child object
  
          The method is called by state child objects (outcomes, data ports) when these are initialized or changed. The
          method checks the type of the child and then checks its validity in the context of the state.
  
          :param object child: The child of the state that is to be tested
          :return bool validity, str message: validity is True, when the child is valid, False else. message gives more
              information especially if the child is not valid
          """
          # Check type of child and call appropriate validity test
          if isinstance(child, Income):
              return self._check_income_validity(child)
          if isinstance(child, Outcome):
              return self._check_outcome_validity(child)
          if isinstance(child, DataPort):
              return self._check_data_port_validity(child)
          if isinstance(child, ScopedData):
              return self._check_scoped_data_validity(child)
          return False, "Invalid state element for state of type {}".format(self.__class__.__name__)