My feeling was that usage -> definition -> block_type is the responsibility of the XBlock IdReader, rather than these particular keys. But I could be convinced that it belongs on the key types, and that the IdReader would just use the methods on the key classes.