This state management system is built around two concepts:
- State is accessed and set primarily through lenses that can be split off and composed.
- A transaction can be initiated from the state tree, which records mutations in a separate branch until the transaction is committed.