A model describes the shape of a kind of data — a type. It belongs to a schema and is made of properties.

Properties

Each property has:

  • A name (e.g. email, birthDate, totalAmount).
  • A type — string, localized string (a separate value per language), integer, decimal, boolean, datetime, reference to another model, or a collection of any of those.
  • A description that explains the meaning of the property to humans and to AI agents.
  • An optional default value.
  • Optionally, an expression that makes the property virtual (computed at read time from other properties).

For text that end users read and that should change with the interface language — names, titles, labels — use a Localized String instead of a plain string (see Localized String).

Constraints

Beyond the basic type, properties can carry constraints:

  • Display — order, visibility, read-only flag, layout flex, grouping into sections.
  • String constraints — minimum and maximum length, regex patterns.
  • Integer constraints — minimum and maximum values.
  • Datetime constraints — earliest and latest allowed times.
  • Reference constraints — which model a reference points to, cardinality (1..1, 1..N, N..N).
  • Collection constraints — minimum and maximum element count.

These constraints power the auto-generated forms and the per-model help page (see Schemas & Models on the left).

Versioning

Models can be versioned. Yellow keeps a history of changes so old instances stay readable even after the model evolves.