pub type Observer<T> = Arc<dyn Fn(&T, &T) + Send + Sync>;
Function type for observers that get called when property values change
pub struct Observer<T> { /* private fields */ }