Framework-agnostic immutable models for the browser