`getMetadata(TransMemoryUnit)` uses `getSharedMetadata(HasTMMetadata)` uses `getGenericMetadata(HasTMMetadata)`, the latter two are just helpers for the former. The 3 methods should appear in this order so that code can be read top-to-bottom, the same way the setters below are arranged.