package infra // ConfigMerge merges two string maps, with override taking precedence over base. // Keys present in both maps take the value from override. // Keys present only in base are kept. Keys present only in override are added. // Neither input map is mutated — a new map is returned. func ConfigMerge(base, override map[string]string) map[string]string { result := make(map[string]string, len(base)+len(override)) for k, v := range base { result[k] = v } for k, v := range override { result[k] = v } return result }