# EAV Overview — BrandApp Playground

> Entry point for the Entity-Attribute-Value store: entities, records, schema, migrations, coercion, typed access.

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

## What EAV is

A flexible, schema-declared data store. Entities define attributes; records hold values
as `Record<string, unknown>`. The SDK layers typed schemas, a filter DSL, migrations, and
generated types on top so the flexibility does not cost you type safety.

## Sections

- Entities and records — browse metadata, CRUD rows
- Filter builder — the `where()` DSL and its eleven operators
- Schema — `defineEntity()` / `defineSchema()` and generated types
- Schema sync — push a schema, generate `ATTRIBUTE_IDS`
- Migrations — the imperative escape hatch when data must move
- Coercion — pull typed values out of `unknown`
- Typed client — `TypedEavRecord` plus the typed `entity()` client

## Related

- [Entities](https://brandapp-playground.vercel.app/eav/entities.md)
- [Records](https://brandapp-playground.vercel.app/eav/records.md)
- [Schema Definition](https://brandapp-playground.vercel.app/eav/schema.md)
- [Filter Builder](https://brandapp-playground.vercel.app/eav/filter.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
