Minecraft wiki entry for Raw_JSON_text_format, associated text: The root tag.
 rawtext: A list contains all text object.
To be valid, an object must contain one content tag:  text,  translate,  score, or  selector. Having more than one is allowed, but only one is used.[note 6]
Content: Plain Text
 text: A string containing plain text to display directly.
Content: Translated Text
 translate: A translation identifier, to be displayed as the corresponding text in the player's selected language. If no corresponding translation can be found, the identifier itself is used as the translation text. This identifier is the same as the identifiers found in lang files from assets or resource packs.
 with: Optional. A list of raw JSON text component arguments to be inserted into slots in the translation text. Ignored if  translate is not present.
Translations can contain slots for text that is not known ahead of time, such as player names. These slots are defined in the translation text itself, not in the JSON text component, and generally take the form %%1 (displays the first argument; replace 1 with whichever index is desired). If no argument is provided for a slot, the slot is not displayed.
Content: Scoreboard Value (requires resolution)
 score: Displays a score holder's current score in an objective. Displays nothing if the given score holder or the given objective do not exist, or if the score holder is not tracked in the objective.
 name: The name of the score holder whose score should be displayed. This can be a selector like @p or an explicit name. If the text is "*", it shows the reader's own score (for example, /tellraw @a { "rawtext" : [ { "score" : { "name" : "*" , "objective" : "obj"} } ] } shows every online player their own score in the "obj" objective).[note 7]
 objective: The internal name of the objective to display the player's score in.
 value: Optional. If present, this value is used regardless of what the score would have been.
Content: Entity Names (requires resolution)
 selector: A string containing a selector. Displayed as the name of the player or entity found by the selector. If more than one player or entity is found by the selector, their names are displayed in either the form "Name1 and Name2" or the form "Name1, Name2, Name3, and Name4". Hovering over a name shows a tooltip with the name, type, and UUID of the target. Clicking a player's name suggests a command to whisper to that player. Shift-clicking a player's name inserts that name into chat. Shift-clicking a non-player entity's name inserts its UUID into chat.