--- name: config_merge kind: function lang: go domain: infra version: "1.0.0" purity: pure signature: "func ConfigMerge(base, override map[string]string) map[string]string" description: "Merge de dos map[string]string. El map override tiene precedencia sobre base en claves comunes. Ninguno de los inputs es mutado — retorna un mapa nuevo." tags: [config, merge, map, infra] uses_functions: [] uses_types: [] returns: [] returns_optional: false error_type: "" imports: [] params: - name: base desc: "mapa de configuracion base, valores por defecto o de menor prioridad" - name: override desc: "mapa de configuracion con mayor prioridad, sobreescribe claves de base" output: "nuevo mapa con todas las claves de base y override, donde override gana en conflictos" tested: true tests: - "override gana sobre base en claves comunes" - "claves solo en base se mantienen" - "claves solo en override se agregan" - "no muta el map base" - "merge con maps vacios retorna mapa vacio" test_file_path: "functions/infra/config_merge_test.go" file_path: "functions/infra/config_merge.go" --- ## Ejemplo ```go defaults := map[string]string{"host": "localhost", "port": "5432", "debug": "false"} env := map[string]string{"port": "9999", "debug": "true"} merged := ConfigMerge(defaults, env) // merged = {"host": "localhost", "port": "9999", "debug": "true"} ``` ## Notas Funcion pura. Util para combinar defaults hardcodeados con valores del archivo .env o de variables de entorno. Patron tipico: ConfigMerge(hardcoded_defaults, dotenv_values).