FRB distinguishes object properties from mapped keys of Collections. Array conflates these concepts (a mapped key is also a property, you can observe either), but in general, if you want an object to behave like a map, you must implement the Map protocol, which involves `getDefault`, `get`, `set`, mixing in `MapChanges` and `GenericMap`, and doing `dispatchMapChange(value, key, object)` if `dispatchesMapChanges`.