The software's responsibilities are divided into one "core" and multiple "plugins". The core contains the bare minimum functionality. Plugins are independent of each other and implement shared interfaces to achieve different goals.
https://learning.oreilly.com/library/view/software-architecture-patterns/9781491971437/ch03.html