Naming Conventions
The full type list and per-type validation are in Field Types.
Best Practices
Use enum over text for constrained values
If a field has a known set of valid values (status, priority, category), use enum with values rather than text. Writes outside the set are rejected, and filtering with eq / in is exact.
Model many-valued attributes explicitly
There is no multi-select type. For a short, fixed list of flags, use oneboolean field per flag — each is filterable. For an open-ended set of tags, add a tags entity with a reference field back to the record, so each tag is its own filterable record. A json field can hold an array, but json fields only support the is_null filter.
Use reference for cross-entity links
When a record in one entity refers to a record in another entity in the same app, use type: reference with constraints.entity_slug rather than a plain text field:
Keep entities focused
One entity per concept. Don’t combine “tasks” and “comments” into one entity — make two entities and use areference field in the comments entity to point back to the task.
Index what you filter on
Declareindexed: true on the fields your app filters or sorts on routinely — statuses, dates, identifiers — so those queries stay fast as the entity grows. See Indexing fields.