Returns a stable string representation usable as an equality key.
Previously this used a Node crypto.createHash('sha256') digest, but
that broke browser bundles (crypto is Node-only, and the Web Crypto
subtle.digest is async). The serialized JSON is sufficient for the
equal() use case, which only needs deterministic comparison.
The main class of this package. Can be used as a state manager under a library like zustand.