Skip to content

Schema Design

Prefer explicit id values for every field and report. Labels are user-facing copy; ids are integration contracts.

{
id: "customer_age",
kind: "number",
label: "Customer age",
min: 0,
max: 120
}

Guidelines:

Topic Recommendation
Ids Use stable snake case or kebab case. Do not derive backend contracts from labels.
Labels Write labels for users, not for machines.
Required Use required for user obligations, not backend convenience.
Defaults Use defaultValue for schema-owned defaults and initialValues for session data.
UI metadata Put renderer-specific hints in ui; do not make the backend depend on them.
Versioning Version schemas at your API boundary when models change required inputs.

Avoid changing field ids after a backend is deployed. If a model changes, add a new field id and migrate deliberately.