## AirForm 0.3.1: Better error messages and airform --version

Empty required fields say "This field is required." instead of "This value is too short." when submitted with an empty string. The CLI prints its version with `airform --version`.

```sh
uv add AirForm --upgrade
```

### What's better

- **Empty fields get the right error message.** A field with `min_length` that receives an empty string shows "This field is required." instead of "This value is too short." Non-empty strings that are genuinely too short still get the original message.

- **`validate()` accepts any Mapping.** Starlette's `FormData` and other Mapping types work directly without wrapping in `dict()` first.

- **`airform --version` prints the installed version.** Matches the pattern in Air's CLI. `airform.__version__` is also available for programmatic use.

### What's new

- **AGENTS.md** teaches AI agents to use AirForm from zero knowledge, with AirModel as the primary path and plain BaseModel forms as the second pattern.

- **Pottery workshop example** at `examples/demo_validate_render_lifecycle.py` shows the full validate-and-render lifecycle in a runnable script.

- **README and docs rewritten** to cover CSRF protection, AirModel integration, error re-rendering, and the correct CLI command.

### Contributors

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