The BaseController API has a metadata instance property, but we almost always know the metadata statically (the one exception to this, ComposableController, is planned for deletion). We can make this a static property instead.
This would make it easier to setup state listeners/handlers programmatically before controller construction in the client repositories.