The Digital Workspace application module imports the Extensions module, and each extension is imported in the bundle. Each module is responsible for declaring components, actions, and rules by providing a unique ID (string) associated with the element to be loaded. After this process ends, a dictionary of IDs → elements is loaded. Each module also declares a descriptor file that is loaded and merged together with other files. The result of the merge is written into app.extensions.json.
The app.extensions.json file is loaded by the AppExtensionService. This dynamically loads the extensions into the proper hook using the ADF Extension Mechanism.