def METHOD_NAME(base_config_spec):
    plugin_specs = {}
    final_spec = copy.deepcopy(base_config_spec)
    # First process options config spec additions
    for plugin_instance in registered_plugins:
        plugin_options = plugin_instance.options_module
        if plugin_options and hasattr(plugin_options, "option_spec"):
            module_path = plugin_instance.module_path
            option_spec = plugin_options.option_spec
            __process_config_spec(
                option_spec, base_config_spec, plugin_specs, module_path, final_spec
            )
    # Now process default value overrides, do this second in order to allow plugins
    # to override default values for other plugins!
    plugin_default_overrides = {}
    for plugin_instance in registered_plugins:
        plugin_options = plugin_instance.option_defaults_module
        if plugin_options and hasattr(plugin_options, "option_defaults"):
            module_path = plugin_instance.module_path
            option_defaults = plugin_options.option_defaults
            __process_option_defaults(
                option_defaults,
                base_config_spec,
                plugin_default_overrides,
                module_path,
                final_spec,
            )
    return final_spec