private void createEmailRegistrationStates(final Flow flow) {
        val registrationView = createViewState(flow, "recipientsRegistrationView", "simple-mfa/casSimpleMfaRegisterRecipientsView");
        registrationView.getEntryActionList().add(ConsumerExecutionAction.EVENT_ATTRIBUTES_TO_FLOW_SCOPE);
        createTransitionForState(registrationView, CasWebflowConstants.TRANSITION_ID_REGISTER, CasWebflowConstants.STATE_ID_SIMPLE_MFA_VERIFY_EMAIL);
        val verifyEmailState = createActionState(flow, CasWebflowConstants.STATE_ID_SIMPLE_MFA_VERIFY_EMAIL, CasWebflowConstants.ACTION_ID_MFA_SIMPLE_VERIFY_EMAIL);
        verifyEmailState.getEntryActionList().add(ConsumerExecutionAction.EVENT_ATTRIBUTES_TO_FLOW_SCOPE);
        createTransitionForState(verifyEmailState, CasWebflowConstants.TRANSITION_ID_ERROR, registrationView.getId());
        createTransitionForState(verifyEmailState, CasWebflowConstants.TRANSITION_ID_SUCCESS, "updateEmailRegistrationView");

        val updateEmailViewState = createViewState(flow, "updateEmailRegistrationView", "simple-mfa/casSimpleMfaUpdateEmailRegistrationView");
        createTransitionForState(updateEmailViewState, CasWebflowConstants.TRANSITION_ID_SUBMIT, "updateEmailRegistration");
        createTransitionForState(updateEmailViewState, CasWebflowConstants.TRANSITION_ID_ERROR, updateEmailViewState.getId());

        val updateEmailRegistrationState = createActionState(flow, "updateEmailRegistration", CasWebflowConstants.ACTION_ID_MFA_SIMPLE_UPDATE_EMAIL);
        createTransitionForState(updateEmailRegistrationState, CasWebflowConstants.TRANSITION_ID_RESUME, CasWebflowConstants.STATE_ID_SIMPLE_MFA_SEND_TOKEN);
        createTransitionForState(updateEmailRegistrationState, CasWebflowConstants.TRANSITION_ID_ERROR, updateEmailViewState.getId());
    }
This is {@link CasSimpleMultifactorWebflowConfigurer}.

@author Misagh Moayyed
@since 6.0.0
support/cas-server-support-simple-mfa-core/src/main/java/org/apereo/cas/mfa/simple/web/flow/CasSimpleMultifactorWebflowConfigurer.java