It's loosely inspired by Vue options and takes the separation of concerns a bit more seriously. It is decently typed to satify the basic DX, if you've got improvements, please let me know.
The snippet depends on
- lodash.isequal
- @vue/reactivity
npm i lodash.isequal @vue/reactivity