- guard rail tests for nonexistent lookups in manager classes - custom exception for nonexistent Entity ID - custom exception for nonexistent Component ID - special Engine kinds (detector, modifier, spawner) - maybe AddEngine should take a constructed engine similarly to AddComponent? - component getters should return ValueTuple instead of KeyValuePair so we can do destructuring assignments - docs