class_docstr: Container for data that can be used to describe a conversation turn.
  
  The turn is described by a set of attributes such as e.g. `TEXT`  and  `INTENT`
  when describing a user utterance or e.g. `ACTION_NAME` for describing a bot action.
  The container includes raw information (`self.data`) as well as features
  (`self.features`) for each such attribute.
  Moreover, the message has a timestamp and can keep track about information
  on a specific subset of attributes (`self.output_properties`).
docstr: Creates an instance of Message.
docstr_tok: ["Creates","an","instance","of","Message","."]
code: def __init__(
      self,
      data: Optional[Dict[Text, Any]] = None,
      output_properties: Optional[Set] = None,
      time: Optional[int] = None,
      features: Optional[List["Features"]] = None,
      **kwargs: Any,
  ) -> None:
      """Creates an instance of Message."""
      self.time = time
      self.data = data.copy() if data else {}
      self.features = features if features else []
  
      self.data.update(**kwargs)
      self._cached_fingerprint: Optional[Text] = None
  
      if output_properties:
          self.output_properties = output_properties
      else:
          self.output_properties = set()
      self.output_properties.add(TEXT)
  
imports: from typing import Any, Optional, Tuple, Text, Dict, Set, List
  import typing
  import copy
  import rasa.shared.utils.io
  from rasa.shared.exceptions import RasaException
  from rasa.shared.nlu.constants import TEXT, INTENT, RESPONSE, INTENT_RESPONSE_KEY, METADATA, METADATA_INTENT, METADATA_EXAMPLE, ENTITIES, ENTITY_ATTRIBUTE_START, ENTITY_ATTRIBUTE_END, RESPONSE_IDENTIFIER_DELIMITER, FEATURE_TYPE_SENTENCE, FEATURE_TYPE_SEQUENCE, ACTION_TEXT, ACTION_NAME, TEXT_TOKENS
  from rasa.shared.constants import DIAGNOSTIC_DATA
label_desc: Use image node_id 1 to create a new Message object  with example: obj = Message(data, output_properties, time, features)