// ======================================================================================
    // PRIVATE MEMBERS - SUBSYSTEM HANDLERS
    // ======================================================================================
    private void UpdateDashSubsystem()
    {
        if (IsDashing)
        {
            UpdateDash();
            return;
        }

        // GET INPUT
        bool doDash = m_input.GetDash() || (m_input.GetVertical() < -.5f && m_input.GetJump());

        m_inAirDashPermission = IsGrounded || m_inAirDashPermission;
        // Try to Trigger Event, if possible
        if (doDash && !IsEjecting && m_inAirDashPermission)
        {
            StartDash();
        }
    }