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

# surfaceWorkExperience

   
                              
                                                                                
                                         
                  
           
          
   

Cette référence décrit la structure complète de `surfaceWorkExperience`. Chaque chemin représente une propriété, y compris les objets imbriqués, les éléments de listes et les branches conditionnelles. Une branche identifiée par `kind`, `contract` ou `mode` n’admet que ses propres propriétés.

## Structure et valeurs

| Champ | Options / valeurs attendues | Description |
| --- | --- | --- |
| `contract` | `"SurfaceWorkExperience@1"` | **Requis.** Discriminant exact de cette variante du contrat. Respecter la valeur littérale indiquée. |
| `key` | `string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u` | **Requis.** Identifiant sémantique stable utilisé par les références; le modifier change l’identité. |
| `workDefinitionPaths` | `Array<string; min length 1; max length 600; /^workspace\/[a-z0-9-]+(?:\/surface\/[a-z0-9-]+)+$/u>; min length 1; max length 100` | **Requis.** Chemin exact du type de définition concerné; chaque référence doit exister dans le Model et respecter le périmètre déclaré. |
| `header` | `closed object` | **Requis.** Définit « header » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `header.purpose` | `closed object; null` | **Requis.** Définit « purpose » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `header.purpose.scope` | `"rootWork" \| "selectedStage" \| "retainedTarget"` | **Requis.** Définit « scope » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `header.purpose.source` | `closed object OR closed object` | **Requis.** Définit « source » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `header.purpose.source.[kind=native].kind` | `"native"` | **Requis.** Sélectionne la variante et les propriétés admises dans cette branche. |
| `header.purpose.source.[kind=native].property` | `"title" \| "description" \| "createdAt" \| "updatedAt"` | **Requis.** Nom d’une propriété native reconnue; ce sélecteur ne permet pas un accès arbitraire. |
| `header.purpose.source.[kind=field].kind` | `"field"` | **Requis.** Sélectionne la variante et les propriétés admises dans cette branche. |
| `header.purpose.source.[kind=field].fieldPath` | `string; min length 8; max length 127; /^fields\/[a-zA-Z][a-zA-Z0-9]*$/u` | **Requis.** Sélecteur sémantique de Field utilisant le préfixe fields/. |
| `header.purpose.valueLabels` | `Array<closed object>; max length 100` | **Requis.** Correspondances entre valeurs stables et libellés destinés à l’usager. |
| `header.purpose.valueLabels[].value` | `string; max length 4000 OR number OR true \| false` | **Requis.** Valeur effective interprétée selon le type et le discriminant du contexte parent. |
| `header.purpose.valueLabels[].label` | `string; min length 1; max length 4000` | **Requis.** Libellé destiné à l’usager dans l’interface. |
| `header.status` | `closed object; null` | **Requis.** Définit « status » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `header.status.scope` | `"rootWork" \| "selectedStage" \| "retainedTarget"` | **Requis.** Définit « scope » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `header.status.source` | `closed object OR closed object` | **Requis.** Définit « source » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `header.status.source.[kind=native].kind` | `"native"` | **Requis.** Sélectionne la variante et les propriétés admises dans cette branche. |
| `header.status.source.[kind=native].property` | `"title" \| "description" \| "createdAt" \| "updatedAt"` | **Requis.** Nom d’une propriété native reconnue; ce sélecteur ne permet pas un accès arbitraire. |
| `header.status.source.[kind=field].kind` | `"field"` | **Requis.** Sélectionne la variante et les propriétés admises dans cette branche. |
| `header.status.source.[kind=field].fieldPath` | `string; min length 8; max length 127; /^fields\/[a-zA-Z][a-zA-Z0-9]*$/u` | **Requis.** Sélecteur sémantique de Field utilisant le préfixe fields/. |
| `header.status.valueLabels` | `Array<closed object>; max length 100` | **Requis.** Correspondances entre valeurs stables et libellés destinés à l’usager. |
| `header.status.valueLabels[].value` | `string; max length 4000 OR number OR true \| false` | **Requis.** Valeur effective interprétée selon le type et le discriminant du contexte parent. |
| `header.status.valueLabels[].label` | `string; min length 1; max length 4000` | **Requis.** Libellé destiné à l’usager dans l’interface. |
| `header.facts` | `Array<closed object>; max length 20` | **Requis.** Définit « facts » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `header.facts[].scope` | `"rootWork" \| "selectedStage" \| "retainedTarget"` | **Requis.** Définit « scope » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `header.facts[].source` | `closed object OR closed object` | **Requis.** Définit « source » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `header.facts[].source.[kind=native].kind` | `"native"` | **Requis.** Sélectionne la variante et les propriétés admises dans cette branche. |
| `header.facts[].source.[kind=native].property` | `"title" \| "description" \| "createdAt" \| "updatedAt"` | **Requis.** Nom d’une propriété native reconnue; ce sélecteur ne permet pas un accès arbitraire. |
| `header.facts[].source.[kind=field].kind` | `"field"` | **Requis.** Sélectionne la variante et les propriétés admises dans cette branche. |
| `header.facts[].source.[kind=field].fieldPath` | `string; min length 8; max length 127; /^fields\/[a-zA-Z][a-zA-Z0-9]*$/u` | **Requis.** Sélecteur sémantique de Field utilisant le préfixe fields/. |
| `header.facts[].valueLabels` | `Array<closed object>; max length 100` | **Requis.** Correspondances entre valeurs stables et libellés destinés à l’usager. |
| `header.facts[].valueLabels[].value` | `string; max length 4000 OR number OR true \| false` | **Requis.** Valeur effective interprétée selon le type et le discriminant du contexte parent. |
| `header.facts[].valueLabels[].label` | `string; min length 1; max length 4000` | **Requis.** Libellé destiné à l’usager dans l’interface. |
| `header.facts[].key` | `string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u` | **Requis.** Identifiant sémantique stable utilisé par les références; le modifier change l’identité. |
| `header.facts[].label` | `string; min length 1; max length 4000` | **Requis.** Libellé destiné à l’usager dans l’interface. |
| `header.criteria` | `closed object; null` | **Requis.** Définit « criteria » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `header.criteria.sectionKey` | `string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u` | **Requis.** Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité. |
| `header.criteria.bindingKey` | `string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u` | **Requis.** Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité. |
| `stageDefinitionPaths` | `Array<string; min length 1; max length 600; /^workspace\/[a-z0-9-]+(?:\/surface\/[a-z0-9-]+)+$/u>; min length 1; max length 100` | **Requis.** Chemin exact du type de définition concerné; chaque référence doit exister dans le Model et respecter le périmètre déclaré. |
| `stageSource` | `closed object OR closed object` | **Requis.** Définit « stage Source » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `stageSource.[kind=flow].kind` | `"flow"` | **Requis.** Sélectionne la variante et les propriétés admises dans cette branche. |
| `stageSource.[kind=flow].blueprintKeys` | `Array<string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u>; min length 1; max length 100` | **Requis.** Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité. |
| `stageSource.[kind=query].kind` | `"query"` | **Requis.** Sélectionne la variante et les propriétés admises dans cette branche. |
| `stageSource.[kind=query].queryBindingKey` | `string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u` | **Requis.** Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité. |
| `retainedTargetQueryBindingKey` | `string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u` | **Requis.** Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité. |
| `queryBindings` | `Array<closed object>; min length 1; max length 100` | **Requis.** Associations de Queries nommées aux valeurs de paramètres issues du contexte. |
| `queryBindings[].key` | `string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u` | **Requis.** Identifiant sémantique stable utilisé par les références; le modifier change l’identité. |
| `queryBindings[].scope` | `"rootWork" \| "selectedStage" \| "retainedTarget"` | **Requis.** Définit « scope » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `queryBindings[].queryKey` | `string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u` | **Requis.** Référence à une Query déclarée; le moteur de données applique le périmètre et les droits. |
| `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` | **Requis.** Paramètres nommés de l’opération ou de la Query et valeurs associées. |
| `queryBindings[].parameters{key}.[kind=entity-id].kind` | `"entity-id"` | **Requis.** Sélectionne la variante et les propriétés admises dans cette branche. |
| `queryBindings[].parameters{key}.[kind=entity-id].definitionPath` | `string; min length 1; max length 600; /^workspace\/[a-z0-9-]+(?:\/surface\/[a-z0-9-]+)*$/u` | **Requis.** Chemin exact d’une définition du Model; il ne désigne pas l’ID d’une fiche. |
| `queryBindings[].parameters{key}.[kind=field].kind` | `"field"` | **Requis.** Sélectionne la variante et les propriétés admises dans cette branche. |
| `queryBindings[].parameters{key}.[kind=field].field` | `closed object` | **Requis.** Définit « field » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `queryBindings[].parameters{key}.[kind=field].field.definitionPath` | `string; min length 1; max length 600; /^workspace\/[a-z0-9-]+(?:\/surface\/[a-z0-9-]+)*$/u` | **Requis.** Chemin exact d’une définition du Model; il ne désigne pas l’ID d’une fiche. |
| `queryBindings[].parameters{key}.[kind=field].field.fieldKey` | `string; min length 1; max length 120; /^[a-zA-Z][a-zA-Z0-9]*$/u` | **Requis.** Clé d’un Field déclaré sur la définition de Surface référencée. |
| `queryBindings[].parameters{key}.[kind=literal].kind` | `"literal"` | **Requis.** Sélectionne la variante et les propriétés admises dans cette branche. |
| `queryBindings[].parameters{key}.[kind=literal].value` | `string; max length 4000 OR number OR true \| false OR null` | **Requis.** Valeur effective interprétée selon le type et le discriminant du contexte parent. |
| `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` | **Requis.** Définit « bindings » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `bindings[].[kind=query-view].key` | `string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u` | **Requis.** Identifiant sémantique stable utilisé par les références; le modifier change l’identité. |
| `bindings[].[kind=query-view].kind` | `"query-view"` | **Requis.** Sélectionne la variante et les propriétés admises dans cette branche. |
| `bindings[].[kind=query-view].scope` | `"rootWork" \| "selectedStage" \| "retainedTarget"` | **Requis.** Définit « scope » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `bindings[].[kind=query-view].queryBindingKey` | `string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u` | **Requis.** Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité. |
| `bindings[].[kind=query-view].viewKey` | `string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u` | **Requis.** Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité. |
| `bindings[].[kind=native-document].key` | `string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u` | **Requis.** Identifiant sémantique stable utilisé par les références; le modifier change l’identité. |
| `bindings[].[kind=native-document].kind` | `"native-document"` | **Requis.** Sélectionne la variante et les propriétés admises dans cette branche. |
| `bindings[].[kind=native-document].scope` | `"retainedTarget"` | **Requis.** Définit « scope » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `bindings[].[kind=sources].key` | `string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u` | **Requis.** Identifiant sémantique stable utilisé par les références; le modifier change l’identité. |
| `bindings[].[kind=sources].kind` | `"sources"` | **Requis.** Sélectionne la variante et les propriétés admises dans cette branche. |
| `bindings[].[kind=sources].scope` | `"retainedTarget"` | **Requis.** Définit « scope » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `bindings[].[kind=sources].viewKey` | `string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u` | **Requis.** Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité. |
| `bindings[].[kind=flow-inspection].key` | `string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u` | **Requis.** Identifiant sémantique stable utilisé par les références; le modifier change l’identité. |
| `bindings[].[kind=flow-inspection].kind` | `"flow-inspection"` | **Requis.** Sélectionne la variante et les propriétés admises dans cette branche. |
| `bindings[].[kind=flow-inspection].scope` | `"rootWork"` | **Requis.** Définit « scope » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `bindings[].[kind=consolidation].key` | `string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u` | **Requis.** Identifiant sémantique stable utilisé par les références; le modifier change l’identité. |
| `bindings[].[kind=consolidation].kind` | `"consolidation"` | **Requis.** Sélectionne la variante et les propriétés admises dans cette branche. |
| `bindings[].[kind=consolidation].scope` | `"selectedStage"` | **Requis.** Définit « scope » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `bindings[].[kind=consolidation].profileKey` | `string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u` | **Requis.** Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité. |
| `bindings[].[kind=action].key` | `string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u` | **Requis.** Identifiant sémantique stable utilisé par les références; le modifier change l’identité. |
| `bindings[].[kind=action].kind` | `"action"` | **Requis.** Sélectionne la variante et les propriétés admises dans cette branche. |
| `bindings[].[kind=action].scope` | `"rootWork" \| "selectedStage" \| "retainedTarget"` | **Requis.** Définit « scope » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `bindings[].[kind=action].actionKey` | `string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u` | **Requis.** Référence à une Action déclarée; son affichage ne l’exécute pas. |
| `bindings[].[kind=criteria].key` | `string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u` | **Requis.** Identifiant sémantique stable utilisé par les références; le modifier change l’identité. |
| `bindings[].[kind=criteria].kind` | `"criteria"` | **Requis.** Sélectionne la variante et les propriétés admises dans cette branche. |
| `bindings[].[kind=criteria].scope` | `"rootWork" \| "selectedStage" \| "retainedTarget"` | **Requis.** Définit « scope » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `bindings[].[kind=criteria].queryBindingKey` | `string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u` | **Requis.** Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité. |
| `bindings[].[kind=criteria].lifecycleKey` | `string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u` | **Requis.** Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité. |
| `bindings[].[kind=criteria].stateValue` | `string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u` | **Requis.** Définit « state Value » pour cet objet. Respecter le type, les variantes et les limites de la colonne Options. |
| `sections` | `Array<closed object>; min length 1; max length 20` | **Requis.** Sections déclarées dans l’ordre de lecture ou de rendu. |
| `sections[].key` | `string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u` | **Requis.** Identifiant sémantique stable utilisé par les références; le modifier change l’identité. |
| `sections[].label` | `string; min length 1; max length 4000` | **Requis.** Libellé destiné à l’usager dans l’interface. |
| `sections[].bindingKeys` | `Array<string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u>; min length 1; max length 100` | **Requis.** Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité. |
| `defaultSectionKey` | `string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u` | **Requis.** Référence par clé stable à la déclaration nommée correspondante; le compilateur contrôle son existence et sa compatibilité. |

## Règles de lecture

Les chemins suffixés par `[]` décrivent chaque élément d’une liste; `{key}` décrit chaque valeur d’un dictionnaire. Le symbole `↻` renvoie à la même expression récursive. Un objet fermé refuse les propriétés supplémentaires. Les mentions de validation sémantique signalent un contrôle complémentaire : la conformité des types ne suffit pas à rendre une référence, une permission ou une transition valide. Les références doivent être résolues dans le Model et le contexte de l’usager.

La présence d’une ancienne variante ne permet pas d’y ajouter une propriété d’une variante plus récente. Le compilateur contrôle la version et la cohérence du Model complet.

## Exemple de structure

Ce fragment respecte le schéma de cette section. Ses références métier doivent être définies dans le Model qui l’utilise.

```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"
}
```

## Références associées

[Index complet du Model](https://developers.dagio.ai/fr/reference/) · [Construire un Model](https://developers.dagio.ai/fr/models/)

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

## Exemples appliqués : Composer la fiche et ses relations

Deux Stack déclarés portent le contenu principal puis les relations, sans cadres supplémentaires. Le preset choisit la largeur du panneau droit.

### Configuration

Objet du contrat `surfaceWorkExperience`. [Propriétés et valeurs admises](https://developers.dagio.ai/fr/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"
}
```

### Variante et raccordement

Propriétés du composant `RecordLayout.props`. [Propriétés et valeurs admises](https://developers.dagio.ai/fr/surface-components/#recordlayout).

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

### Exemple de disposition UI

La disposition illustrative ci-dessous situe cette configuration dans l’app Clients/Soumissions. Chaque fragment s’insère à l’emplacement indiqué; ses références aux Fields, Queries et Actions correspondent aux déclarations du Model.

1. Identité du client
2. Notes et suivi
3. Paramètres
4. Soumissions liées

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