The dropdown — pick one, store the value.
The dropdown: pick one of the declared options. Stores the chosen
option's value as a string — never the label — and shares that
contract with Radio: swap the two and no template
changes.
| Label | Status |
| Key | status |
| Data type | string |
| Editor | select |
| Options | on_sale → "On sale" · sold_out → "Sold out" · past → "Past" |
In the admin this is the Select field type.
<% if (cms.asset.content.status === 'sold_out') { %>
<span class="badge">Sold out</span>
<% } %>
{ "content": { "status": "sold_out" } }
The write boundary refuses anything off the list — one_of, derived
from the options themselves. A template never meets "Sold Out",
"soldout", or a typo. Emptiness stays required's question.