How to annotate a list and combination logic in the training examples?

Let’s say I have a bot that answers questions regarding restaurants based on cuisine specified by the user. In some cases, it is possible that the user can specify multiple cuisines. Here are some examples -

  1. What is the average cost of a meal at a Mexican or a Mediterranean restaurant in SF?
  2. Which is the nearest Italian restaurant to Coit Tower?
  3. Are there any restaurants that serve both Mediterranean and Moroccan food in SoMa?
  4. Could you suggest where I can go for lunch? I love Japanese, Vietnamese and Indian food.

Let’s also say that I’ve defined an entity preferredCuisine as a list in my domain.

How do I annotate the above examples so that -

  1. preferredCuisine:["mexican", "mediterranean"]
  2. preferredCuisine:["italian"] - this one’s straightforward
  3. preferredCuisine:["mediterranean","moroccan"]
  4. preferredCuisine:["japanese","vietnamese","indian"]

I tried annotating each cuisine individually like in the example below as preferredCuisine so it seemed to append each additional cuisine into the list. Is there a problem if I annotate this way?

Are there any restaurants that serve both [Mediterranean](preferredCuisine) and [Moroccan](preferredCuisine) food in SoMa?

Another nuance that I was hoping to extract from the training example (for later) is combinational logic like “and”/“or”. For example, in example 1 and 4 above, the user is looking for a restaurant that satisfies any of the condition on the cuisine while in example 3, the user is looking for a restaurant that satisfied BOTH cuisine conditions. My hunch is that I should use a different intent altogether for such utterances, but I wasn’t sure if there was a better way to do so in Rasa within the same intent.

Thanks in advance for your help!