The ExtensionPoint JSX component API is confusing and bloated, as is the store API.
- store API has methods like addExtensionPoint and then addExtension. Can't see any reason why both are needed.
- store API has getExtensions and loadExtensions. Really seems like only one of these is needed and it should be the async version (i.e. loadExtensions - it takes a callback) - the sync version is weird.
- store.loadExtensions loads extension point "implementations". Maybe we rename it to match that e.g. store.loadExtensionPointImpls.
- From a "user" perspective, the ExtensionPoint JSX component renders extension point implementations, so why not give it a name that reflects that fact e.g. <RenderExtensionPoint>?
- The ExtensionPoint.registerExtensionPoint static is dumb and will probably be even more dumb once ExtensionPoint gets a more meaningful name. Remove it and replace usages of it with calls to store.loadExtensions.