# Typed Client — BrandApp Playground

> Compile-time safe EAV access with TypedEavRecord and the generated ENTITY_IDS constants.

- Canonical page: https://brandapp-playground.vercel.app/eav/typed
- Markdown: https://brandapp-playground.vercel.app/eav/typed.md
- SDK module: `@reopt-ai/brandapp-sdk/eav`

## Workflow

1. Declare the schema with `defineSchema()` / `defineEntity()`.
2. Run `npx reopt brandapp eav sync` to generate types.
3. Use `TypedEavRecord<T>` and the generated `ENTITY_IDS`.

## What you get

- Auto-complete for entity and attribute names
- Compile-time validation of field types
- A properly typed `values` object instead of `Record<string, unknown>`
- No hand-written type assertions at call sites

## Related

- [Schema Definition](https://brandapp-playground.vercel.app/eav/schema.md)
- [Type Coercion](https://brandapp-playground.vercel.app/eav/coerce.md)
- [Schema Sync](https://brandapp-playground.vercel.app/eav/sync.md)

---

Index of every document: https://brandapp-playground.vercel.app/llms.txt
Single-file copy: https://brandapp-playground.vercel.app/llms-full.txt
HTTP API description: https://brandapp-playground.vercel.app/openapi.json
