YAML datatype choices EXPLAINED?

Hi there. Rasa’s YAML datatype choices for, for example, slots vs entities seem so random to a beginner, like me, in Rasa! Is there a shorthand to remember when to indent with spaces vs when its a list that can start at the same indentation level, etc?

For instance:

In domain file

intents and entities and actions are lists (understandable) (start with - xyz at the same indentation level as prev line)

session config is a dict (maybe understandable; like in Python, arguments to functions can be a dict as is in **kwargs (start double spaced forward as in _ _ xyz)

slots and responses and forms are YAML dict (why?? are they also just not lists of objects?) (start double spaced forward as in _ _ xyz)

I understand the indentation is a YAML list format vs dict format, but remembering which is list vs which is a dict is not required due to the indentation, especially when things like slots should naturally be lists (like, the related concept, entities already are!) , or am I missing something ?

In NLU

intents vs stories

intents have examples key followed by a | followed by a (multi line string in YAML format) list of things a user may ask (But it IS indented, as multi line strings must be. ie. _ _ - xyz !?!)

stories have user key followed by a | (multi line string in YAML format coming up) followed by a multi line string that doesn’t start with - on each line… ( indented as _ _ xyz)

Concluding

Gotta keep referring to docs. Do the pros need to do that as well or is there some shorthand I’m missing?