---
title: "surfaceWorkExperience"
url: https://developers.dagio.ai/reference/surface-work-experience/
---

# surfaceWorkExperience

   
                              
                                                                                
                                         
                  
           
          
   

This reference describes the full structure of `surfaceWorkExperience`. 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` | `"SurfaceWorkExperience@1"` | **Required.** Exact discriminant of this contract variant. Match the literal value shown. |
| `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. |
| `workDefinitionPaths` | `Array<string; min length 1; max length 600; /^workspace\/[a-z0-9-]+(?:\/surface\/[a-z0-9-]+)+$/u>; min length 1; max length 100` | **Required.** Exact path of the relevant definition type; each reference must exist in the Model and respect declared scope. |
| `header` | `closed object` | **Required.** Defines header for this object. Observe the type, variants and bounds in the Options column. |
| `header.purpose` | `closed object; null` | **Required.** Defines purpose for this object. Observe the type, variants and bounds in the Options column. |
| `header.purpose.scope` | `"rootWork" \| "selectedStage" \| "retainedTarget"` | **Required.** Defines scope for this object. Observe the type, variants and bounds in the Options column. |
| `header.purpose.source` | `closed object OR closed object` | **Required.** Defines source for this object. Observe the type, variants and bounds in the Options column. |
| `header.purpose.source.[kind=native].kind` | `"native"` | **Required.** Selects the variant and the properties admitted in this branch. |
| `header.purpose.source.[kind=native].property` | `"title" \| "description" \| "createdAt" \| "updatedAt"` | **Required.** Recognized native property name; this selector does not allow arbitrary access. |
| `header.purpose.source.[kind=field].kind` | `"field"` | **Required.** Selects the variant and the properties admitted in this branch. |
| `header.purpose.source.[kind=field].fieldPath` | `string; min length 8; max length 127; /^fields\/[a-zA-Z][a-zA-Z0-9]*$/u` | **Required.** Semantic Field selector, using the fields/ prefix. |
| `header.purpose.valueLabels` | `Array<closed object>; max length 100` | **Required.** Mappings from stable values to user-facing labels. |
| `header.purpose.valueLabels[].value` | `string; max length 4000 OR number OR true \| false` | **Required.** Effective value interpreted according to the enclosing type and discriminant. |
| `header.purpose.valueLabels[].label` | `string; min length 1; max length 4000` | **Required.** Human-readable label displayed in the interface. |
| `header.status` | `closed object; null` | **Required.** Defines status for this object. Observe the type, variants and bounds in the Options column. |
| `header.status.scope` | `"rootWork" \| "selectedStage" \| "retainedTarget"` | **Required.** Defines scope for this object. Observe the type, variants and bounds in the Options column. |
| `header.status.source` | `closed object OR closed object` | **Required.** Defines source for this object. Observe the type, variants and bounds in the Options column. |
| `header.status.source.[kind=native].kind` | `"native"` | **Required.** Selects the variant and the properties admitted in this branch. |
| `header.status.source.[kind=native].property` | `"title" \| "description" \| "createdAt" \| "updatedAt"` | **Required.** Recognized native property name; this selector does not allow arbitrary access. |
| `header.status.source.[kind=field].kind` | `"field"` | **Required.** Selects the variant and the properties admitted in this branch. |
| `header.status.source.[kind=field].fieldPath` | `string; min length 8; max length 127; /^fields\/[a-zA-Z][a-zA-Z0-9]*$/u` | **Required.** Semantic Field selector, using the fields/ prefix. |
| `header.status.valueLabels` | `Array<closed object>; max length 100` | **Required.** Mappings from stable values to user-facing labels. |
| `header.status.valueLabels[].value` | `string; max length 4000 OR number OR true \| false` | **Required.** Effective value interpreted according to the enclosing type and discriminant. |
| `header.status.valueLabels[].label` | `string; min length 1; max length 4000` | **Required.** Human-readable label displayed in the interface. |
| `header.facts` | `Array<closed object>; max length 20` | **Required.** Defines facts for this object. Observe the type, variants and bounds in the Options column. |
| `header.facts[].scope` | `"rootWork" \| "selectedStage" \| "retainedTarget"` | **Required.** Defines scope for this object. Observe the type, variants and bounds in the Options column. |
| `header.facts[].source` | `closed object OR closed object` | **Required.** Defines source for this object. Observe the type, variants and bounds in the Options column. |
| `header.facts[].source.[kind=native].kind` | `"native"` | **Required.** Selects the variant and the properties admitted in this branch. |
| `header.facts[].source.[kind=native].property` | `"title" \| "description" \| "createdAt" \| "updatedAt"` | **Required.** Recognized native property name; this selector does not allow arbitrary access. |
| `header.facts[].source.[kind=field].kind` | `"field"` | **Required.** Selects the variant and the properties admitted in this branch. |
| `header.facts[].source.[kind=field].fieldPath` | `string; min length 8; max length 127; /^fields\/[a-zA-Z][a-zA-Z0-9]*$/u` | **Required.** Semantic Field selector, using the fields/ prefix. |
| `header.facts[].valueLabels` | `Array<closed object>; max length 100` | **Required.** Mappings from stable values to user-facing labels. |
| `header.facts[].valueLabels[].value` | `string; max length 4000 OR number OR true \| false` | **Required.** Effective value interpreted according to the enclosing type and discriminant. |
| `header.facts[].valueLabels[].label` | `string; min length 1; max length 4000` | **Required.** Human-readable label displayed in the interface. |
| `header.facts[].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. |
| `header.facts[].label` | `string; min length 1; max length 4000` | **Required.** Human-readable label displayed in the interface. |
| `header.criteria` | `closed object; null` | **Required.** Defines criteria for this object. Observe the type, variants and bounds in the Options column. |
| `header.criteria.sectionKey` | `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. |
| `header.criteria.bindingKey` | `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. |
| `stageDefinitionPaths` | `Array<string; min length 1; max length 600; /^workspace\/[a-z0-9-]+(?:\/surface\/[a-z0-9-]+)+$/u>; min length 1; max length 100` | **Required.** Exact path of the relevant definition type; each reference must exist in the Model and respect declared scope. |
| `stageSource` | `closed object OR closed object` | **Required.** Defines stage Source for this object. Observe the type, variants and bounds in the Options column. |
| `stageSource.[kind=flow].kind` | `"flow"` | **Required.** Selects the variant and the properties admitted in this branch. |
| `stageSource.[kind=flow].blueprintKeys` | `Array<string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u>; min length 1; max length 100` | **Required.** Stable key reference to the corresponding named declaration; the compiler checks existence and compatibility. |
| `stageSource.[kind=query].kind` | `"query"` | **Required.** Selects the variant and the properties admitted in this branch. |
| `stageSource.[kind=query].queryBindingKey` | `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. |
| `retainedTargetQueryBindingKey` | `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. |
| `queryBindings` | `Array<closed object>; min length 1; max length 100` | **Required.** Bindings from named Queries to parameter values supplied by context. |
| `queryBindings[].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. |
| `queryBindings[].scope` | `"rootWork" \| "selectedStage" \| "retainedTarget"` | **Required.** Defines scope for this object. Observe the type, variants and bounds in the Options column. |
| `queryBindings[].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. |
| `queryBindings[].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. |
| `queryBindings[].parameters{key}.[kind=entity-id].kind` | `"entity-id"` | **Required.** Selects the variant and the properties admitted in this branch. |
| `queryBindings[].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. |
| `queryBindings[].parameters{key}.[kind=field].kind` | `"field"` | **Required.** Selects the variant and the properties admitted in this branch. |
| `queryBindings[].parameters{key}.[kind=field].field` | `closed object` | **Required.** Defines field for this object. Observe the type, variants and bounds in the Options column. |
| `queryBindings[].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. |
| `queryBindings[].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. |
| `queryBindings[].parameters{key}.[kind=literal].kind` | `"literal"` | **Required.** Selects the variant and the properties admitted in this branch. |
| `queryBindings[].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. |
| `bindings` | `Array<closed object OR closed object OR closed object OR closed object OR closed object OR closed object OR closed object>; min length 1; max length 100` | **Required.** Defines bindings for this object. Observe the type, variants and bounds in the Options column. |
| `bindings[].[kind=query-view].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. |
| `bindings[].[kind=query-view].kind` | `"query-view"` | **Required.** Selects the variant and the properties admitted in this branch. |
| `bindings[].[kind=query-view].scope` | `"rootWork" \| "selectedStage" \| "retainedTarget"` | **Required.** Defines scope for this object. Observe the type, variants and bounds in the Options column. |
| `bindings[].[kind=query-view].queryBindingKey` | `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. |
| `bindings[].[kind=query-view].viewKey` | `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. |
| `bindings[].[kind=native-document].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. |
| `bindings[].[kind=native-document].kind` | `"native-document"` | **Required.** Selects the variant and the properties admitted in this branch. |
| `bindings[].[kind=native-document].scope` | `"retainedTarget"` | **Required.** Defines scope for this object. Observe the type, variants and bounds in the Options column. |
| `bindings[].[kind=sources].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. |
| `bindings[].[kind=sources].kind` | `"sources"` | **Required.** Selects the variant and the properties admitted in this branch. |
| `bindings[].[kind=sources].scope` | `"retainedTarget"` | **Required.** Defines scope for this object. Observe the type, variants and bounds in the Options column. |
| `bindings[].[kind=sources].viewKey` | `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. |
| `bindings[].[kind=flow-inspection].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. |
| `bindings[].[kind=flow-inspection].kind` | `"flow-inspection"` | **Required.** Selects the variant and the properties admitted in this branch. |
| `bindings[].[kind=flow-inspection].scope` | `"rootWork"` | **Required.** Defines scope for this object. Observe the type, variants and bounds in the Options column. |
| `bindings[].[kind=consolidation].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. |
| `bindings[].[kind=consolidation].kind` | `"consolidation"` | **Required.** Selects the variant and the properties admitted in this branch. |
| `bindings[].[kind=consolidation].scope` | `"selectedStage"` | **Required.** Defines scope for this object. Observe the type, variants and bounds in the Options column. |
| `bindings[].[kind=consolidation].profileKey` | `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. |
| `bindings[].[kind=action].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. |
| `bindings[].[kind=action].kind` | `"action"` | **Required.** Selects the variant and the properties admitted in this branch. |
| `bindings[].[kind=action].scope` | `"rootWork" \| "selectedStage" \| "retainedTarget"` | **Required.** Defines scope for this object. Observe the type, variants and bounds in the Options column. |
| `bindings[].[kind=action].actionKey` | `string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u` | **Required.** Reference to a declared Action; rendering does not execute it. |
| `bindings[].[kind=criteria].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. |
| `bindings[].[kind=criteria].kind` | `"criteria"` | **Required.** Selects the variant and the properties admitted in this branch. |
| `bindings[].[kind=criteria].scope` | `"rootWork" \| "selectedStage" \| "retainedTarget"` | **Required.** Defines scope for this object. Observe the type, variants and bounds in the Options column. |
| `bindings[].[kind=criteria].queryBindingKey` | `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. |
| `bindings[].[kind=criteria].lifecycleKey` | `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. |
| `bindings[].[kind=criteria].stateValue` | `string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u` | **Required.** Defines state Value for this object. Observe the type, variants and bounds in the Options column. |
| `sections` | `Array<closed object>; min length 1; max length 20` | **Required.** Declared sections in reading or rendering order. |
| `sections[].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. |
| `sections[].label` | `string; min length 1; max length 4000` | **Required.** Human-readable label displayed in the interface. |
| `sections[].bindingKeys` | `Array<string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u>; min length 1; max length 100` | **Required.** Stable key reference to the corresponding named declaration; the compiler checks existence and compatibility. |
| `defaultSectionKey` | `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. |

## 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.

```json
{
  "contract": "SurfaceWorkExperience@1",
  "key": "novel-flow-work",
  "workDefinitionPaths": [
    "workspace/workshop/surface/work"
  ],
  "header": {
    "purpose": {
      "scope": "rootWork",
      "source": {
        "kind": "field",
        "fieldPath": "fields/objective"
      },
      "valueLabels": []
    },
    "status": {
      "scope": "rootWork",
      "source": {
        "kind": "field",
        "fieldPath": "fields/status"
      },
      "valueLabels": []
    },
    "facts": [
      {
        "scope": "rootWork",
        "source": {
          "kind": "field",
          "fieldPath": "fields/expectedResult"
        },
        "valueLabels": [],
        "key": "expected-result",
        "label": "Résultat attendu"
      },
      {
        "scope": "retainedTarget",
        "source": {
          "kind": "native",
          "property": "title"
        },
        "valueLabels": [],
        "key": "destination",
        "label": "Cible"
      }
    ],
    "criteria": {
      "sectionKey": "requests",
      "bindingKey": "criteria"
    }
  },
  "stageDefinitionPaths": [
    "workspace/workshop/surface/work/surface/step"
  ],
  "stageSource": {
    "kind": "flow",
    "blueprintKeys": [
      "design-character",
      "design-location",
      "prepare-chapter",
      "check-consistency",
      "revise-chapter"
    ]
  },
  "retainedTargetQueryBindingKey": "destination",
  "queryBindings": [
    {
      "key": "destination",
      "scope": "rootWork",
      "queryKey": "work-destination",
      "parameters": {
        "workId": {
          "kind": "entity-id",
          "definitionPath": "workspace/workshop/surface/work"
        }
      }
    },
    {
      "key": "requests",
      "scope": "rootWork",
      "queryKey": "work-requests",
      "parameters": {
        "workId": {
          "kind": "entity-id",
          "definitionPath": "workspace/workshop/surface/work"
        }
      }
    },
    {
      "key": "explorations",
      "scope": "rootWork",
      "queryKey": "work-explorations",
      "parameters": {
        "workId": {
          "kind": "entity-id",
          "definitionPath": "workspace/workshop/surface/work"
        }
      }
    },
    {
      "key": "relations",
      "scope": "rootWork",
      "queryKey": "work-relations",
      "parameters": {
        "workId": {
          "kind": "entity-id",
          "definitionPath": "workspace/workshop/surface/work"
        }
      }
    },
    {
      "key": "criteria",
      "scope": "rootWork",
      "queryKey": "work-criteria",
      "parameters": {
        "workId": {
          "kind": "entity-id",
          "definitionPath": "workspace/workshop/surface/work"
        }
      }
    }
  ],
  "bindings": [
    {
      "key": "explorations",
      "kind": "query-view",
      "scope": "rootWork",
      "queryBindingKey": "explorations",
      "viewKey": "work-explorations-view"
    },
    {
      "key": "requests",
      "kind": "query-view",
      "scope": "rootWork",
      "queryBindingKey": "requests",
      "viewKey": "work-requests-view"
    },
    {
      "key": "target-content",
      "kind": "native-document",
      "scope": "retainedTarget"
    },
    {
      "key": "target-sources",
      "kind": "sources",
      "scope": "retainedTarget",
      "viewKey": "consolidation-sources"
    },
    {
      "key": "flow-occurrences",
      "kind": "flow-inspection",
      "scope": "rootWork"
    },
    {
      "key": "selection",
      "kind": "consolidation",
      "scope": "selectedStage",
      "profileKey": "step-selection"
    },
    {
      "key": "relations",
      "kind": "query-view",
      "scope": "rootWork",
      "queryBindingKey": "relations",
      "viewKey": "work-target-relations-view"
    },
    {
      "key": "criteria",
      "kind": "criteria",
      "scope": "rootWork",
      "queryBindingKey": "criteria",
      "lifecycleKey": "work-criterion",
      "stateValue": "accepted"
    }
  ],
  "sections": [
    {
      "key": "explorations",
      "label": "Explorations et recherches",
      "bindingKeys": [
        "explorations",
        "selection"
      ]
    },
    {
      "key": "retained-target",
      "label": "Fiche ou lieu retenu",
      "bindingKeys": [
        "target-content"
      ]
    },
    {
      "key": "requests",
      "label": "Demandes",
      "bindingKeys": [
        "flow-occurrences",
        "requests",
        "criteria"
      ]
    },
    {
      "key": "sources",
      "label": "Sources et relations",
      "bindingKeys": [
        "target-sources",
        "relations"
      ]
    }
  ],
  "defaultSectionKey": "explorations"
}
```

## Related references

[Complete Model index](https://developers.dagio.ai/reference/) · [Build a Model](https://developers.dagio.ai/models/)

<!-- surface-examples:start -->

## Applied examples : Compose a record and its relations

Two declared Stacks hold main content then relations without extra frames. The preset selects the right panel’s width.

### Configuration

Contract object `surfaceWorkExperience`. [Properties and accepted values](https://developers.dagio.ai/reference/surface-work-experience/).

```json
{
  "contract": "SurfaceWorkExperience@1",
  "key": "novel-flow-work",
  "workDefinitionPaths": [
    "workspace/workshop/surface/work"
  ],
  "header": {
    "purpose": {
      "scope": "rootWork",
      "source": {
        "kind": "field",
        "fieldPath": "fields/objective"
      },
      "valueLabels": []
    },
    "status": {
      "scope": "rootWork",
      "source": {
        "kind": "field",
        "fieldPath": "fields/status"
      },
      "valueLabels": []
    },
    "facts": [
      {
        "scope": "rootWork",
        "source": {
          "kind": "field",
          "fieldPath": "fields/expectedResult"
        },
        "valueLabels": [],
        "key": "expected-result",
        "label": "Résultat attendu"
      },
      {
        "scope": "retainedTarget",
        "source": {
          "kind": "native",
          "property": "title"
        },
        "valueLabels": [],
        "key": "destination",
        "label": "Cible"
      }
    ],
    "criteria": {
      "sectionKey": "requests",
      "bindingKey": "criteria"
    }
  },
  "stageDefinitionPaths": [
    "workspace/workshop/surface/work/surface/step"
  ],
  "stageSource": {
    "kind": "flow",
    "blueprintKeys": [
      "design-character",
      "design-location",
      "prepare-chapter",
      "check-consistency",
      "revise-chapter"
    ]
  },
  "retainedTargetQueryBindingKey": "destination",
  "queryBindings": [
    {
      "key": "destination",
      "scope": "rootWork",
      "queryKey": "work-destination",
      "parameters": {
        "workId": {
          "kind": "entity-id",
          "definitionPath": "workspace/workshop/surface/work"
        }
      }
    },
    {
      "key": "requests",
      "scope": "rootWork",
      "queryKey": "work-requests",
      "parameters": {
        "workId": {
          "kind": "entity-id",
          "definitionPath": "workspace/workshop/surface/work"
        }
      }
    },
    {
      "key": "explorations",
      "scope": "rootWork",
      "queryKey": "work-explorations",
      "parameters": {
        "workId": {
          "kind": "entity-id",
          "definitionPath": "workspace/workshop/surface/work"
        }
      }
    },
    {
      "key": "relations",
      "scope": "rootWork",
      "queryKey": "work-relations",
      "parameters": {
        "workId": {
          "kind": "entity-id",
          "definitionPath": "workspace/workshop/surface/work"
        }
      }
    },
    {
      "key": "criteria",
      "scope": "rootWork",
      "queryKey": "work-criteria",
      "parameters": {
        "workId": {
          "kind": "entity-id",
          "definitionPath": "workspace/workshop/surface/work"
        }
      }
    }
  ],
  "bindings": [
    {
      "key": "explorations",
      "kind": "query-view",
      "scope": "rootWork",
      "queryBindingKey": "explorations",
      "viewKey": "work-explorations-view"
    },
    {
      "key": "requests",
      "kind": "query-view",
      "scope": "rootWork",
      "queryBindingKey": "requests",
      "viewKey": "work-requests-view"
    },
    {
      "key": "target-content",
      "kind": "native-document",
      "scope": "retainedTarget"
    },
    {
      "key": "target-sources",
      "kind": "sources",
      "scope": "retainedTarget",
      "viewKey": "consolidation-sources"
    },
    {
      "key": "flow-occurrences",
      "kind": "flow-inspection",
      "scope": "rootWork"
    },
    {
      "key": "selection",
      "kind": "consolidation",
      "scope": "selectedStage",
      "profileKey": "step-selection"
    },
    {
      "key": "relations",
      "kind": "query-view",
      "scope": "rootWork",
      "queryBindingKey": "relations",
      "viewKey": "work-target-relations-view"
    },
    {
      "key": "criteria",
      "kind": "criteria",
      "scope": "rootWork",
      "queryBindingKey": "criteria",
      "lifecycleKey": "work-criterion",
      "stateValue": "accepted"
    }
  ],
  "sections": [
    {
      "key": "explorations",
      "label": "Explorations et recherches",
      "bindingKeys": [
        "explorations",
        "selection"
      ]
    },
    {
      "key": "retained-target",
      "label": "Fiche ou lieu retenu",
      "bindingKeys": [
        "target-content"
      ]
    },
    {
      "key": "requests",
      "label": "Demandes",
      "bindingKeys": [
        "flow-occurrences",
        "requests",
        "criteria"
      ]
    },
    {
      "key": "sources",
      "label": "Sources et relations",
      "bindingKeys": [
        "target-sources",
        "relations"
      ]
    }
  ],
  "defaultSectionKey": "explorations"
}
```

### Variation and connection

Component properties `RecordLayout.props`. [Properties and accepted values](https://developers.dagio.ai/surface-components/#recordlayout).

```json
{
  "asideWidth": "compact"
}
```

### 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

<!-- surface-examples:end -->
