Client-side models are generic data structures that notify listeners when changed.