{
  "step": "MicrosoftGraphContact-list-compose",
  "tool": "design_compose",
  "input": {
    "object": "MicrosoftGraphContact",
    "context": "list",
    "preferences": {
      "brand": "Aquex",
      "theme": "light"
    }
  },
  "isError": false,
  "error": null,
  "output": {
    "status": "ok",
    "layout": "list",
    "schema": {
      "version": "2026.02",
      "theme": "light",
      "screens": [
        {
          "id": "screen-list-9",
          "component": "Stack",
          "layout": {
            "type": "stack",
            "gapToken": "cluster-default"
          },
          "children": [
            {
              "id": "screen-list-9-loading",
              "component": "Banner",
              "state": "loading",
              "props": {
                "title": "Loading",
                "message": "Loading your records."
              }
            },
            {
              "id": "screen-list-9-error",
              "component": "Banner",
              "state": "error",
              "props": {
                "title": "Unable to load records",
                "message": "Try again or choose another record."
              }
            },
            {
              "id": "screen-list-9-success",
              "component": "Stack",
              "state": "success",
              "layout": {
                "type": "stack",
                "gapToken": "cluster-default"
              },
              "children": [
                {
                  "id": "list-toolbar-4",
                  "component": "Stack",
                  "layout": {
                    "type": "inline",
                    "align": "space-between"
                  },
                  "children": [
                    {
                      "id": "slot-search-1",
                      "component": "SearchInput",
                      "meta": {
                        "intent": "slot:search",
                        "label": "search",
                        "confidence": 1,
                        "confidenceLevel": "high"
                      },
                      "collectionControl": "search",
                      "props": {
                        "label": "Search",
                        "placeholder": "Search records",
                        "clearable": true
                      }
                    },
                    {
                      "id": "list-toolbar-4-sort",
                      "component": "Select",
                      "collectionControl": "sort",
                      "props": {
                        "field": "title",
                        "label": "Sort",
                        "options": [
                          {
                            "value": "asc",
                            "label": "Name A–Z"
                          },
                          {
                            "value": "desc",
                            "label": "Name Z–A"
                          }
                        ]
                      }
                    }
                  ]
                },
                {
                  "id": "list-items-5",
                  "component": "Stack",
                  "layout": {
                    "type": "stack",
                    "gapToken": "cluster-tight"
                  },
                  "children": [
                    {
                      "id": "list-items-5-row",
                      "component": "Button",
                      "collectionControl": "open",
                      "props": {
                        "field": "id"
                      },
                      "layout": {
                        "type": "inline",
                        "gapToken": "cluster-default"
                      },
                      "children": [
                        {
                          "id": "list-items-5-title",
                          "component": "Text",
                          "props": {
                            "field": "title"
                          }
                        }
                      ]
                    },
                    {
                      "id": "list-items-5-empty",
                      "component": "Banner",
                      "state": "empty",
                      "props": {
                        "message": "No records found."
                      },
                      "collectionControl": "empty"
                    }
                  ],
                  "collection": {
                    "source": "rows",
                    "keyField": "id",
                    "labelField": "title"
                  }
                },
                {
                  "id": "list-pagination-7",
                  "component": "Stack",
                  "layout": {
                    "type": "inline",
                    "align": "center"
                  },
                  "children": [
                    {
                      "id": "slot-pagination-8",
                      "component": "PaginationBar",
                      "meta": {
                        "intent": "slot:pagination",
                        "label": "pagination",
                        "confidence": 0.77,
                        "confidenceLevel": "medium"
                      },
                      "collectionControl": "page",
                      "props": {
                        "showItemRange": true
                      }
                    }
                  ]
                }
              ]
            }
          ],
          "bindings": {
            "onRowClick": "handleRowClick",
            "onSort": "handleSort",
            "onFilter": "handleFilter",
            "onPageChange": "handlePageChange"
          },
          "meta": {
            "label": "Microsoft Graph Contacts"
          }
        }
      ],
      "objectSchema": {
        "assistantName": {
          "type": "string?",
          "required": false,
          "description": "The name of the contact's assistant.",
          "examples": [
            "Assistant name 1",
            "Assistant name 2",
            "Assistant name 3",
            "Assistant name 4",
            "Assistant name 5"
          ]
        },
        "birthday": {
          "type": "datetime?",
          "required": false,
          "description": "The contact's birthday. The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z",
          "examples": [
            "2026-01-01T12:00:00Z",
            "2026-01-02T12:00:00Z",
            "2026-01-03T12:00:00Z",
            "2026-01-04T12:00:00Z",
            "2026-01-05T12:00:00Z"
          ]
        },
        "businessHomePage": {
          "type": "string?",
          "required": false,
          "description": "The business home page of the contact.",
          "examples": [
            "Business home page 1",
            "Business home page 2",
            "Business home page 3",
            "Business home page 4",
            "Business home page 5"
          ]
        },
        "changeKey": {
          "type": "string?",
          "required": false,
          "description": "Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows Exchange to apply changes to the correct version of the object. Read-only.",
          "examples": [
            "CHAN-001",
            "CHAN-002",
            "CHAN-003",
            "CHAN-004",
            "CHAN-005"
          ]
        },
        "companyName": {
          "type": "string?",
          "required": false,
          "description": "The name of the contact's company.",
          "examples": [
            "Northwind Traders",
            "Acme Supply",
            "Blue Harbor Co.",
            "Juniper Labs",
            "Summit Foods"
          ]
        },
        "createdDateTime": {
          "type": "datetime?",
          "required": false,
          "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z",
          "examples": [
            "2026-01-01T12:00:00Z",
            "2026-01-02T12:00:00Z",
            "2026-01-03T12:00:00Z",
            "2026-01-04T12:00:00Z",
            "2026-01-05T12:00:00Z"
          ]
        },
        "department": {
          "type": "string?",
          "required": false,
          "description": "The contact's department.",
          "examples": [
            "Department 1",
            "Department 2",
            "Department 3",
            "Department 4",
            "Department 5"
          ]
        },
        "displayName": {
          "type": "string?",
          "required": false,
          "description": "The contact's display name. You can specify the display name in a create or update operation. Note that later updates to other properties may cause an automatically generated value to overwrite the displayName value you have specified. To preserve a pre-existing value, always include it as displayName in an update operation.",
          "examples": [
            "Microsoft graph contact 1",
            "Microsoft graph contact 2",
            "Microsoft graph contact 3",
            "Microsoft graph contact 4",
            "Microsoft graph contact 5"
          ]
        },
        "emailAddresses": {
          "type": "string[]",
          "required": false,
          "description": "The contact's email addresses.",
          "examples": [
            [
              "person1@example.com"
            ],
            [
              "person2@example.com"
            ],
            [
              "person3@example.com"
            ],
            [
              "person4@example.com"
            ],
            [
              "person5@example.com"
            ]
          ],
          "referenceLabels": {
            "person1@example.com": "person1@example.com",
            "person2@example.com": "person2@example.com",
            "person3@example.com": "person3@example.com",
            "person4@example.com": "person4@example.com",
            "person5@example.com": "person5@example.com"
          }
        },
        "extensions": {
          "type": "string[]",
          "required": false,
          "description": "The collection of open extensions defined for the contact. Read-only. Nullable.",
          "examples": [
            [
              "ID-001"
            ],
            [
              "ID-002"
            ],
            [
              "ID-003"
            ],
            [
              "ID-004"
            ],
            [
              "ID-005"
            ]
          ],
          "referenceLabels": {
            "ID-001": "ID-001",
            "ID-002": "ID-002",
            "ID-003": "ID-003",
            "ID-004": "ID-004",
            "ID-005": "ID-005"
          }
        },
        "fileAs": {
          "type": "string?",
          "required": false,
          "description": "The name the contact is filed under.",
          "examples": [
            "File as 1",
            "File as 2",
            "File as 3",
            "File as 4",
            "File as 5"
          ]
        },
        "generation": {
          "type": "string?",
          "required": false,
          "description": "The contact's suffix.",
          "examples": [
            "Generation 1",
            "Generation 2",
            "Generation 3",
            "Generation 4",
            "Generation 5"
          ]
        },
        "givenName": {
          "type": "string?",
          "required": false,
          "description": "The contact's given name.",
          "examples": [
            "Ava",
            "Ben",
            "Chloe",
            "Dev",
            "Elena"
          ]
        },
        "id": {
          "type": "string",
          "required": false,
          "description": "The unique identifier for an entity. Read-only.",
          "examples": [
            "ID-001",
            "ID-002",
            "ID-003",
            "ID-004",
            "ID-005"
          ]
        },
        "initials": {
          "type": "string?",
          "required": false,
          "description": "The contact's initials.",
          "examples": [
            "Initials 1",
            "Initials 2",
            "Initials 3",
            "Initials 4",
            "Initials 5"
          ]
        },
        "jobTitle": {
          "type": "string?",
          "required": false,
          "description": "The contact’s job title.",
          "examples": [
            "Job title 1",
            "Job title 2",
            "Job title 3",
            "Job title 4",
            "Job title 5"
          ]
        },
        "lastModifiedDateTime": {
          "type": "datetime?",
          "required": false,
          "description": "The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z",
          "examples": [
            "2026-01-01T12:00:00Z",
            "2026-01-02T12:00:00Z",
            "2026-01-03T12:00:00Z",
            "2026-01-04T12:00:00Z",
            "2026-01-05T12:00:00Z"
          ]
        },
        "manager": {
          "type": "string?",
          "required": false,
          "description": "The name of the contact's manager.",
          "examples": [
            "Manager 1",
            "Manager 2",
            "Manager 3",
            "Manager 4",
            "Manager 5"
          ]
        },
        "middleName": {
          "type": "string?",
          "required": false,
          "description": "The contact's middle name.",
          "examples": [
            "Middle name 1",
            "Middle name 2",
            "Middle name 3",
            "Middle name 4",
            "Middle name 5"
          ]
        },
        "mobilePhone": {
          "type": "string?",
          "required": false,
          "description": "The contact's mobile phone number.",
          "examples": [
            "+12025550101",
            "+12025550102",
            "+12025550103",
            "+12025550104",
            "+12025550105"
          ]
        },
        "multiValueExtendedProperties": {
          "type": "string[]",
          "required": false,
          "description": "The collection of multi-value extended properties defined for the contact. Read-only. Nullable.",
          "examples": [
            [
              "ID-001"
            ],
            [
              "ID-002"
            ],
            [
              "ID-003"
            ],
            [
              "ID-004"
            ],
            [
              "ID-005"
            ]
          ],
          "referenceLabels": {
            "ID-001": "ID-001",
            "ID-002": "ID-002",
            "ID-003": "ID-003",
            "ID-004": "ID-004",
            "ID-005": "ID-005"
          }
        },
        "nickName": {
          "type": "string?",
          "required": false,
          "description": "The contact's nickname.",
          "examples": [
            "Nick name 1",
            "Nick name 2",
            "Nick name 3",
            "Nick name 4",
            "Nick name 5"
          ]
        },
        "officeLocation": {
          "type": "string?",
          "required": false,
          "description": "The location of the contact's office.",
          "examples": [
            "Office location 1",
            "Office location 2",
            "Office location 3",
            "Office location 4",
            "Office location 5"
          ]
        },
        "parentFolderId": {
          "type": "string?",
          "required": false,
          "description": "The ID of the contact's parent folder.",
          "examples": [
            "PARE-001",
            "PARE-002",
            "PARE-003",
            "PARE-004",
            "PARE-005"
          ]
        },
        "personalNotes": {
          "type": "string?",
          "required": false,
          "description": "The user's notes about the contact.",
          "examples": [
            "Example personal notes for record 1.",
            "Example personal notes for record 2.",
            "Example personal notes for record 3.",
            "Example personal notes for record 4.",
            "Example personal notes for record 5."
          ]
        },
        "profession": {
          "type": "string?",
          "required": false,
          "description": "The contact's profession.",
          "examples": [
            "Profession 1",
            "Profession 2",
            "Profession 3",
            "Profession 4",
            "Profession 5"
          ]
        },
        "singleValueExtendedProperties": {
          "type": "string[]",
          "required": false,
          "description": "The collection of single-value extended properties defined for the contact. Read-only. Nullable.",
          "examples": [
            [
              "ID-001"
            ],
            [
              "ID-002"
            ],
            [
              "ID-003"
            ],
            [
              "ID-004"
            ],
            [
              "ID-005"
            ]
          ],
          "referenceLabels": {
            "ID-001": "ID-001",
            "ID-002": "ID-002",
            "ID-003": "ID-003",
            "ID-004": "ID-004",
            "ID-005": "ID-005"
          }
        },
        "spouseName": {
          "type": "string?",
          "required": false,
          "description": "The name of the contact's spouse/partner.",
          "examples": [
            "Spouse name 1",
            "Spouse name 2",
            "Spouse name 3",
            "Spouse name 4",
            "Spouse name 5"
          ]
        },
        "surname": {
          "type": "string?",
          "required": false,
          "description": "The contact's surname.",
          "examples": [
            "Martin",
            "Okafor",
            "Chen",
            "Silva",
            "Novak"
          ]
        },
        "title": {
          "type": "string?",
          "required": false,
          "description": "The contact's title.",
          "semanticType": "text.label",
          "examples": [
            "Microsoft graph contact 1",
            "Microsoft graph contact 2",
            "Microsoft graph contact 3",
            "Microsoft graph contact 4",
            "Microsoft graph contact 5"
          ]
        },
        "yomiCompanyName": {
          "type": "string?",
          "required": false,
          "description": "The phonetic Japanese company name of the contact.",
          "examples": [
            "Northwind Traders",
            "Acme Supply",
            "Blue Harbor Co.",
            "Juniper Labs",
            "Summit Foods"
          ]
        },
        "yomiGivenName": {
          "type": "string?",
          "required": false,
          "description": "The phonetic Japanese given name (first name) of the contact.",
          "examples": [
            "Ava",
            "Ben",
            "Chloe",
            "Dev",
            "Elena"
          ]
        },
        "yomiSurname": {
          "type": "string?",
          "required": false,
          "description": "The phonetic Japanese surname (last name)  of the contact.",
          "examples": [
            "Martin",
            "Okafor",
            "Chen",
            "Silva",
            "Novak"
          ]
        }
      }
    },
    "schemaRef": "compose-5c372440",
    "schemaRefCreatedAt": "2026-10-08T15:14:13.363Z",
    "schemaRefExpiresAt": "2026-10-08T15:44:13.363Z",
    "compositionId": "cmp-8674797a62e0",
    "version": 1,
    "parentVersion": null,
    "operation": "compose",
    "head": "af36064f0f930eec023a3e02e0f1280cf8dbe8f7",
    "selections": [
      {
        "slotName": "search",
        "intent": "search-input",
        "selectedComponent": "SearchInput",
        "confidence": 1,
        "confidenceLevel": "high",
        "explanation": "SearchInput was selected for slot \"search\" because preferred for \"search-input\" (rank 1); 2 tag match(es); tag match (search); 1 context match(es); 1 category match(es); 1 trait(s); name contains \"search\"; position affinity: SearchInput fits well in header; search intent bias. Confidence is high (1.00).",
        "candidates": [
          {
            "name": "SearchInput",
            "reason": "preferred for \"search-input\" (rank 1); 2 tag match(es); tag match (search); 1 context match(es); 1 category match(es); 1 trait(s); name contains \"search\"; position affinity: SearchInput fits well in header; search intent bias",
            "keywordTagMatches": 1,
            "keywordTraitMatches": 0,
            "contextTagMatches": 1,
            "contextTraitMatches": 0,
            "score": 1
          },
          {
            "name": "Input",
            "reason": "preferred for \"search-input\" (rank 2); 1 tag match(es); tag match (input); 1 context match(es); 1 region match(es); 1 category match(es); name contains \"input\"; position affinity: Input fits well in header",
            "keywordTagMatches": 1,
            "keywordTraitMatches": 0,
            "contextTagMatches": 1,
            "contextTraitMatches": 0,
            "score": 1
          },
          {
            "name": "DatePicker",
            "reason": "1 tag match(es); tag match (input); 1 context match(es); 1 region match(es); 1 category match(es); position affinity: DatePicker fits well in header",
            "keywordTagMatches": 1,
            "keywordTraitMatches": 0,
            "contextTagMatches": 1,
            "contextTraitMatches": 0,
            "score": 0.47
          }
        ]
      },
      {
        "slotName": "pagination",
        "intent": "pagination-control",
        "selectedComponent": "PaginationBar",
        "confidence": 0.77,
        "confidenceLevel": "medium",
        "explanation": "PaginationBar was selected for slot \"pagination\" because 2 tag match(es); tag match (pagination, navigation); 1 context match(es); 1 trait(s); name contains \"pagination\"; position affinity: PaginationBar fits well in footer. Confidence is medium (0.77).",
        "candidates": [
          {
            "name": "PaginationBar",
            "reason": "2 tag match(es); tag match (pagination, navigation); 1 context match(es); 1 trait(s); name contains \"pagination\"; position affinity: PaginationBar fits well in footer",
            "keywordTagMatches": 2,
            "keywordTraitMatches": 0,
            "contextTagMatches": 1,
            "contextTraitMatches": 0,
            "score": 1
          },
          {
            "name": "Button",
            "reason": "preferred for \"pagination-control\" (rank 2); 1 context match(es); 1 region match(es); position affinity: Button fits well in footer",
            "keywordTagMatches": 0,
            "keywordTraitMatches": 0,
            "contextTagMatches": 0,
            "contextTraitMatches": 0,
            "score": 0.75
          },
          {
            "name": "Text",
            "reason": "preferred for \"pagination-control\" (rank 1); 1 context match(es); 2 trait(s)",
            "keywordTagMatches": 0,
            "keywordTraitMatches": 0,
            "contextTagMatches": 0,
            "contextTraitMatches": 0,
            "score": 0.7
          }
        ]
      }
    ],
    "validation": {
      "status": "ok",
      "errors": [],
      "warnings": []
    },
    "warnings": [
      {
        "code": "OODS-V119",
        "message": "No view_extensions found for context \"list\" in object \"MicrosoftGraphContact\". Available contexts: none"
      }
    ],
    "objectUsed": {
      "name": "MicrosoftGraphContact",
      "version": "1.0.0",
      "traits": [],
      "fieldsComposed": 33,
      "viewExtensionsApplied": {}
    },
    "meta": {
      "intentParsed": "MicrosoftGraphContact list view",
      "layoutDetected": "context-inferred: list (from context=\"list\")",
      "slotCount": 2,
      "nodeCount": 13,
      "intentSynthetic": true,
      "warnings": [
        "No view_extensions found for context \"list\" in object \"MicrosoftGraphContact\". Available contexts: none"
      ],
      "intelligence": {
        "fieldsExpanded": false,
        "fieldAffinityUsed": true,
        "compositionConfidence": 0.89
      }
    }
  }
}
