Optional list in config.json not quite optional

I still struggle with the correct definition of an “optional list of entries” in the config.json. Say it looks like that:

"options": {
      "mediola": {
        "host": "",
        "password": ""
      },
      "mqtt": {
        "host": "",
        "port": 1803,
        "username": "",
        "password": "",
        "discovery_prefix": "homeassistant",
        "topic": "mediola",
        "debug": false
      },
      "buttons": [ ],
    },
    "schema": {
      "mediola": {
        "host": "str",
        "password": "str"
      },
      "mqtt": {
        "host": "str",
        "port": "int(0,65535)",
        "username": "str",
        "password": "password",
        "discovery_prefix": "str",
        "topic": "str",
        "debug": "bool"
      },
      "buttons": [
        {
        "type": "match(IT)?",
        "adr": "str?"
        }
      ]
    }

If you look on the last block, the “buttons” part allows for a list of entries like

- type: IT
  adr: 3c5c1480
- type: IT
  adr: 3c5b2480

which works quite well. Initially this config block is empty in the config page, which is perfectly OK as you may not have any “buttons”. However, If I define such a button entry ONCE, it will work as intended, but I never can change my mind again and delete all the entries in the config block.

Although the individual values “type” and “adr” are optional and can be left out, the list entry itself obviously is NOT. I cannot get back to the “empty list” state because HA drops an error on save:

Fehler beim Speichern der Add-on Konfiguration, Invalid list for option ‘buttons’ in …

How would I have to define the config.json so that I am allowed to delete all my “buttons” entries and get back to the initial “empty” state.