Settings can be scoped to a single block type, which is the only way to give one block a control the rest of the site does not have.
{
"settings": {
"color": { "custom": false },
"blocks": {
"core/button": {
"color": { "palette": [ { "slug": "cta", "color": "#c9372c" } ] }
},
"core/separator": {
"color": { "text": false, "background": false }
}
}
}
}
Per-block settings merge with the top-level ones rather than replacing them, so the button gets the global palette plus its own entry — which is usually what is wanted and occasionally not. The useful cases are narrow: a call-to-action colour that must not appear elsewhere, and disabling controls on a block where they produce nothing sensible. Using this heavily produces a file where the effective settings for any block require reading two places, which is how it becomes unmaintainable.