register method
Implementation
Future<void> register(Extension extension, ExtensionConfig config) async {
final id = extension.metadata.id;
if (_extensions.containsKey(id)) {
throw Exception('Extension $id already registered');
}
// Validate dependencies
for (final dep in config.dependencies) {
if (!_extensions.containsKey(dep)) {
throw Exception('Dependency $dep not found for extension $id');
}
}
_extensions[id] = extension;
_configs[id] = config;
_states[id] = ExtensionState.REGISTERED;
_emitEvent(id, ExtensionState.REGISTERED);
if (config.enabled) {
await _initializeExtension(id);
}
}