## AirField 0.5.0: CSRF tokens and smarter defaults

AirField's typed metadata system now covers security. CSRF protection tokens, hidden inputs, signature verification, all expressible as a single `CsrfToken()` marker on your model field, right alongside labels, widgets, and layout hints. And choices fields just got less verbose: pass `choices` and AirField picks the select widget for you.

```
uv pip install --upgrade airfield
```

### What's new

- **`CsrfToken` presentation type.** Mark a field as a CSRF protection token and let your form renderer handle the rest: hidden input, signed value, signature verification before processing. Security metadata lives in the same typed system as everything else.

  ```python
  csrf: str = AirField(CsrfToken())
  ```

### What's better

- **Choices fields default to a select widget.** When you pass `choices` to `AirField()`, it automatically attaches `Widget(kind="select")`. No more spelling out what was already obvious. If you need a different widget, pass `widget` or `type` explicitly and the default steps aside.

### Contributors

[@audreyfeldroy](https://github.com/audreyfeldroy) ([Audrey M. Roy Greenfeld](https://audrey.feldroy.com/)) designed and built this release.
