> Is this always true?

Overriding objects and array is not that easy. You may want to replace the whole object/array or modify the existing one by adding/changing/removing members. The same applies to member values, which may be objects/arrays again.

Here is my proposal: let's stick to value types until somebody asks for more. Then we can figure out how to support complex object. The best option may be allowing custom scripts to export `function alterDataSource(name, config)` or `alterAppConfig(config)`, this function will be called instead of `mergeDataSourceConfig`/`mergeAppConfig`.

> Also the wording here is confusing IMO. Is it possible to provide more context so you would know where to go to fix the error? Imagine getting this error in the UI...

Here are the full `error.message`s:

```
Cannot apply datasources.local.js to `db`: override for the option `connector` is not a value type.

Cannot apply app.local.json: override for the option `host` is not a value type.
```

See L117 (datasources.config) and L125 (app.config).

I am happy to improve this but don't know how, what do you suggest?