---
title: "surfaceConsolidationProfile"
url: https://developers.dagio.ai/reference/surface-consolidation-profile/
---

# surfaceConsolidationProfile

   
                                    
                                                                                      
                                               
                  
           
          
   

This reference describes the full structure of `surfaceConsolidationProfile`. 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` | `"SurfaceConsolidationProfile@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. |
| `currentSelection` | `closed object` | **Required.** Defines current Selection for this object. Observe the type, variants and bounds in the Options column. |
| `currentSelection.contract` | `"SurfaceWorkSelectionBinding@1"` | **Required.** Exact discriminant of this contract variant. Match the literal value shown. |
| `currentSelection.linkTypePath` | `string; min length 1; max length 4000` | **Required.** Defines link Type Path for this object. Observe the type, variants and bounds in the Options column. |
| `workDefinitionPath` | `string; min length 1; max length 600; /^workspace\/[a-z0-9-]+(?:\/surface\/[a-z0-9-]+)*$/u` | **Required.** Exact path of the relevant definition type; each reference must exist in the Model and respect declared scope. |
| `proposalDefinitionPaths` | `Array<string; min length 1; max length 600; /^workspace\/[a-z0-9-]+(?:\/surface\/[a-z0-9-]+)*$/u>; min length 1; max length 20` | **Required.** Exact path of the relevant definition type; each reference must exist in the Model and respect declared scope. |
| `decisionDefinitionPath` | `string; min length 1; max length 600; /^workspace\/[a-z0-9-]+(?:\/surface\/[a-z0-9-]+)*$/u` | **Required.** Exact path of the relevant definition type; each reference must exist in the Model and respect declared scope. |
| `targetDefinitionPaths` | `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. |
| `workTargetLinkTypePath` | `string; min length 1; max length 4000` | **Required.** Declared relation type with sources, targets and direction compatible with this traversal. |
| `retainedProposalLinkTypePath` | `string; min length 1; max length 4000` | **Required.** Declared relation type with sources, targets and direction compatible with this traversal. |
| `decisionTargetLinkTypePath` | `string; min length 1; max length 4000` | **Required.** Declared relation type with sources, targets and direction compatible with this traversal. |
| `decisionFields` | `closed object` | **Required.** Defines decision Fields for this object. Observe the type, variants and bounds in the Options column. |
| `decisionFields.stateFieldKey` | `string; min length 1; max length 120; /^[a-zA-Z][a-zA-Z0-9]*$/u` | **Required.** Key of a declared Field on the relevant type; its value type must be compatible with this use. |
| `decisionFields.retainedState` | `string; min length 1; max length 4000` | **Required.** Defines retained State for this object. Observe the type, variants and bounds in the Options column. |
| `decisionFields.appliedState` | `string; min length 1; max length 4000` | **Required.** Defines applied State for this object. Observe the type, variants and bounds in the Options column. |
| `decisionFields.rationaleFieldKey` | `string; min length 1; max length 120; /^[a-zA-Z][a-zA-Z0-9]*$/u` | **Required.** Key of a declared Field on the relevant type; its value type must be compatible with this use. |
| `decisionFields.authorFieldKey` | `string; min length 1; max length 120; /^[a-zA-Z][a-zA-Z0-9]*$/u` | **Required.** Key of a declared Field on the relevant type; its value type must be compatible with this use. |
| `targetFormActionKeys` | `Array<string; min length 1; max length 120; /^[a-z][a-z0-9-]*$/u>; max length 100` | **Required.** Stable key reference to the corresponding named declaration; the compiler checks existence and compatibility. |
| `selectionPatch` | `true \| false` | **Required.** Defines selection Patch for this object. Observe the type, variants and bounds in the Options column. |
| `workState` | `closed object; optional` | Optional. Defines work State for this object. Observe the type, variants and bounds in the Options column. |
| `workState.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. |
| `workState.openValue` | `string; min length 1; max length 4000` | **Required.** Defines open Value for this object. Observe the type, variants and bounds in the Options column. |
| `workState.resolvedValue` | `string; min length 1; max length 4000` | **Required.** Defines resolved Value for this object. Observe the type, variants and bounds in the Options column. |
| `maximumSourceReferences` | `integer; ≥ 1; ≤ 100` | **Required.** Cardinality or budget bound for the named resource. Exceeding the bound is refused; null denotes no bound only where admitted by the schema. |
| `retainedTitle` | `string; min length 1; max length 4000` | **Required.** Defines retained Title for this object. Observe the type, variants and bounds in the Options column. |
| `appliedTitle` | `string; min length 1; max length 4000` | **Required.** Defines applied Title 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.

```json
{
  "contract": "SurfaceConsolidationProfile@1",
  "key": "step-selection",
  "currentSelection": {
    "contract": "SurfaceWorkSelectionBinding@1",
    "linkTypePath": "application/current-work-selection"
  },
  "workDefinitionPath": "workspace/workshop/surface/work/surface/step",
  "proposalDefinitionPaths": [
    "workspace/workshop/surface/work/surface/step/surface/exploration",
    "workspace/workshop/surface/work/surface/step/surface/task/surface/result"
  ],
  "decisionDefinitionPath": "workspace/workshop/surface/work/surface/step/surface/decision",
  "targetDefinitionPaths": [
    "workspace/reference/surface/character",
    "workspace/reference/surface/location",
    "workspace/reference/surface/location/surface/sub-location",
    "workspace/reference/surface/clue",
    "workspace/reference/surface/event",
    "workspace/manuscript/surface/book",
    "workspace/manuscript/surface/book/surface/chapter",
    "workspace/manuscript/surface/book/surface/chapter/surface/scene",
    "workspace/documentation/surface/index/surface/category/surface/entry"
  ],
  "workTargetLinkTypePath": "application/contributes-to",
  "retainedProposalLinkTypePath": "application/retains",
  "decisionTargetLinkTypePath": "application/contributes-to",
  "decisionFields": {
    "stateFieldKey": "status",
    "retainedState": "accepted",
    "appliedState": "accepted",
    "rationaleFieldKey": "rationale",
    "authorFieldKey": "authorId"
  },
  "targetFormActionKeys": [
    "edit-character",
    "edit-location",
    "edit-sub-location",
    "edit-clue",
    "edit-event",
    "edit-book",
    "edit-chapter",
    "edit-scene"
  ],
  "selectionPatch": true,
  "maximumSourceReferences": 30,
  "retainedTitle": "Proposition retenue",
  "appliedTitle": "Consolidation appliquée"
}
```

## Related references

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

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

## Applied examples : Retain and inspect the result

The result retains a canonical reference and the exported document respects its read budget.

### Configuration

Contract object `surfaceConsolidationProfile`. [Properties and accepted values](https://developers.dagio.ai/reference/surface-consolidation-profile/).

```json
{
  "contract": "SurfaceConsolidationProfile@1",
  "key": "step-selection",
  "currentSelection": {
    "contract": "SurfaceWorkSelectionBinding@1",
    "linkTypePath": "application/current-work-selection"
  },
  "workDefinitionPath": "workspace/workshop/surface/work/surface/step",
  "proposalDefinitionPaths": [
    "workspace/workshop/surface/work/surface/step/surface/exploration",
    "workspace/workshop/surface/work/surface/step/surface/task/surface/result"
  ],
  "decisionDefinitionPath": "workspace/workshop/surface/work/surface/step/surface/decision",
  "targetDefinitionPaths": [
    "workspace/reference/surface/character",
    "workspace/reference/surface/location",
    "workspace/reference/surface/location/surface/sub-location",
    "workspace/reference/surface/clue",
    "workspace/reference/surface/event",
    "workspace/manuscript/surface/book",
    "workspace/manuscript/surface/book/surface/chapter",
    "workspace/manuscript/surface/book/surface/chapter/surface/scene",
    "workspace/documentation/surface/index/surface/category/surface/entry"
  ],
  "workTargetLinkTypePath": "application/contributes-to",
  "retainedProposalLinkTypePath": "application/retains",
  "decisionTargetLinkTypePath": "application/contributes-to",
  "decisionFields": {
    "stateFieldKey": "status",
    "retainedState": "accepted",
    "appliedState": "accepted",
    "rationaleFieldKey": "rationale",
    "authorFieldKey": "authorId"
  },
  "targetFormActionKeys": [
    "edit-character",
    "edit-location",
    "edit-sub-location",
    "edit-clue",
    "edit-event",
    "edit-book",
    "edit-chapter",
    "edit-scene"
  ],
  "selectionPatch": true,
  "maximumSourceReferences": 30,
  "retainedTitle": "Proposition retenue",
  "appliedTitle": "Consolidation appliquée"
}
```

### Variation and connection

Fragment placed in `documentProfiles[]`. [Properties and accepted values](https://developers.dagio.ai/reference/managed-document-profile-v3/).

```json
{
  "contract": "DocumentProfile@3",
  "key": "client-quotes-export",
  "source": {
    "kind": "record-query",
    "recordProfileKey": "client",
    "queryBindingKey": "client-quotes",
    "viewKey": "quotes-table"
  },
  "exportFormats": [
    "markdown"
  ],
  "budget": {
    "maximumRows": 100,
    "maximumPages": 4,
    "maximumOutputBytes": 1000000
  }
}
```

### 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. Quote S-1042
2. Subject and need
3. Proposal
4. Retained references

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