theme.json settings are a schema, not a suggestion

A theme spent a hundred lines on add_theme_support calls and a stylesheet arguing with the editor, and 5.8 replaced both with one file.

{
  "version": 1,
  "settings": {
    "color": {
      "custom": false,
      "palette": [
        { "slug": "brand", "color": "#1f6feb", "name": "Brand" },
        { "slug": "ink",   "color": "#101418", "name": "Ink" }
      ]
    },
    "spacing": { "units": ["px", "rem"] }
  }
}

"custom": false removes the arbitrary colour picker entirely, which is the difference between a palette and a suggestion — leaving it on means an editor can pick any hex value and the palette is decoration. The version field is required and is 1 in 5.8; version 2 arrives with 5.9 and renames several keys, so a file written now needs revisiting. The settings block only declares what is available; the styles block applies it.