Config schema validation, array of objects

I have a rather complex config, the user needs to supply their own mappings and I allow them to override some values to handle devices I can’t test.

So it would look something like this:

"options": {
  "devices": [
    {
      "id": 1234,
      "type": "switch"
    },
    {
      "id": 5678,
      "type": "binary_sensor"
    }
}

There seems to be no way to create a schema validation to handle this.
If I do as follows then the entire config fails to even load.

"schema": {
  "devices": [
    {
      "id": "int",
      "type": "str"
    }
  ]
}

If I set "schema": false then there is no way to configure from the UI.

Update

Since there seems to be no solution and the UI fails when schema = false, I moved the extra configs into separate json files that will be reader/written from in the “config” map.