Skip to content
SurfaceDocs
FRGet started
DocsModel reference

workspaceExactData

Properties, variants, types and bounds for workspaceExactData.

This reference describes the full structure of workspaceExactData. Paths include nested objects, list items and conditional branches. A branch selected by kind, contract or mode only admits its own properties.

Structure and values

Field Options / expected values Description
contract "WorkspaceExactData@1" Required. Exact discriminant of this contract variant. Match the literal value shown.
units Array<closed object>; max length 100 Required. Defines units for this object. Observe the type, variants and bounds in the Options column.
units[].kind "unit" | "currency" Required. Selects the variant and the properties admitted in this branch.
units[].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
units[].label string; min length 1; max length 4000 Required. Human-readable label displayed in the interface.
unitOperations Array<closed object>; max length 200 Required. Defines unit Operations for this object. Observe the type, variants and bounds in the Options column.
unitOperations[].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
unitOperations[].version string; min length 1; max length 120 Required. Declared content or publication version identifying the applicable interpretation.
unitOperations[].operator "multiply" | "divide" Required. Variant comparison or operation; its value must match the expected type.
unitOperations[].left closed object OR closed object OR closed object Required. Defines left for this object. Observe the type, variants and bounds in the Options column.
unitOperations[].left.[kind=dimensionless].kind "dimensionless" Required. Selects the variant and the properties admitted in this branch.
unitOperations[].left.[kind=unit].kind "unit" Required. Selects the variant and the properties admitted in this branch.
unitOperations[].left.[kind=unit].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
unitOperations[].left.[kind=currency].kind "currency" Required. Selects the variant and the properties admitted in this branch.
unitOperations[].left.[kind=currency].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
unitOperations[].right closed object OR closed object OR closed object Required. Defines right for this object. Observe the type, variants and bounds in the Options column.
unitOperations[].right.[kind=dimensionless].kind "dimensionless" Required. Selects the variant and the properties admitted in this branch.
unitOperations[].right.[kind=unit].kind "unit" Required. Selects the variant and the properties admitted in this branch.
unitOperations[].right.[kind=unit].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
unitOperations[].right.[kind=currency].kind "currency" Required. Selects the variant and the properties admitted in this branch.
unitOperations[].right.[kind=currency].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
unitOperations[].result closed object OR closed object OR closed object Required. Defines result for this object. Observe the type, variants and bounds in the Options column.
unitOperations[].result.[kind=dimensionless].kind "dimensionless" Required. Selects the variant and the properties admitted in this branch.
unitOperations[].result.[kind=unit].kind "unit" Required. Selects the variant and the properties admitted in this branch.
unitOperations[].result.[kind=unit].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
unitOperations[].result.[kind=currency].kind "currency" Required. Selects the variant and the properties admitted in this branch.
unitOperations[].result.[kind=currency].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
conversions Array<closed object>; max length 200 Required. Defines conversions for this object. Observe the type, variants and bounds in the Options column.
conversions[].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
conversions[].version string; min length 1; max length 120 Required. Declared content or publication version identifying the applicable interpretation.
conversions[].from closed object OR closed object OR closed object Required. Starting state or source for the transition or relation.
conversions[].from.[kind=dimensionless].kind "dimensionless" Required. Selects the variant and the properties admitted in this branch.
conversions[].from.[kind=unit].kind "unit" Required. Selects the variant and the properties admitted in this branch.
conversions[].from.[kind=unit].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
conversions[].from.[kind=currency].kind "currency" Required. Selects the variant and the properties admitted in this branch.
conversions[].from.[kind=currency].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
conversions[].to closed object OR closed object OR closed object Required. Target state or destination for the transition or relation.
conversions[].to.[kind=dimensionless].kind "dimensionless" Required. Selects the variant and the properties admitted in this branch.
conversions[].to.[kind=unit].kind "unit" Required. Selects the variant and the properties admitted in this branch.
conversions[].to.[kind=unit].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
conversions[].to.[kind=currency].kind "currency" Required. Selects the variant and the properties admitted in this branch.
conversions[].to.[kind=currency].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
conversions[].factor closed object OR closed object Required. Defines factor for this object. Observe the type, variants and bounds in the Options column.
conversions[].factor.[kind=literal].kind "literal" Required. Selects the variant and the properties admitted in this branch.
conversions[].factor.[kind=literal].format closed object; semantic validation Required. Presentation format compatible with the value type.
conversions[].factor.[kind=literal].format.precision integer; ≥ 1; ≤ 1000 Required. Defines precision for this object. Observe the type, variants and bounds in the Options column.
conversions[].factor.[kind=literal].format.scale integer; ≥ 0; ≤ 1000 Required. Defines scale for this object. Observe the type, variants and bounds in the Options column.
conversions[].factor.[kind=literal].value string; max length 1003 Required. Effective value interpreted according to the enclosing type and discriminant.
conversions[].factor.[kind=field].kind "field" Required. Selects the variant and the properties admitted in this branch.
conversions[].factor.[kind=field].field closed object Required. Defines field for this object. Observe the type, variants and bounds in the Options column.
conversions[].factor.[kind=field].field.definitionPath string; min length 1; max length 600; /^workspace\/[a-z0-9-]+(?:\/surface\/[a-z0-9-]+)*$/u Required. Exact path of a definition in the Model; this is not a record instance ID.
conversions[].factor.[kind=field].field.fieldKey string; min length 1; max length 120; /^[a-zA-Z][a-zA-Z0-9]*$/u Required. Key of a Field declared on the referenced Surface definition.
conversions[].output closed object Required. Defines output for this object. Observe the type, variants and bounds in the Options column.
conversions[].output.format closed object; semantic validation Required. Presentation format compatible with the value type.
conversions[].output.format.precision integer; ≥ 1; ≤ 1000 Required. Defines precision for this object. Observe the type, variants and bounds in the Options column.
conversions[].output.format.scale integer; ≥ 0; ≤ 1000 Required. Defines scale for this object. Observe the type, variants and bounds in the Options column.
conversions[].output.unit closed object OR closed object OR closed object Required. Defines unit for this object. Observe the type, variants and bounds in the Options column.
conversions[].output.unit.[kind=dimensionless].kind "dimensionless" Required. Selects the variant and the properties admitted in this branch.
conversions[].output.unit.[kind=unit].kind "unit" Required. Selects the variant and the properties admitted in this branch.
conversions[].output.unit.[kind=unit].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
conversions[].output.unit.[kind=currency].kind "currency" Required. Selects the variant and the properties admitted in this branch.
conversions[].output.unit.[kind=currency].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
conversions[].rounding "half-even" | "half-up" | "toward-zero" | "away-from-zero" | "floor" | "ceiling"; null Required. Defines rounding for this object. Observe the type, variants and bounds in the Options column.
calculations Array<closed object>; max length 200 Required. Defines calculations for this object. Observe the type, variants and bounds in the Options column.
calculations[].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
calculations[].definitionPaths Array<string; min length 1; max length 600; /^workspace\/[a-z0-9-]+(?:\/surface\/[a-z0-9-]+)*$/u>; min length 1; max length 100 Required. Defines definition Paths for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression recursive reference Required. Declarative condition tree whose references and budgets are validated before evaluation.
calculations[].expression.[kind=literal].kind "literal" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=literal].type closed object Required. Defines type for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=literal].type.format closed object; semantic validation Required. Presentation format compatible with the value type.
calculations[].expression.[kind=literal].type.format.precision integer; ≥ 1; ≤ 1000 Required. Defines precision for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=literal].type.format.scale integer; ≥ 0; ≤ 1000 Required. Defines scale for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=literal].type.unit closed object OR closed object OR closed object Required. Defines unit for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=literal].type.unit.[kind=dimensionless].kind "dimensionless" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=literal].type.unit.[kind=unit].kind "unit" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=literal].type.unit.[kind=unit].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
calculations[].expression.[kind=literal].type.unit.[kind=currency].kind "currency" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=literal].type.unit.[kind=currency].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
calculations[].expression.[kind=literal].value string; max length 1003 Required. Effective value interpreted according to the enclosing type and discriminant.
calculations[].expression.[kind=field].kind "field" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=field].type closed object Required. Defines type for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=field].type.format closed object; semantic validation Required. Presentation format compatible with the value type.
calculations[].expression.[kind=field].type.format.precision integer; ≥ 1; ≤ 1000 Required. Defines precision for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=field].type.format.scale integer; ≥ 0; ≤ 1000 Required. Defines scale for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=field].type.unit closed object OR closed object OR closed object Required. Defines unit for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=field].type.unit.[kind=dimensionless].kind "dimensionless" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=field].type.unit.[kind=unit].kind "unit" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=field].type.unit.[kind=unit].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
calculations[].expression.[kind=field].type.unit.[kind=currency].kind "currency" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=field].type.unit.[kind=currency].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
calculations[].expression.[kind=field].field closed object Required. Defines field for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=field].field.definitionPath string; min length 1; max length 600; /^workspace\/[a-z0-9-]+(?:\/surface\/[a-z0-9-]+)*$/u Required. Exact path of a definition in the Model; this is not a record instance ID.
calculations[].expression.[kind=field].field.fieldKey string; min length 1; max length 120; /^[a-zA-Z][a-zA-Z0-9]*$/u Required. Key of a Field declared on the referenced Surface definition.
calculations[].expression.[kind=calculation].kind "calculation" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=calculation].type closed object Required. Defines type for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=calculation].type.format closed object; semantic validation Required. Presentation format compatible with the value type.
calculations[].expression.[kind=calculation].type.format.precision integer; ≥ 1; ≤ 1000 Required. Defines precision for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=calculation].type.format.scale integer; ≥ 0; ≤ 1000 Required. Defines scale for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=calculation].type.unit closed object OR closed object OR closed object Required. Defines unit for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=calculation].type.unit.[kind=dimensionless].kind "dimensionless" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=calculation].type.unit.[kind=unit].kind "unit" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=calculation].type.unit.[kind=unit].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
calculations[].expression.[kind=calculation].type.unit.[kind=currency].kind "currency" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=calculation].type.unit.[kind=currency].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
calculations[].expression.[kind=calculation].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
calculations[].expression.[kind=arithmetic].kind "arithmetic" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=arithmetic].operator "add" | "subtract" | "multiply" | "divide" Required. Variant comparison or operation; its value must match the expected type.
calculations[].expression.[kind=arithmetic].left recursive reference Required. Defines left for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=arithmetic].left ↻ recursive reference to parent expression Optional. Defines left ↻ for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=arithmetic].right recursive reference Required. Defines right for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=arithmetic].right ↻ recursive reference to parent expression Optional. Defines right ↻ for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=arithmetic].type closed object Required. Defines type for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=arithmetic].type.format closed object; semantic validation Required. Presentation format compatible with the value type.
calculations[].expression.[kind=arithmetic].type.format.precision integer; ≥ 1; ≤ 1000 Required. Defines precision for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=arithmetic].type.format.scale integer; ≥ 0; ≤ 1000 Required. Defines scale for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=arithmetic].type.unit closed object OR closed object OR closed object Required. Defines unit for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=arithmetic].type.unit.[kind=dimensionless].kind "dimensionless" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=arithmetic].type.unit.[kind=unit].kind "unit" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=arithmetic].type.unit.[kind=unit].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
calculations[].expression.[kind=arithmetic].type.unit.[kind=currency].kind "currency" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=arithmetic].type.unit.[kind=currency].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
calculations[].expression.[kind=arithmetic].rounding "half-even" | "half-up" | "toward-zero" | "away-from-zero" | "floor" | "ceiling"; null Required. Defines rounding for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=arithmetic].unitOperation closed object; null Required. Defines unit Operation for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=arithmetic].unitOperation.key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
calculations[].expression.[kind=arithmetic].unitOperation.version string; min length 1; max length 120 Required. Declared content or publication version identifying the applicable interpretation.
calculations[].expression.[kind=round].kind "round" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=round].operand recursive reference Required. Child expression evaluated by the current operator.
calculations[].expression.[kind=round].operand ↻ recursive reference to parent expression Optional. Defines operand ↻ for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=round].type closed object Required. Defines type for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=round].type.format closed object; semantic validation Required. Presentation format compatible with the value type.
calculations[].expression.[kind=round].type.format.precision integer; ≥ 1; ≤ 1000 Required. Defines precision for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=round].type.format.scale integer; ≥ 0; ≤ 1000 Required. Defines scale for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=round].type.unit closed object OR closed object OR closed object Required. Defines unit for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=round].type.unit.[kind=dimensionless].kind "dimensionless" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=round].type.unit.[kind=unit].kind "unit" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=round].type.unit.[kind=unit].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
calculations[].expression.[kind=round].type.unit.[kind=currency].kind "currency" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=round].type.unit.[kind=currency].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
calculations[].expression.[kind=round].rounding "half-even" | "half-up" | "toward-zero" | "away-from-zero" | "floor" | "ceiling" Required. Defines rounding for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=conditional].kind "conditional" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=conditional].condition closed object Required. Defines condition for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=conditional].condition.kind "compare" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=conditional].condition.operator "eq" | "ne" | "lt" | "lte" | "gt" | "gte" Required. Variant comparison or operation; its value must match the expected type.
calculations[].expression.[kind=conditional].condition.left recursive reference Required. Defines left for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=conditional].condition.left ↻ recursive reference to parent expression Optional. Defines left ↻ for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=conditional].condition.right recursive reference Required. Defines right for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=conditional].condition.right ↻ recursive reference to parent expression Optional. Defines right ↻ for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=conditional].whenTrue recursive reference Required. Defines when True for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=conditional].whenTrue ↻ recursive reference to parent expression Optional. Defines when True ↻ for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=conditional].whenFalse recursive reference Required. Defines when False for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=conditional].whenFalse ↻ recursive reference to parent expression Optional. Defines when False ↻ for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=conditional].type closed object Required. Defines type for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=conditional].type.format closed object; semantic validation Required. Presentation format compatible with the value type.
calculations[].expression.[kind=conditional].type.format.precision integer; ≥ 1; ≤ 1000 Required. Defines precision for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=conditional].type.format.scale integer; ≥ 0; ≤ 1000 Required. Defines scale for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=conditional].type.unit closed object OR closed object OR closed object Required. Defines unit for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=conditional].type.unit.[kind=dimensionless].kind "dimensionless" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=conditional].type.unit.[kind=unit].kind "unit" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=conditional].type.unit.[kind=unit].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
calculations[].expression.[kind=conditional].type.unit.[kind=currency].kind "currency" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=conditional].type.unit.[kind=currency].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
calculations[].expression.[kind=conversion].kind "conversion" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=conversion].conversionKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable key reference to the corresponding named declaration; the compiler checks existence and compatibility.
calculations[].expression.[kind=conversion].conversionVersion string; min length 1; max length 120 Required. Defines conversion Version for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=conversion].operand recursive reference Required. Child expression evaluated by the current operator.
calculations[].expression.[kind=conversion].operand ↻ recursive reference to parent expression Optional. Defines operand ↻ for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=conversion].type closed object Required. Defines type for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=conversion].type.format closed object; semantic validation Required. Presentation format compatible with the value type.
calculations[].expression.[kind=conversion].type.format.precision integer; ≥ 1; ≤ 1000 Required. Defines precision for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=conversion].type.format.scale integer; ≥ 0; ≤ 1000 Required. Defines scale for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=conversion].type.unit closed object OR closed object OR closed object Required. Defines unit for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=conversion].type.unit.[kind=dimensionless].kind "dimensionless" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=conversion].type.unit.[kind=unit].kind "unit" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=conversion].type.unit.[kind=unit].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
calculations[].expression.[kind=conversion].type.unit.[kind=currency].kind "currency" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=conversion].type.unit.[kind=currency].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
calculations[].expression.[kind=query-total].kind "query-total" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=query-total].queryKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Reference to a declared Query; scope and authorization remain enforced by the data engine.
calculations[].expression.[kind=query-total].parameters Record<string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u OR string; min length 1; max length 120; /^[a-zA-Z][a-zA-Z0-9]*$/u, closed object OR closed object OR closed object>; semantic validation Required. Named operation or Query parameters and their associated values.
calculations[].expression.[kind=query-total].parameters{key}.[kind=entity-id].kind "entity-id" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=query-total].parameters{key}.[kind=entity-id].definitionPath string; min length 1; max length 600; /^workspace\/[a-z0-9-]+(?:\/surface\/[a-z0-9-]+)*$/u Required. Exact path of a definition in the Model; this is not a record instance ID.
calculations[].expression.[kind=query-total].parameters{key}.[kind=field].kind "field" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=query-total].parameters{key}.[kind=field].field closed object Required. Defines field for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=query-total].parameters{key}.[kind=field].field.definitionPath string; min length 1; max length 600; /^workspace\/[a-z0-9-]+(?:\/surface\/[a-z0-9-]+)*$/u Required. Exact path of a definition in the Model; this is not a record instance ID.
calculations[].expression.[kind=query-total].parameters{key}.[kind=field].field.fieldKey string; min length 1; max length 120; /^[a-zA-Z][a-zA-Z0-9]*$/u Required. Key of a Field declared on the referenced Surface definition.
calculations[].expression.[kind=query-total].parameters{key}.[kind=literal].kind "literal" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=query-total].parameters{key}.[kind=literal].value string; max length 4000 OR number OR true | false OR null Required. Effective value interpreted according to the enclosing type and discriminant.
calculations[].expression.[kind=query-total].operator "count" | "count-distinct" Required. Variant comparison or operation; its value must match the expected type.
calculations[].expression.[kind=query-total].type closed object Required. Defines type for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=query-total].type.format closed object; semantic validation Required. Presentation format compatible with the value type.
calculations[].expression.[kind=query-total].type.format.precision integer; ≥ 1; ≤ 1000 Required. Defines precision for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=query-total].type.format.scale integer; ≥ 0; ≤ 1000 Required. Defines scale for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=query-total].type.unit closed object OR closed object OR closed object Required. Defines unit for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=query-total].type.unit.[kind=dimensionless].kind "dimensionless" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=query-total].type.unit.[kind=unit].kind "unit" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=query-total].type.unit.[kind=unit].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
calculations[].expression.[kind=query-total].type.unit.[kind=currency].kind "currency" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=query-total].type.unit.[kind=currency].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
calculations[].expression.[kind=aggregate].kind "aggregate" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=aggregate].queryKey string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Reference to a declared Query; scope and authorization remain enforced by the data engine.
calculations[].expression.[kind=aggregate].parameters Record<string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u OR string; min length 1; max length 120; /^[a-zA-Z][a-zA-Z0-9]*$/u, closed object OR closed object OR closed object>; semantic validation Required. Named operation or Query parameters and their associated values.
calculations[].expression.[kind=aggregate].parameters{key}.[kind=entity-id].kind "entity-id" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=aggregate].parameters{key}.[kind=entity-id].definitionPath string; min length 1; max length 600; /^workspace\/[a-z0-9-]+(?:\/surface\/[a-z0-9-]+)*$/u Required. Exact path of a definition in the Model; this is not a record instance ID.
calculations[].expression.[kind=aggregate].parameters{key}.[kind=field].kind "field" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=aggregate].parameters{key}.[kind=field].field closed object Required. Defines field for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=aggregate].parameters{key}.[kind=field].field.definitionPath string; min length 1; max length 600; /^workspace\/[a-z0-9-]+(?:\/surface\/[a-z0-9-]+)*$/u Required. Exact path of a definition in the Model; this is not a record instance ID.
calculations[].expression.[kind=aggregate].parameters{key}.[kind=field].field.fieldKey string; min length 1; max length 120; /^[a-zA-Z][a-zA-Z0-9]*$/u Required. Key of a Field declared on the referenced Surface definition.
calculations[].expression.[kind=aggregate].parameters{key}.[kind=literal].kind "literal" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=aggregate].parameters{key}.[kind=literal].value string; max length 4000 OR number OR true | false OR null Required. Effective value interpreted according to the enclosing type and discriminant.
calculations[].expression.[kind=aggregate].field closed object Required. Defines field for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=aggregate].field.definitionPath string; min length 1; max length 600; /^workspace\/[a-z0-9-]+(?:\/surface\/[a-z0-9-]+)*$/u Required. Exact path of a definition in the Model; this is not a record instance ID.
calculations[].expression.[kind=aggregate].field.fieldKey string; min length 1; max length 120; /^[a-zA-Z][a-zA-Z0-9]*$/u Required. Key of a Field declared on the referenced Surface definition.
calculations[].expression.[kind=aggregate].operator "sum" | "min" | "max" | "average" Required. Variant comparison or operation; its value must match the expected type.
calculations[].expression.[kind=aggregate].type closed object Required. Defines type for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=aggregate].type.format closed object; semantic validation Required. Presentation format compatible with the value type.
calculations[].expression.[kind=aggregate].type.format.precision integer; ≥ 1; ≤ 1000 Required. Defines precision for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=aggregate].type.format.scale integer; ≥ 0; ≤ 1000 Required. Defines scale for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=aggregate].type.unit closed object OR closed object OR closed object Required. Defines unit for this object. Observe the type, variants and bounds in the Options column.
calculations[].expression.[kind=aggregate].type.unit.[kind=dimensionless].kind "dimensionless" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=aggregate].type.unit.[kind=unit].kind "unit" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=aggregate].type.unit.[kind=unit].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
calculations[].expression.[kind=aggregate].type.unit.[kind=currency].kind "currency" Required. Selects the variant and the properties admitted in this branch.
calculations[].expression.[kind=aggregate].type.unit.[kind=currency].key string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u Required. Stable semantic identifier used by references; changing it changes identity.
calculations[].expression.[kind=aggregate].rounding "half-even" | "half-up" | "toward-zero" | "away-from-zero" | "floor" | "ceiling"; null Required. Defines rounding for this object. Observe the type, variants and bounds in the Options column.

Reading the contract

A path ending in [] describes each list item; {key} describes each dictionary value. The ↻ marker refers to the same recursive expression. Closed objects reject additional properties. Semantic validation denotes an additional check: matching a type does not make a reference, permission or transition valid. References must resolve in the Model and the current user context.

An older variant cannot accept properties belonging to a newer variant. The compiler checks the version and consistency of the complete Model.

Structural example

This fragment passes the schema for this section. Its business references must be defined in the enclosing Model.

{
  "contract": "WorkspaceExactData@1",
  "units": [
    {
      "kind": "unit",
      "key": "word",
      "label": "mots"
    }
  ],
  "unitOperations": [],
  "conversions": [],
  "calculations": []
}

Complete Model index · Build a Model

Applied examples : Required text and business choices

Company uses required text input; Status uses a declared list of choices.

Configuration

Contract object workspaceExactData. Properties and accepted values.

{
  "contract": "WorkspaceExactData@1",
  "units": [
    {
      "kind": "unit",
      "key": "word",
      "label": "mots"
    }
  ],
  "unitOperations": [],
  "conversions": [],
  "calculations": []
}

Variation and connection

Fragment placed in forms[].fields[]. Properties and accepted values.

{
  "contract": "WorkspaceFormControl@2",
  "repeatable": false,
  "key": "status",
  "label": "Status",
  "input": "choice",
  "binding": {
    "kind": "field",
    "fieldKey": "status"
  },
  "required": true,
  "ruleKeys": [],
  "options": [
    "prospect",
    "active"
  ]
}

UI layout example

The illustrative layout below places this configuration in the Clients/Quotes app. Insert each fragment at the stated location, with Field, Query and Action references matching the Model declarations.

  1. Client identity
  2. Notes and follow-up
  3. Settings
  4. Linked quotes
ILLUSTRATIVE LAYOUTClients / Quotes app
SurfaceClients / North StudioExample
workspaceExactDataworkspaceExactData
Clients
MODEL CONTEXTNorth StudioDeclarative configuration
units
1 item
unitOperations
0 items
conversions
0 items
calculations
0 items

Values above follow the configuration fragment; references resolve in the complete Model.

Search for a concept, field or action.Esc