diff --git a/builder/py/retrobuilder/loader.py b/builder/py/retrobuilder/loader.py index d8ab8f4..0662ffd 100644 --- a/builder/py/retrobuilder/loader.py +++ b/builder/py/retrobuilder/loader.py @@ -4,6 +4,7 @@ import importlib.util from pathlib import Path from types import ModuleType from typing import Any +from dataclasses import asdict from retrobuilder.model import BaseSpec, FeatureSpec, ProfileSpec from retrobuilder.paths import base_dir, feature_dir, profile_file @@ -70,7 +71,16 @@ def load_module_chain(root: Path, kind: str, name: str): def resolve_module_config(root: Path, kind: str, name: str) -> dict[str, Any]: merged: dict[str, Any] = {} for _name, spec in load_module_chain(root, kind, name): - merged.update(spec.config) + data = asdict(spec) + + data.pop("description", None) + data.pop("parent", None) + data.pop("docker_overrides", None) + extra = data.pop("config", {}) or {} + + merged.update(data) + merged.update(extra) + return merged