New selection list
The service mints the list id (sl_…) — you never supply one.
You are granted list-owner on the list you create.
States
The create call is the one most likely to be refused — by validation, by a duplicate key, or by quota.
Test hooks: [data-frame='02-new-list'] · [data-panel='new-list'] · [data-field='key'] · [data-field='source_locale'] · [data-field-error='key'] · [data-error='VALIDATION_ERROR'] · [data-error='CONFLICT'] · [data-error='QUOTA_EXCEEDED'] · [data-error='FORBIDDEN'] · [data-action='create-list'] · [data-state='submitting']
Contract: POST /v1/selection-lists body { key, source_locale, name, description } — no id; the service mints sl_… and rejects unknown properties.
Tokens only — no raw hex, spacing or type outside tokens.css / frame.css.