Pywikibot should be able to have extensions built on top of it, which use the core package and provide extra functionality that can be seemlessly used.
One of the very high priority issues that needs solving is an extensible family system, which is T104130, and has a WIP patch which needs polish. This is because Family classes will always be unstable, as they need to be updated when a site's configuration changes, which is an uncontrollable event.
Somewhat related is the need to distribute scripts, and they need to be distributed under a package name that is not scripts. (This doesnt require an extensible system, as we could simply distribute them as a package named pywikibot_scripts, but there may be some benefits in distributing them as subpackages named pywikibot.scripts.foo.)
Functionality in the core library that could be moved into subpackages includes:
- Wikibase
- ProofreadPage
- Flow
- Echo
- WikiDataQuery
Fixes/Cosmetic changes could be an extensible, allowing custom fixes to be developed/shared/installed/enabled outside of the core library repo.
Looking further ahead, page generators could also be implemented in addons. moving WikiDataQuery out of the core library will require this (or some fancy footwork). extensible page generators will depend on the argparse rewrite : T76429