Defensively copies values, recursively freezing maps and lists.
values
ConfigValues(Map<String, Object?> values) : values = freezeConfig(values);