One of the most powerful features that MvRx has is its debug checks. You may remember back in the third lesson that we passed a debugMode parameter when we created our base MvRxViewModel. Debug Mode in MvRx runs many checks in development to ensure that MvRx is used in a safe way. Enabling debug mode helps guide people to write safer and more reliable code that is less likely to have subtle bugs in production.
Debug mode includes the following checks:
* Ensure reducers are idempotent
* Ensure state is immutable
* Ensure state is not modified outside of setState
* Ensure state classes are public so MvRx can create them.