A MobX powered state management solution based on data trees with first class support for TypeScript, snapshots, patches and much more