Property types
Every property on a model has a type. The type decides what kind of value the property stores, how the form editor looks, and which constraints can be applied to it. Pick the type by what the value is — not by how it should be displayed.
The full list
Text
| Type | Use it when |
|---|---|
| String | Plain text — codes, slugs, URLs, identifiers, single-language labels. One value per instance. |
| Localized String | Text users read that changes with the interface language — names, titles, descriptions. One value per supported language. See Localized String. |
Numbers
| Type | Use it when |
|---|---|
| Integer | Whole numbers — counts, ids, scores, years. Pair with an Integer constraint to set bounds or bind to an enumeration. |
| Decimal | Fixed-precision numbers — money, quantities, anything you don't want rounded. |
| Float | Floating-point numbers — measurements, ratios, scientific values. Trade rounding error for range. |
Booleans and dates
| Type | Use it when |
|---|---|
| Boolean | True/false flags — isActive, archived, published. |
| Date | A calendar day, no time. Birthdays, due dates. |
| DateTime | A point in time, with the time of day. Events, audit timestamps, deadlines. |
References
References point at other things in the platform. Pick the right kind by what you want to reference:
| Type | Points at | Typical use |
|---|---|---|
| Model reference | A whole model definition | "This property holds rules about which model to apply." |
| Instance reference | One specific instance of a model | The most common kind — Order.customer, Invoice.client. |
| Model property reference | A specific property of a model | Configuration that needs to remember "the title property of Article". |
| Instance property reference | A specific property of an instance | Rarely used directly; appears in advanced patterns. |
Collection
A Collection is a list of items. It is not a separate value type on its own — it wraps one of the types above. You pick the item type in the collection constraint: a list of strings, a list of instance references, etc. See Constraints.
Choosing between similar types
- String vs Localized String — start with String. Switch to Localized String only when the field is human-facing prose that should change with the interface language.
- Integer vs Decimal vs Float — Integer for counts, Decimal for money and quantities, Float for measurements that can be approximate.
- Date vs DateTime — if the time of day does not matter, use Date. It avoids time-zone surprises.
- Instance reference vs collection of references — one target → instance reference; many targets → collection of instance references.
Where to set the type
You pick a property's type when you add it to a model from the Explorer. The type is part of the model's structure — changing it later is a versioned operation that may require migrating existing data.
Related
- Models — where properties live.
- Constraints — rules layered on top of the type.
- Localized String — the special case of per-language text.