Generic database code needs to work with entities whose concrete types are unknown. A functional dependency records that relationship at the type-class level: each entity type determines one database type. section 11.2.3
In `DBEntity db entity | entity -> db`, the declaration guarantees that an entity cannot be associated with multiple databases. The class also exposes associated `KeyEntity` and `ValueEntity` types for each entity. section 11.2.3
Extensible AstroDB entities
An `AstroDB` instance can associate `MeteorEntity` and `CometEntity` with their own key and value representations. Generic `loadEntity` code can then operate on either entity without changing the framework, while new entity instances extend the catalog independently.
