Imagine having 2 separate types, e.g. City and Countries.
One intent may expect 3 slots where either slot can be a City or a Country:
{CityOne}, {CityTwo] and {CityThree} are of type LIST_OF_CITY
{CountryOne}, {CountryTwo}, {CountryThree} are of type LIST_OF_COUNTRY
-------
One way to define a sample for this intent would be like:
...{CityOne} {CountryOne} and {CityTwo] {Countrytwo} and {CityThree}{CountryThree}...
but this way of modeling the sample is not efficient and it behaves randomly (at least on my training data and specially when a slot has more than one word)...
-------
Another solution is to merge both types into one but it will sacrifice the accuracy of other intents that are modeled based on each type separately (for me, there are several other intents).
-------
We can also define a third type that includes values of the first 2 types, i.e., creating duplicate values across multiple types, but this shouldn't be a very accurate solution.
-------
Alternatively, it would be great to have a new functionality for allowing 1 slot to have more than 1 type.