docs: def validate_additional_properties(self, valid_response, response):
          """Validates additional properties. In additional properties, we only
             need to compare the values of the dict, not the keys
  
          Args:
              valid_response: An example response (for example generated in
                              _get_example_from_properties(self, spec))
                              Type is DICT
              response: The actual dict coming from the response
                        Type is DICT
  
          Returns:
              A boolean - whether the actual response validates against the given example
          """
          assert isinstance(valid_response, dict)
          assert isinstance(response, dict)
  
          # the type of the value of the first key/value in valid_response is our
          # expected type - if it is a dict or list, we must go deeper
          first_value = valid_response[list(valid_response)[0]]
  
          # dict
          if isinstance(first_value, dict):
              # try to find a definition for that first value
              definition = None
              definition_name = self.get_dict_definition(first_value)
              if definition_name is None:
                  definition = self._definition_from_example(first_value)
                  definition_name = 'self generated'
              for item in response.values():
                  if not self.validate_definition(definition_name,
                                                  item,
                                                  definition=definition):
                      return False
              return True
  
          # TODO: list
          if isinstance(first_value, list):
              raise Exception("Not implemented yet")
  
          # simple types
          # all values must be of that type in both valid and actual response
          try:
              assert all(isinstance(y, type(first_value)) for _, y in response.items())
              assert all(isinstance(y, type(first_value)) for _, y in valid_response.items())
              return True
          except Exception:
              return False