Twine is a functional state management library akin to redux. Using Typescript, it is feasible to achive 100% type safety in both state, state change functions and asynchronous side effect management and control flow functions including pages. Twine provides a tree structure using models and it is possible to nest models within models. Twine is heavily inspired by the Elm architecture.
The easiest way to see the API is by looking at the tests!