Sum-type like Required Slots For Rasa Forms?

I want to build a form that requires 1 of a set of possible entity types; lets say entity types a, b or c.

Is there a recommend place to put this logic in the form action?

My first thought would be to remove the required entities in the required_slots method once one is filled:

def required_slots(tracker):
    # type: () -> List[Text]

    if tracker.get_slot('a'):
        return []
    if tracker.get_slot('b'):
        return []
    if tracker.get_slot('c'):
        return []
    else:
        return ["a", "b", "c"]

I will prototype this out, but am grateful for any suggestions.

Yes, you are correct. There’s also an example of this on the forms page here.