---
title: "SurfaceCompositionWorkBindings · types"
url: https://developers.dagio.ai/reference/types-surface-composition-work-bindings/
---

# SurfaceCompositionWorkBindings · types

   
                                               
                                                                                         
                                                         
                  
           
          
   

The following types define named objects and their relationships. Tables include inherited properties. Schema-derived types refer to their validated structures; a TypeScript declaration does not replace the compiler’s semantic checks.

## SurfaceCompositionWorkConsolidationParams

Explicit preparation families retain their own fields and native owners.

```typescript
export type SurfaceCompositionWorkConsolidationParams = z.infer<
  typeof surfaceCompositionWorkConsolidationParamsSchema
>;
```

## SurfaceCompositionWorkPreparationIntent

No implicit conversion from a profile into an Action is permitted.

```typescript
export type SurfaceCompositionWorkPreparationIntent =
  SurfaceCompositionWorkActionParams | SurfaceCompositionWorkConsolidationParams;
```

```typescript
type SurfaceCompositionWorkPreparationIntent = { experienceKey: string; sectionKey: string; bindingKey: string; scope: "rootWork" | "selectedStage" | "retainedTarget"; actionKey: string; } | { kind: "consolidation"; experienceKey: string; sectionKey: string; bindingKey: string; scope: "selectedStage"; profileKey: string; };
```

## SurfaceCompositionWorkActionParams

Every scoped event is parsed through this exact definition, never a permissive fallback.

```typescript
export type SurfaceCompositionWorkActionParams = z.infer<
  typeof surfaceCompositionWorkActionParamsSchema
>;
```

[All references](https://developers.dagio.ai/reference/)

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

## Applied examples : Quotes for the current client

The Query declares clientId; the binding supplies the identity of the open record.

### Configuration

Fragment placed in `queries[]`. [Properties and accepted values](https://developers.dagio.ai/reference/workspace-model-foundation/).

```json
{
  "contract": "WorkspaceQuery@1",
  "key": "client-quotes",
  "label": "Client quotes",
  "spaceKeys": [
    "quotes"
  ],
  "definitionPaths": [
    "workspace/quotes/surface/quote"
  ],
  "parameters": [
    {
      "key": "clientId",
      "type": "node-id",
      "required": true
    }
  ],
  "predicates": [],
  "relations": [
    {
      "linkTypePath": "application/client",
      "direction": "outgoing",
      "parameterKey": "clientId",
      "distinct": true
    }
  ],
  "orderBy": [
    {
      "fieldKey": "updatedAt",
      "direction": "descending"
    }
  ],
  "aggregate": "none",
  "pageSize": 25,
  "maximumDepth": 1
}
```

### Variation and connection

Fragment placed in `presentation.recordProfiles[].queryBindings[]`. [Properties and accepted values](https://developers.dagio.ai/reference/workspace-record-query-binding/).

```json
{
  "key": "client-quotes",
  "queryKey": "client-quotes",
  "parameters": {
    "clientId": {
      "kind": "entity-id",
      "definitionPath": "workspace/clients/surface/client"
    }
  }
}
```

### 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. Number
2. Status
3. Amount
4. Last updated

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