def _nested_multiquestion_required(question):
    """Returns a list of required nested properties for the multiquestion.

    `.required_form_fields` returns the top-level schema property name for the
    nested multiquestion, since that's the part that's influenced by the question's
    `optional` flag and it returns the key we need to add to the top-level schema's
    'required' list.

    Nested properties are always required if the nested question is mandatory, even
    when multiquestion itself is optional, since they're part of the nested schema.

    """
    required = []
    followups = []

    # Followup questions don't need to be in the 'required' properties list since even
    # non-optional questions don't always have to be present if they're a followup.
    # Both the question itself and the followups are covered by the oneOf subschemas.

    for nested_question in question['questions']:
        required.extend(nested_question.required_form_fields)
        if nested_question.get('followup'):
            followups.extend(nested_question['followup'].keys())

    return sorted(set(required) - set(followups))