[Demos](https://oods-foundry.com/demos) / Import objects

# Import objects from a schema

An OpenAPI file becomes drafted objects, then running screens. This example uses Microsoft Graph's contact schema and keeps the review decisions visible.

Generated from @oods/foundry 0.10.1

## Source

The input contains the contact schema and every named schema it references. Those schema definitions are unchanged; API paths are omitted. The source and its MIT license are pinned to the same commit.

[Microsoft Graph OpenAPI source](https://raw.githubusercontent.com/microsoftgraph/msgraph-metadata/15780e98e1082517bc7a39a6b75b356a085326d9/openapi/v1.0/openapi.yaml) · [MIT license](https://raw.githubusercontent.com/microsoftgraph/msgraph-metadata/15780e98e1082517bc7a39a6b75b356a085326d9/LICENSE)

Source and import hashes

- Upstream commit

  `15780e98e1082517bc7a39a6b75b356a085326d9`

- Upstream SHA-256

  `533f6d86985584327109ba2c52c0e51454ce1ba2153c11f4d841e898b88c5b1b`

- Subset SHA-256

  `sha256:f6fdb10875ad2ce31f0fec479171a6e29c2879e80549fb958bf29101c2b04ff7`

- Import content hash

  `sha256:889064b3d98fb85250bb6cce9888f58e516965cde8bebd8472b8014086506436`

* [Source subset](https://oods-foundry.com/demos/import-objects/files/source/graph-contact.json)
* [Source provenance](https://oods-foundry.com/demos/import-objects/files/source/source.json)
* [MIT license](https://oods-foundry.com/demos/import-objects/files/source/LICENSE)
* [Extraction script](https://oods-foundry.com/demos/import-objects/files/source/extract.mjs)

## Generated screens

After accepting the objects, we generated the contact's list, detail and form screens in React and Vue, using this site's brand. Each app has its own hash, calls and validation receipt.

These apps use illustrative sample data. The output is kept as generated, including sample labels and the warnings below. They have no connection to Microsoft Graph.

[MicrosoftGraphContact list screen generated by OODS Foundry in React](https://oods-foundry.com/demos/import-objects/screens/microsoft-graph-contact-list-react)

React app · sample records Maturity: not declared `sha256:fb5dd919fa7b…` [Open full size: MicrosoftGraphContact list screen generated by OODS Foundry in React](https://oods-foundry.com/demos/import-objects/screens/microsoft-graph-contact-list-react)

Vue app · sample records Maturity: not declared `sha256:d94623604f18…` [Open full size: MicrosoftGraphContact list screen generated by OODS Foundry in Vue](https://oods-foundry.com/demos/import-objects/screens/microsoft-graph-contact-list-vue)

React app · sample records Maturity: not declared `sha256:1803fd47621a…` [Open full size: MicrosoftGraphContact detail screen generated by OODS Foundry in React](https://oods-foundry.com/demos/import-objects/screens/microsoft-graph-contact-detail-react)

Vue app · sample records Maturity: not declared `sha256:516448ad8401…` [Open full size: MicrosoftGraphContact detail screen generated by OODS Foundry in Vue](https://oods-foundry.com/demos/import-objects/screens/microsoft-graph-contact-detail-vue)

React app · sample records Maturity: not declared `sha256:17206438674a…` [Open full size: MicrosoftGraphContact form screen generated by OODS Foundry in React](https://oods-foundry.com/demos/import-objects/screens/microsoft-graph-contact-form-react)

Vue app · sample records Maturity: not declared `sha256:dad4e3bc814c…` [Open full size: MicrosoftGraphContact form screen generated by OODS Foundry in Vue](https://oods-foundry.com/demos/import-objects/screens/microsoft-graph-contact-form-vue)

What `design_compose` reported:

- `OODS-V119` No view_extensions found for context "list" in object "MicrosoftGraphContact". Available contexts: none

The receipt and calls for the MicrosoftGraphContact list apps, in React and Vue

### React receipt

#### Checked

- schema-structure
- component-registry
- state-contract
- target-readiness
- normalization-fidelity
- binding-contract
- props-contract
- slots-contract
- events-contract
- dependency-closure

#### Not checked

- fallback-policy
- rendered-evidence
- interaction-evidence
- accessibility-evidence
- theme-evidence
- determinism-evidence
- performance-evidence
- certification-evidence

### Vue receipt

#### Checked

- schema-structure
- component-registry
- state-contract
- target-readiness
- normalization-fidelity
- binding-contract
- props-contract
- slots-contract
- events-contract
- dependency-closure

#### Not checked

- fallback-policy
- rendered-evidence
- interaction-evidence
- accessibility-evidence
- theme-evidence
- determinism-evidence
- performance-evidence
- certification-evidence

3 calls, as the pipeline sent them

```
design_compose {
  "object": "MicrosoftGraphContact",
  "context": "list",
  "preferences": {
    "brand": "Aquex",
    "theme": "light"
  }
}

code_generate {
  "schemaRef": "compose-5c372440",
  "framework": "react",
  "profile": "build",
  "options": {
    "output": "application",
    "brand": "Aquex",
    "theme": "light",
    "payloadMode": "file"
  }
}

code_generate {
  "schemaRef": "compose-5c372440",
  "framework": "vue",
  "profile": "build",
  "options": {
    "output": "application",
    "brand": "Aquex",
    "theme": "light",
    "payloadMode": "file"
  }
}
```

The React app's content hash: `sha256:fb5dd919fa7b2bf066f4aa20385ce17e117dc6745ec9bd49ea9766b51b42f232`. Its `src/` folder: App.tsx, GeneratedUI.tsx, app.css, main.tsx, oods-brand-aquex.css

The Vue app's content hash: `sha256:d94623604f18fb504becd8e6ca8dbd58a626f15301dbf97242c0fdaf315c9d87`. Its `src/` folder: App.vue, GeneratedUI.vue, app.css, main.ts, oods-brand-aquex.css

What `design_compose` reported:

- `OODS-V122` No trait categories with view_extensions for context "detail". Labels cannot be generated.
- `OODS-V119` No view_extensions found for context "detail" in object "MicrosoftGraphContact". Available contexts: none

The receipt and calls for the MicrosoftGraphContact detail apps, in React and Vue

### React receipt

#### Checked

- schema-structure
- component-registry
- state-contract
- target-readiness
- normalization-fidelity
- binding-contract
- props-contract
- slots-contract
- events-contract
- dependency-closure

#### Not checked

- fallback-policy
- rendered-evidence
- interaction-evidence
- accessibility-evidence
- theme-evidence
- determinism-evidence
- performance-evidence
- certification-evidence

### Vue receipt

#### Checked

- schema-structure
- component-registry
- state-contract
- target-readiness
- normalization-fidelity
- binding-contract
- props-contract
- slots-contract
- events-contract
- dependency-closure

#### Not checked

- fallback-policy
- rendered-evidence
- interaction-evidence
- accessibility-evidence
- theme-evidence
- determinism-evidence
- performance-evidence
- certification-evidence

3 calls, as the pipeline sent them

```
design_compose {
  "object": "MicrosoftGraphContact",
  "context": "detail",
  "preferences": {
    "brand": "Aquex",
    "theme": "light"
  }
}

code_generate {
  "schemaRef": "compose-2b5aef76",
  "framework": "react",
  "profile": "build",
  "options": {
    "output": "application",
    "brand": "Aquex",
    "theme": "light",
    "payloadMode": "file"
  }
}

code_generate {
  "schemaRef": "compose-2b5aef76",
  "framework": "vue",
  "profile": "build",
  "options": {
    "output": "application",
    "brand": "Aquex",
    "theme": "light",
    "payloadMode": "file"
  }
}
```

The React app's content hash: `sha256:1803fd47621aabf9c7c826690abde5cf866c3250add198eff6ee221ee236a0ef`. Its `src/` folder: App.tsx, GeneratedUI.tsx, app.css, main.tsx, oods-brand-aquex.css

The Vue app's content hash: `sha256:516448ad840136529cb35f86c1c1fce9e6c54f94b0fb3cfeb96091a04147f3ec`. Its `src/` folder: App.vue, GeneratedUI.vue, app.css, main.ts, oods-brand-aquex.css

What `design_compose` reported:

- `OODS-V119` No view_extensions found for context "form" in object "MicrosoftGraphContact". Available contexts: none

The receipt and calls for the MicrosoftGraphContact form apps, in React and Vue

### React receipt

#### Checked

- schema-structure
- component-registry
- state-contract
- target-readiness
- normalization-fidelity
- binding-contract
- props-contract
- slots-contract
- events-contract
- dependency-closure

#### Not checked

- fallback-policy
- rendered-evidence
- interaction-evidence
- accessibility-evidence
- theme-evidence
- determinism-evidence
- performance-evidence
- certification-evidence

### Vue receipt

#### Checked

- schema-structure
- component-registry
- state-contract
- target-readiness
- normalization-fidelity
- binding-contract
- props-contract
- slots-contract
- events-contract
- dependency-closure

#### Not checked

- fallback-policy
- rendered-evidence
- interaction-evidence
- accessibility-evidence
- theme-evidence
- determinism-evidence
- performance-evidence
- certification-evidence

3 calls, as the pipeline sent them

```
design_compose {
  "object": "MicrosoftGraphContact",
  "context": "form",
  "preferences": {
    "brand": "Aquex",
    "theme": "light"
  }
}

code_generate {
  "schemaRef": "compose-9213ad22",
  "framework": "react",
  "profile": "build",
  "options": {
    "output": "application",
    "brand": "Aquex",
    "theme": "light",
    "payloadMode": "file"
  }
}

code_generate {
  "schemaRef": "compose-9213ad22",
  "framework": "vue",
  "profile": "build",
  "options": {
    "output": "application",
    "brand": "Aquex",
    "theme": "light",
    "payloadMode": "file"
  }
}
```

The React app's content hash: `sha256:17206438674a712492137e7aa23c3b0ddf50b142f3d176a919d77805241ec1b4`. Its `src/` folder: App.tsx, GeneratedUI.tsx, app.css, main.tsx, oods-brand-aquex.css

The Vue app's content hash: `sha256:dad4e3bc814c7fda34bd3c8818591c36e56d81d8b70077b87b96d60394aae52a`. Its `src/` folder: App.vue, GeneratedUI.vue, app.css, main.ts, oods-brand-aquex.css

## Drafted objects

Drafting writes a review bundle without registering the objects. Each definition below is the exact YAML the importer returned.

9 objects · 65 source fields · 43 mapped fields

`MicrosoftGraphEmailAddress`

```
metadata:
  references:
    - graph-contact.json#/components/schemas/microsoft.graph.emailAddress
  supportedContexts:
    - list
    - detail
    - form
object:
  description: Imported microsoft.graph.emailAddress schema. Samples without source examples are illustrative.
  domain: imported
  name: MicrosoftGraphEmailAddress
  version: 1.0.0
relationships: []
samples:
  - address: Address 1
    name: person1@example.com
  - address: Address 2
    name: person2@example.com
  - address: Address 3
    name: person3@example.com
  - address: Address 4
    name: person4@example.com
  - address: Address 5
    name: person5@example.com
schema:
  address:
    description: The email address of the person or entity.
    required: false
    type: string?
  name:
    description: The display name of the person or entity.
    required: false
    type: string?
semantics:
  name:
    semantic_type: text.label
    token_mapping: tokenMap(text.primary)
tokens: {}
traits: []
```

`MicrosoftGraphExtension`

```
metadata:
  references:
    - graph-contact.json#/components/schemas/microsoft.graph.extension
  supportedContexts:
    - list
    - detail
    - form
object:
  description: Imported microsoft.graph.extension schema. Samples without source examples are illustrative.
  domain: imported
  name: MicrosoftGraphExtension
  version: 1.0.0
relationships: []
samples:
  - id: ID-001
  - id: ID-002
  - id: ID-003
  - id: ID-004
  - id: ID-005
schema:
  id:
    description: The unique identifier for an entity. Read-only.
    required: false
    type: string
semantics:
  id:
    semantic_type: text.label
    token_mapping: tokenMap(text.primary)
tokens: {}
traits: []
```

`MicrosoftGraphMultiValueLegacyExtendedProperty`

```
metadata:
  references:
    - graph-contact.json#/components/schemas/microsoft.graph.multiValueLegacyExtendedProperty
  supportedContexts:
    - list
    - detail
    - form
object:
  description: Imported microsoft.graph.multiValueLegacyExtendedProperty schema. Samples without source examples are illustrative.
  domain: imported
  name: MicrosoftGraphMultiValueLegacyExtendedProperty
  version: 1.0.0
relationships: []
samples:
  - id: ID-001
  - id: ID-002
  - id: ID-003
  - id: ID-004
  - id: ID-005
schema:
  id:
    description: The unique identifier for an entity. Read-only.
    required: false
    type: string
semantics:
  id:
    semantic_type: text.label
    token_mapping: tokenMap(text.primary)
tokens: {}
traits: []
```

`MicrosoftGraphSingleValueLegacyExtendedProperty`

```
metadata:
  references:
    - graph-contact.json#/components/schemas/microsoft.graph.singleValueLegacyExtendedProperty
  supportedContexts:
    - list
    - detail
    - form
object:
  description: Imported microsoft.graph.singleValueLegacyExtendedProperty schema. Samples without source examples are illustrative.
  domain: imported
  name: MicrosoftGraphSingleValueLegacyExtendedProperty
  version: 1.0.0
relationships: []
samples:
  - id: ID-001
    value: Value 1
  - id: ID-002
    value: Value 2
  - id: ID-003
    value: Value 3
  - id: ID-004
    value: Value 4
  - id: ID-005
    value: Value 5
schema:
  id:
    description: The unique identifier for an entity. Read-only.
    required: false
    type: string
  value:
    description: A property value.
    required: false
    type: string?
semantics:
  id:
    semantic_type: text.label
    token_mapping: tokenMap(text.primary)
tokens: {}
traits: []
```

`MicrosoftGraphContact`

```
metadata:
  references:
    - graph-contact.json#/components/schemas/microsoft.graph.contact
  supportedContexts:
    - list
    - detail
    - form
object:
  description: Imported microsoft.graph.contact schema. Samples without source examples are illustrative.
  domain: imported
  name: MicrosoftGraphContact
  version: 1.0.0
relationships:
  - cardinality: one-to-many
    label: emailAddresses
    target: MicrosoftGraphEmailAddress
    via: emailAddresses
  - cardinality: one-to-many
    label: extensions
    target: MicrosoftGraphExtension
    via: extensions
  - cardinality: one-to-many
    label: multiValueExtendedProperties
    target: MicrosoftGraphMultiValueLegacyExtendedProperty
    via: multiValueExtendedProperties
  - cardinality: one-to-many
    label: singleValueExtendedProperties
    target: MicrosoftGraphSingleValueLegacyExtendedProperty
    via: singleValueExtendedProperties
samples:
  - assistantName: Assistant name 1
    birthday: '2026-01-01T12:00:00Z'
    businessHomePage: Business home page 1
    changeKey: CHAN-001
    companyName: Northwind Traders
    createdDateTime: '2026-01-01T12:00:00Z'
    department: Department 1
    displayName: Microsoft graph contact 1
    emailAddresses:
      - person1@example.com
    extensions:
      - ID-001
    fileAs: File as 1
    generation: Generation 1
    givenName: Ava
    id: ID-001
    initials: Initials 1
    jobTitle: Job title 1
    lastModifiedDateTime: '2026-01-01T12:00:00Z'
    manager: Manager 1
    middleName: Middle name 1
    mobilePhone: '+12025550101'
    multiValueExtendedProperties:
      - ID-001
    nickName: Nick name 1
    officeLocation: Office location 1
    parentFolderId: PARE-001
    personalNotes: Example personal notes for record 1.
    profession: Profession 1
    singleValueExtendedProperties:
      - ID-001
    spouseName: Spouse name 1
    surname: Martin
    title: Microsoft graph contact 1
    yomiCompanyName: Northwind Traders
    yomiGivenName: Ava
    yomiSurname: Martin
  - assistantName: Assistant name 2
    birthday: '2026-01-02T12:00:00Z'
    businessHomePage: Business home page 2
    changeKey: CHAN-002
    companyName: Acme Supply
    createdDateTime: '2026-01-02T12:00:00Z'
    department: Department 2
    displayName: Microsoft graph contact 2
    emailAddresses:
      - person2@example.com
    extensions:
      - ID-002
    fileAs: File as 2
    generation: Generation 2
    givenName: Ben
    id: ID-002
    initials: Initials 2
    jobTitle: Job title 2
    lastModifiedDateTime: '2026-01-02T12:00:00Z'
    manager: Manager 2
    middleName: Middle name 2
    mobilePhone: '+12025550102'
    multiValueExtendedProperties:
      - ID-002
    nickName: Nick name 2
    officeLocation: Office location 2
    parentFolderId: PARE-002
    personalNotes: Example personal notes for record 2.
    profession: Profession 2
    singleValueExtendedProperties:
      - ID-002
    spouseName: Spouse name 2
    surname: Okafor
    title: Microsoft graph contact 2
    yomiCompanyName: Acme Supply
    yomiGivenName: Ben
    yomiSurname: Okafor
  - assistantName: Assistant name 3
    birthday: '2026-01-03T12:00:00Z'
    businessHomePage: Business home page 3
    changeKey: CHAN-003
    companyName: Blue Harbor Co.
    createdDateTime: '2026-01-03T12:00:00Z'
    department: Department 3
    displayName: Microsoft graph contact 3
    emailAddresses:
      - person3@example.com
    extensions:
      - ID-003
    fileAs: File as 3
    generation: Generation 3
    givenName: Chloe
    id: ID-003
    initials: Initials 3
    jobTitle: Job title 3
    lastModifiedDateTime: '2026-01-03T12:00:00Z'
    manager: Manager 3
    middleName: Middle name 3
    mobilePhone: '+12025550103'
    multiValueExtendedProperties:
      - ID-003
    nickName: Nick name 3
    officeLocation: Office location 3
    parentFolderId: PARE-003
    personalNotes: Example personal notes for record 3.
    profession: Profession 3
    singleValueExtendedProperties:
      - ID-003
    spouseName: Spouse name 3
    surname: Chen
    title: Microsoft graph contact 3
    yomiCompanyName: Blue Harbor Co.
    yomiGivenName: Chloe
    yomiSurname: Chen
  - assistantName: Assistant name 4
    birthday: '2026-01-04T12:00:00Z'
    businessHomePage: Business home page 4
    changeKey: CHAN-004
    companyName: Juniper Labs
    createdDateTime: '2026-01-04T12:00:00Z'
    department: Department 4
    displayName: Microsoft graph contact 4
    emailAddresses:
      - person4@example.com
    extensions:
      - ID-004
    fileAs: File as 4
    generation: Generation 4
    givenName: Dev
    id: ID-004
    initials: Initials 4
    jobTitle: Job title 4
    lastModifiedDateTime: '2026-01-04T12:00:00Z'
    manager: Manager 4
    middleName: Middle name 4
    mobilePhone: '+12025550104'
    multiValueExtendedProperties:
      - ID-004
    nickName: Nick name 4
    officeLocation: Office location 4
    parentFolderId: PARE-004
    personalNotes: Example personal notes for record 4.
    profession: Profession 4
    singleValueExtendedProperties:
      - ID-004
    spouseName: Spouse name 4
    surname: Silva
    title: Microsoft graph contact 4
    yomiCompanyName: Juniper Labs
    yomiGivenName: Dev
    yomiSurname: Silva
  - assistantName: Assistant name 5
    birthday: '2026-01-05T12:00:00Z'
    businessHomePage: Business home page 5
    changeKey: CHAN-005
    companyName: Summit Foods
    createdDateTime: '2026-01-05T12:00:00Z'
    department: Department 5
    displayName: Microsoft graph contact 5
    emailAddresses:
      - person5@example.com
    extensions:
      - ID-005
    fileAs: File as 5
    generation: Generation 5
    givenName: Elena
    id: ID-005
    initials: Initials 5
    jobTitle: Job title 5
    lastModifiedDateTime: '2026-01-05T12:00:00Z'
    manager: Manager 5
    middleName: Middle name 5
    mobilePhone: '+12025550105'
    multiValueExtendedProperties:
      - ID-005
    nickName: Nick name 5
    officeLocation: Office location 5
    parentFolderId: PARE-005
    personalNotes: Example personal notes for record 5.
    profession: Profession 5
    singleValueExtendedProperties:
      - ID-005
    spouseName: Spouse name 5
    surname: Novak
    title: Microsoft graph contact 5
    yomiCompanyName: Summit Foods
    yomiGivenName: Elena
    yomiSurname: Novak
schema:
  assistantName:
    description: The name of the contact's assistant.
    required: false
    type: string?
  birthday:
    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
    required: false
    type: datetime?
    validation:
      format: date-time
      pattern: >-
        ^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$
  businessHomePage:
    description: The business home page of the contact.
    required: false
    type: string?
  changeKey:
    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.
    required: false
    type: string?
  companyName:
    description: The name of the contact's company.
    required: false
    type: string?
  createdDateTime:
    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
    required: false
    type: datetime?
    validation:
      format: date-time
      pattern: >-
        ^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$
  department:
    description: The contact's department.
    required: false
    type: string?
  displayName:
    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.
    required: false
    type: string?
  emailAddresses:
    description: The contact's email addresses.
    required: false
    type: string[]
  extensions:
    description: The collection of open extensions defined for the contact. Read-only. Nullable.
    required: false
    type: string[]
  fileAs:
    description: The name the contact is filed under.
    required: false
    type: string?
  generation:
    description: The contact's suffix.
    required: false
    type: string?
  givenName:
    description: The contact's given name.
    required: false
    type: string?
  id:
    description: The unique identifier for an entity. Read-only.
    required: false
    type: string
  initials:
    description: The contact's initials.
    required: false
    type: string?
  jobTitle:
    description: The contact’s job title.
    required: false
    type: string?
  lastModifiedDateTime:
    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
    required: false
    type: datetime?
    validation:
      format: date-time
      pattern: >-
        ^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$
  manager:
    description: The name of the contact's manager.
    required: false
    type: string?
  middleName:
    description: The contact's middle name.
    required: false
    type: string?
  mobilePhone:
    description: The contact's mobile phone number.
    required: false
    type: string?
  multiValueExtendedProperties:
    description: The collection of multi-value extended properties defined for the contact. Read-only. Nullable.
    required: false
    type: string[]
  nickName:
    description: The contact's nickname.
    required: false
    type: string?
  officeLocation:
    description: The location of the contact's office.
    required: false
    type: string?
  parentFolderId:
    description: The ID of the contact's parent folder.
    required: false
    type: string?
  personalNotes:
    description: The user's notes about the contact.
    required: false
    type: string?
  profession:
    description: The contact's profession.
    required: false
    type: string?
  singleValueExtendedProperties:
    description: The collection of single-value extended properties defined for the contact. Read-only. Nullable.
    required: false
    type: string[]
  spouseName:
    description: The name of the contact's spouse/partner.
    required: false
    type: string?
  surname:
    description: The contact's surname.
    required: false
    type: string?
  title:
    description: The contact's title.
    required: false
    type: string?
  yomiCompanyName:
    description: The phonetic Japanese company name of the contact.
    required: false
    type: string?
  yomiGivenName:
    description: The phonetic Japanese given name (first name) of the contact.
    required: false
    type: string?
  yomiSurname:
    description: The phonetic Japanese surname (last name)  of the contact.
    required: false
    type: string?
semantics:
  title:
    semantic_type: text.label
    token_mapping: tokenMap(text.primary)
tokens: {}
traits: []
```

`MicrosoftGraphEntity`

```
metadata:
  references:
    - graph-contact.json#/components/schemas/microsoft.graph.entity
  supportedContexts:
    - list
    - detail
    - form
object:
  description: Imported microsoft.graph.entity schema. Samples without source examples are illustrative.
  domain: imported
  name: MicrosoftGraphEntity
  version: 1.0.0
relationships: []
samples:
  - id: ID-001
  - id: ID-002
  - id: ID-003
  - id: ID-004
  - id: ID-005
schema:
  id:
    description: The unique identifier for an entity. Read-only.
    required: false
    type: string
semantics:
  id:
    semantic_type: text.label
    token_mapping: tokenMap(text.primary)
tokens: {}
traits: []
```

`MicrosoftGraphOutlookItem`

```
metadata:
  references:
    - graph-contact.json#/components/schemas/microsoft.graph.outlookItem
  supportedContexts:
    - list
    - detail
    - form
object:
  description: Imported microsoft.graph.outlookItem schema. Samples without source examples are illustrative.
  domain: imported
  name: MicrosoftGraphOutlookItem
  version: 1.0.0
relationships: []
samples:
  - changeKey: CHAN-001
    createdDateTime: '2026-01-01T12:00:00Z'
    id: ID-001
    lastModifiedDateTime: '2026-01-01T12:00:00Z'
  - changeKey: CHAN-002
    createdDateTime: '2026-01-02T12:00:00Z'
    id: ID-002
    lastModifiedDateTime: '2026-01-02T12:00:00Z'
  - changeKey: CHAN-003
    createdDateTime: '2026-01-03T12:00:00Z'
    id: ID-003
    lastModifiedDateTime: '2026-01-03T12:00:00Z'
  - changeKey: CHAN-004
    createdDateTime: '2026-01-04T12:00:00Z'
    id: ID-004
    lastModifiedDateTime: '2026-01-04T12:00:00Z'
  - changeKey: CHAN-005
    createdDateTime: '2026-01-05T12:00:00Z'
    id: ID-005
    lastModifiedDateTime: '2026-01-05T12:00:00Z'
schema:
  changeKey:
    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.
    required: false
    type: string?
  createdDateTime:
    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
    required: false
    type: datetime?
    validation:
      format: date-time
      pattern: >-
        ^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$
  id:
    description: The unique identifier for an entity. Read-only.
    required: false
    type: string
  lastModifiedDateTime:
    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
    required: false
    type: datetime?
    validation:
      format: date-time
      pattern: >-
        ^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$
semantics:
  id:
    semantic_type: text.label
    token_mapping: tokenMap(text.primary)
tokens: {}
traits: []
```

`MicrosoftGraphPhysicalAddress`

```
metadata:
  references:
    - graph-contact.json#/components/schemas/microsoft.graph.physicalAddress
  supportedContexts:
    - list
    - detail
    - form
object:
  description: Imported microsoft.graph.physicalAddress schema. Samples without source examples are illustrative.
  domain: imported
  name: MicrosoftGraphPhysicalAddress
  version: 1.0.0
relationships: []
samples:
  - city: Lisbon
    countryOrRegion: United States
    postalCode: '10115'
    state: State 1
    street: 12 Harbour Street
  - city: Austin
    countryOrRegion: United Kingdom
    postalCode: '94107'
    state: State 2
    street: 48 Elm Avenue
  - city: Osaka
    countryOrRegion: Canada
    postalCode: '75008'
    state: State 3
    street: 7 Market Square
  - city: Toronto
    countryOrRegion: Germany
    postalCode: '00144'
    state: State 4
    street: 230 King Road
  - city: Nairobi
    countryOrRegion: Japan
    postalCode: '60601'
    state: State 5
    street: 91 River Lane
schema:
  city:
    description: The city.
    required: false
    type: string?
  countryOrRegion:
    description: The country or region. It's a free-format string value, for example, 'United States'.
    required: false
    type: string?
  postalCode:
    description: The postal code.
    required: false
    type: string?
  state:
    description: The state.
    required: false
    type: string?
  street:
    description: The street.
    required: false
    type: string?
semantics: {}
tokens: {}
traits: []
```

`MicrosoftGraphProfilePhoto`

```
metadata:
  references:
    - graph-contact.json#/components/schemas/microsoft.graph.profilePhoto
  supportedContexts:
    - list
    - detail
    - form
object:
  description: Imported microsoft.graph.profilePhoto schema. Samples without source examples are illustrative.
  domain: imported
  name: MicrosoftGraphProfilePhoto
  version: 1.0.0
relationships: []
samples:
  - height: 1
    id: ID-001
    width: 1
  - height: 2
    id: ID-002
    width: 2
  - height: 3
    id: ID-003
    width: 3
  - height: 4
    id: ID-004
    width: 4
  - height: 5
    id: ID-005
    width: 5
schema:
  height:
    description: The height of the photo. Read-only.
    required: false
    type: number?
    validation:
      format: int32
      maximum: 2147483647
      minimum: -2147483648
  id:
    description: The unique identifier for an entity. Read-only.
    required: false
    type: string
  width:
    description: The width of the photo. Read-only.
    required: false
    type: number?
    validation:
      format: int32
      maximum: 2147483647
      minimum: -2147483648
semantics:
  id:
    semantic_type: text.label
    token_mapping: tokenMap(text.primary)
tokens: {}
traits: []
```

## Trait proposals

A proposal names a possible trait and the evidence for it. Accepting one binds the trait to the declared fields, so its meaning and proposed field bindings need review.

A birthday produces a medium Timestampable proposal; an address's state field produces a weak Stateful proposal. Both need a meaning check. We accepted no trait proposals in this run.

0 strong · 2 medium · 1 weak

Grades count proposal occurrences on objects, including inherited ones. The report below counts source outcomes, so these totals measure different things.

### `MicrosoftGraphContact`

- **Timestampable** · medium

  `/components/schemas/microsoft.graph.contact/allOf/1/properties/birthday`\
  date-time format provides timestamp evidence for birthday; review the proposed audit role before acceptance.

  `/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/createdDateTime`\
  date-time format provides timestamp evidence for createdDateTime; review the proposed audit role before acceptance.

  `/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/lastModifiedDateTime`\
  date-time format provides timestamp evidence for lastModifiedDateTime; review the proposed audit role before acceptance.

  Acceptance binds Timestampable to the declared source fields and omits canonical fields with null bindings. Review the bindings and audit roles. No trait is applied to this draft.

  Full proposal

  ```
  {
    "effects": "Acceptance binds Timestampable to the declared source fields and omits canonical fields with null bindings. Review the bindings and audit roles. No trait is applied to this draft.",
    "errors": [],
    "evidence": [
      {
        "file": "graph-contact.json",
        "kind": "structure",
        "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/birthday",
        "reason": "date-time format provides timestamp evidence for birthday; review the proposed audit role before acceptance."
      },
      {
        "file": "graph-contact.json",
        "kind": "structure",
        "pointer": "/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/createdDateTime",
        "reason": "date-time format provides timestamp evidence for createdDateTime; review the proposed audit role before acceptance."
      },
      {
        "file": "graph-contact.json",
        "kind": "structure",
        "pointer": "/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/lastModifiedDateTime",
        "reason": "date-time format provides timestamp evidence for lastModifiedDateTime; review the proposed audit role before acceptance."
      }
    ],
    "grade": "medium",
    "id": "8ada916c44b661b3",
    "trait": {
      "fieldBindings": {
        "created_at": "birthday",
        "last_event": null,
        "last_event_at": null,
        "updated_at": null
      },
      "name": "Timestampable",
      "parameters": {}
    },
    "valid": true
  }
  ```

### `MicrosoftGraphOutlookItem`

- **Timestampable** · medium

  `/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/createdDateTime`\
  date-time format provides timestamp evidence for createdDateTime; review the proposed audit role before acceptance.

  `/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/lastModifiedDateTime`\
  date-time format provides timestamp evidence for lastModifiedDateTime; review the proposed audit role before acceptance.

  Acceptance binds Timestampable to the declared source fields and omits canonical fields with null bindings. Review the bindings and audit roles. No trait is applied to this draft.

  Full proposal

  ```
  {
    "effects": "Acceptance binds Timestampable to the declared source fields and omits canonical fields with null bindings. Review the bindings and audit roles. No trait is applied to this draft.",
    "errors": [],
    "evidence": [
      {
        "file": "graph-contact.json",
        "kind": "structure",
        "pointer": "/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/createdDateTime",
        "reason": "date-time format provides timestamp evidence for createdDateTime; review the proposed audit role before acceptance."
      },
      {
        "file": "graph-contact.json",
        "kind": "structure",
        "pointer": "/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/lastModifiedDateTime",
        "reason": "date-time format provides timestamp evidence for lastModifiedDateTime; review the proposed audit role before acceptance."
      }
    ],
    "grade": "medium",
    "id": "f17bb5a43ec3d07e",
    "trait": {
      "fieldBindings": {
        "created_at": "createdDateTime",
        "last_event": null,
        "last_event_at": null,
        "updated_at": null
      },
      "name": "Timestampable",
      "parameters": {}
    },
    "valid": true
  }
  ```

### `MicrosoftGraphPhysicalAddress`

- **Stateful** · weak

  `/components/schemas/microsoft.graph.physicalAddress/properties/state`\
  Name alone suggests status; no state values or lifecycle structure were declared.

  Acceptance binds Stateful to the declared source fields and omits canonical fields with null bindings. Review the bindings and audit roles. No trait is applied to this draft.

  Full proposal

  ```
  {
    "effects": "Acceptance binds Stateful to the declared source fields and omits canonical fields with null bindings. Review the bindings and audit roles. No trait is applied to this draft.",
    "errors": [],
    "evidence": [
      {
        "file": "graph-contact.json",
        "kind": "name",
        "pointer": "/components/schemas/microsoft.graph.physicalAddress/properties/state",
        "reason": "Name alone suggests status; no state values or lifecycle structure were declared."
      }
    ],
    "grade": "weak",
    "id": "e04e378046053d34",
    "trait": {
      "fieldBindings": {
        "allowed_transitions": null,
        "state_history": null,
        "status": "state"
      },
      "name": "Stateful",
      "parameters": {}
    },
    "valid": true
  }
  ```

## Import report

The report accounts for mapped, proposed and unmapped source elements. Open an outcome to read every source pointer and reason, or download the complete bundle files.

368 outcomes: 223 mapped · 0 proposed · 145 unmapped

Mapped

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/assistantName/description`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/assistantName/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/assistantName/type`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/assistantName`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/birthday/description`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/birthday/format`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/birthday/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/birthday/pattern`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/birthday/type`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/birthday`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/businessAddress/anyOf/1/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/businessHomePage/description`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/businessHomePage/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/businessHomePage/type`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/businessHomePage`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/businessPhones/items/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/children/items/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/companyName/description`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/companyName/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/companyName/type`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/companyName`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/department/description`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/department/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/department/type`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/department`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/displayName/description`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/displayName/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/displayName/type`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/displayName`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/emailAddresses/description`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · link\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/emailAddresses/items/$ref`\
  Named schema reference becomes a relationship to MicrosoftGraphEmailAddress.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/emailAddresses/type`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/emailAddresses`\
  Mapped to a relationship identifier field; referenced object data stays in the related object.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/extensions/description`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · link\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/extensions/items/$ref`\
  Named schema reference becomes a relationship to MicrosoftGraphExtension.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/extensions/type`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/extensions`\
  Mapped to a relationship identifier field; referenced object data stays in the related object.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/fileAs/description`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/fileAs/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/fileAs/type`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/fileAs`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/generation/description`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/generation/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/generation/type`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/generation`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/givenName/description`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/givenName/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/givenName/type`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/givenName`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/homeAddress/anyOf/1/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/homePhones/items/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/imAddresses/items/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/initials/description`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/initials/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/initials/type`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/initials`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/jobTitle/description`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/jobTitle/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/jobTitle/type`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/jobTitle`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/manager/description`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/manager/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/manager/type`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/manager`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/middleName/description`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/middleName/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/middleName/type`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/middleName`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/mobilePhone/description`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/mobilePhone/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/mobilePhone/type`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/mobilePhone`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/multiValueExtendedProperties/description`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · link\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/multiValueExtendedProperties/items/$ref`\
  Named schema reference becomes a relationship to MicrosoftGraphMultiValueLegacyExtendedProperty.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/multiValueExtendedProperties/type`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/multiValueExtendedProperties`\
  Mapped to a relationship identifier field; referenced object data stays in the related object.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/nickName/description`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/nickName/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/nickName/type`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/nickName`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/officeLocation/description`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/officeLocation/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/officeLocation/type`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/officeLocation`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/otherAddress/anyOf/1/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/parentFolderId/description`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/parentFolderId/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/parentFolderId/type`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/parentFolderId`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/personalNotes/description`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/personalNotes/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/personalNotes/type`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/personalNotes`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/photo/anyOf/1/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/primaryEmailAddress/anyOf/1/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/profession/description`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/profession/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/profession/type`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/profession`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/secondaryEmailAddress/anyOf/1/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/singleValueExtendedProperties/description`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · link\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/singleValueExtendedProperties/items/$ref`\
  Named schema reference becomes a relationship to MicrosoftGraphSingleValueLegacyExtendedProperty.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/singleValueExtendedProperties/type`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/singleValueExtendedProperties`\
  Mapped to a relationship identifier field; referenced object data stays in the related object.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/spouseName/description`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/spouseName/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/spouseName/type`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/spouseName`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/surname/description`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/surname/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/surname/type`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/surname`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/tertiaryEmailAddress/anyOf/1/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/title/description`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/title/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/title/type`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/title`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/yomiCompanyName/description`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/yomiCompanyName/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/yomiCompanyName/type`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/yomiCompanyName`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/yomiGivenName/description`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/yomiGivenName/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/yomiGivenName/type`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/yomiGivenName`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/yomiSurname/description`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/yomiSurname/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/yomiSurname/type`\
  Retained in the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/yomiSurname`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf`\
  Projected into the object definition.

- **MicrosoftGraphContact** · schema\
  `/components/schemas/microsoft.graph.contact`\
  Drafted an object with list, detail, form contexts; no traits applied.

- **MicrosoftGraphEmailAddress** · keyword\
  `/components/schemas/microsoft.graph.emailAddress/properties/address/description`\
  Retained in the object field contract.

- **MicrosoftGraphEmailAddress** · keyword\
  `/components/schemas/microsoft.graph.emailAddress/properties/address/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphEmailAddress** · keyword\
  `/components/schemas/microsoft.graph.emailAddress/properties/address/type`\
  Retained in the object field contract.

- **MicrosoftGraphEmailAddress** · property\
  `/components/schemas/microsoft.graph.emailAddress/properties/address`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphEmailAddress** · keyword\
  `/components/schemas/microsoft.graph.emailAddress/properties/name/description`\
  Retained in the object field contract.

- **MicrosoftGraphEmailAddress** · keyword\
  `/components/schemas/microsoft.graph.emailAddress/properties/name/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphEmailAddress** · keyword\
  `/components/schemas/microsoft.graph.emailAddress/properties/name/type`\
  Retained in the object field contract.

- **MicrosoftGraphEmailAddress** · property\
  `/components/schemas/microsoft.graph.emailAddress/properties/name`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphEmailAddress** · keyword\
  `/components/schemas/microsoft.graph.emailAddress/properties`\
  Projected into the object definition.

- **MicrosoftGraphEmailAddress** · keyword\
  `/components/schemas/microsoft.graph.emailAddress/required`\
  Projected into the object definition.

- **MicrosoftGraphEmailAddress** · keyword\
  `/components/schemas/microsoft.graph.emailAddress/title`\
  Projected into the object definition.

- **MicrosoftGraphEmailAddress** · keyword\
  `/components/schemas/microsoft.graph.emailAddress/type`\
  Projected into the object definition.

- **MicrosoftGraphEmailAddress** · schema\
  `/components/schemas/microsoft.graph.emailAddress`\
  Drafted an object with list, detail, form contexts; no traits applied.

- **MicrosoftGraphEntity** · keyword\
  `/components/schemas/microsoft.graph.entity/properties/id/description`\
  Retained in the object field contract.

- **MicrosoftGraphEntity** · keyword\
  `/components/schemas/microsoft.graph.entity/properties/id/type`\
  Retained in the object field contract.

- **MicrosoftGraphEntity** · property\
  `/components/schemas/microsoft.graph.entity/properties/id`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphEntity** · keyword\
  `/components/schemas/microsoft.graph.entity/properties`\
  Projected into the object definition.

- **MicrosoftGraphEntity** · keyword\
  `/components/schemas/microsoft.graph.entity/required`\
  Projected into the object definition.

- **MicrosoftGraphEntity** · keyword\
  `/components/schemas/microsoft.graph.entity/title`\
  Projected into the object definition.

- **MicrosoftGraphEntity** · keyword\
  `/components/schemas/microsoft.graph.entity/type`\
  Projected into the object definition.

- **MicrosoftGraphEntity** · schema\
  `/components/schemas/microsoft.graph.entity`\
  Drafted an object with list, detail, form contexts; no traits applied.

- **MicrosoftGraphExtension** · keyword\
  `/components/schemas/microsoft.graph.extension/allOf`\
  Projected into the object definition.

- **MicrosoftGraphExtension** · schema\
  `/components/schemas/microsoft.graph.extension`\
  Drafted an object with list, detail, form contexts; no traits applied.

- **MicrosoftGraphMultiValueLegacyExtendedProperty** · keyword\
  `/components/schemas/microsoft.graph.multiValueLegacyExtendedProperty/allOf/1/properties/value/items/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphMultiValueLegacyExtendedProperty** · keyword\
  `/components/schemas/microsoft.graph.multiValueLegacyExtendedProperty/allOf`\
  Projected into the object definition.

- **MicrosoftGraphMultiValueLegacyExtendedProperty** · schema\
  `/components/schemas/microsoft.graph.multiValueLegacyExtendedProperty`\
  Drafted an object with list, detail, form contexts; no traits applied.

- **MicrosoftGraphOutlookItem** · keyword\
  `/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/categories/items/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphOutlookItem** · keyword\
  `/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/changeKey/description`\
  Retained in the object field contract.

- **MicrosoftGraphOutlookItem** · keyword\
  `/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/changeKey/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphOutlookItem** · keyword\
  `/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/changeKey/type`\
  Retained in the object field contract.

- **MicrosoftGraphOutlookItem** · property\
  `/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/changeKey`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphOutlookItem** · keyword\
  `/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/createdDateTime/description`\
  Retained in the object field contract.

- **MicrosoftGraphOutlookItem** · keyword\
  `/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/createdDateTime/format`\
  Retained in the object field contract.

- **MicrosoftGraphOutlookItem** · keyword\
  `/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/createdDateTime/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphOutlookItem** · keyword\
  `/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/createdDateTime/pattern`\
  Retained in the object field contract.

- **MicrosoftGraphOutlookItem** · keyword\
  `/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/createdDateTime/type`\
  Retained in the object field contract.

- **MicrosoftGraphOutlookItem** · property\
  `/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/createdDateTime`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphOutlookItem** · keyword\
  `/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/lastModifiedDateTime/description`\
  Retained in the object field contract.

- **MicrosoftGraphOutlookItem** · keyword\
  `/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/lastModifiedDateTime/format`\
  Retained in the object field contract.

- **MicrosoftGraphOutlookItem** · keyword\
  `/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/lastModifiedDateTime/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphOutlookItem** · keyword\
  `/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/lastModifiedDateTime/pattern`\
  Retained in the object field contract.

- **MicrosoftGraphOutlookItem** · keyword\
  `/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/lastModifiedDateTime/type`\
  Retained in the object field contract.

- **MicrosoftGraphOutlookItem** · property\
  `/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/lastModifiedDateTime`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphOutlookItem** · keyword\
  `/components/schemas/microsoft.graph.outlookItem/allOf`\
  Projected into the object definition.

- **MicrosoftGraphOutlookItem** · schema\
  `/components/schemas/microsoft.graph.outlookItem`\
  Drafted an object with list, detail, form contexts; no traits applied.

- **MicrosoftGraphPhysicalAddress** · keyword\
  `/components/schemas/microsoft.graph.physicalAddress/properties/city/description`\
  Retained in the object field contract.

- **MicrosoftGraphPhysicalAddress** · keyword\
  `/components/schemas/microsoft.graph.physicalAddress/properties/city/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphPhysicalAddress** · keyword\
  `/components/schemas/microsoft.graph.physicalAddress/properties/city/type`\
  Retained in the object field contract.

- **MicrosoftGraphPhysicalAddress** · property\
  `/components/schemas/microsoft.graph.physicalAddress/properties/city`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphPhysicalAddress** · keyword\
  `/components/schemas/microsoft.graph.physicalAddress/properties/countryOrRegion/description`\
  Retained in the object field contract.

- **MicrosoftGraphPhysicalAddress** · keyword\
  `/components/schemas/microsoft.graph.physicalAddress/properties/countryOrRegion/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphPhysicalAddress** · keyword\
  `/components/schemas/microsoft.graph.physicalAddress/properties/countryOrRegion/type`\
  Retained in the object field contract.

- **MicrosoftGraphPhysicalAddress** · property\
  `/components/schemas/microsoft.graph.physicalAddress/properties/countryOrRegion`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphPhysicalAddress** · keyword\
  `/components/schemas/microsoft.graph.physicalAddress/properties/postalCode/description`\
  Retained in the object field contract.

- **MicrosoftGraphPhysicalAddress** · keyword\
  `/components/schemas/microsoft.graph.physicalAddress/properties/postalCode/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphPhysicalAddress** · keyword\
  `/components/schemas/microsoft.graph.physicalAddress/properties/postalCode/type`\
  Retained in the object field contract.

- **MicrosoftGraphPhysicalAddress** · property\
  `/components/schemas/microsoft.graph.physicalAddress/properties/postalCode`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphPhysicalAddress** · keyword\
  `/components/schemas/microsoft.graph.physicalAddress/properties/state/description`\
  Retained in the object field contract.

- **MicrosoftGraphPhysicalAddress** · keyword\
  `/components/schemas/microsoft.graph.physicalAddress/properties/state/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphPhysicalAddress** · keyword\
  `/components/schemas/microsoft.graph.physicalAddress/properties/state/type`\
  Retained in the object field contract.

- **MicrosoftGraphPhysicalAddress** · property\
  `/components/schemas/microsoft.graph.physicalAddress/properties/state`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphPhysicalAddress** · keyword\
  `/components/schemas/microsoft.graph.physicalAddress/properties/street/description`\
  Retained in the object field contract.

- **MicrosoftGraphPhysicalAddress** · keyword\
  `/components/schemas/microsoft.graph.physicalAddress/properties/street/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphPhysicalAddress** · keyword\
  `/components/schemas/microsoft.graph.physicalAddress/properties/street/type`\
  Retained in the object field contract.

- **MicrosoftGraphPhysicalAddress** · property\
  `/components/schemas/microsoft.graph.physicalAddress/properties/street`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphPhysicalAddress** · keyword\
  `/components/schemas/microsoft.graph.physicalAddress/properties`\
  Projected into the object definition.

- **MicrosoftGraphPhysicalAddress** · keyword\
  `/components/schemas/microsoft.graph.physicalAddress/required`\
  Projected into the object definition.

- **MicrosoftGraphPhysicalAddress** · keyword\
  `/components/schemas/microsoft.graph.physicalAddress/title`\
  Projected into the object definition.

- **MicrosoftGraphPhysicalAddress** · keyword\
  `/components/schemas/microsoft.graph.physicalAddress/type`\
  Projected into the object definition.

- **MicrosoftGraphPhysicalAddress** · schema\
  `/components/schemas/microsoft.graph.physicalAddress`\
  Drafted an object with list, detail, form contexts; no traits applied.

- **MicrosoftGraphProfilePhoto** · keyword\
  `/components/schemas/microsoft.graph.profilePhoto/allOf/1/properties/height/description`\
  Retained in the object field contract.

- **MicrosoftGraphProfilePhoto** · keyword\
  `/components/schemas/microsoft.graph.profilePhoto/allOf/1/properties/height/format`\
  Retained in the object field contract.

- **MicrosoftGraphProfilePhoto** · keyword\
  `/components/schemas/microsoft.graph.profilePhoto/allOf/1/properties/height/maximum`\
  Retained in the object field contract.

- **MicrosoftGraphProfilePhoto** · keyword\
  `/components/schemas/microsoft.graph.profilePhoto/allOf/1/properties/height/minimum`\
  Retained in the object field contract.

- **MicrosoftGraphProfilePhoto** · keyword\
  `/components/schemas/microsoft.graph.profilePhoto/allOf/1/properties/height/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphProfilePhoto** · keyword\
  `/components/schemas/microsoft.graph.profilePhoto/allOf/1/properties/height/type`\
  Retained in the object field contract.

- **MicrosoftGraphProfilePhoto** · property\
  `/components/schemas/microsoft.graph.profilePhoto/allOf/1/properties/height`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphProfilePhoto** · keyword\
  `/components/schemas/microsoft.graph.profilePhoto/allOf/1/properties/width/description`\
  Retained in the object field contract.

- **MicrosoftGraphProfilePhoto** · keyword\
  `/components/schemas/microsoft.graph.profilePhoto/allOf/1/properties/width/format`\
  Retained in the object field contract.

- **MicrosoftGraphProfilePhoto** · keyword\
  `/components/schemas/microsoft.graph.profilePhoto/allOf/1/properties/width/maximum`\
  Retained in the object field contract.

- **MicrosoftGraphProfilePhoto** · keyword\
  `/components/schemas/microsoft.graph.profilePhoto/allOf/1/properties/width/minimum`\
  Retained in the object field contract.

- **MicrosoftGraphProfilePhoto** · keyword\
  `/components/schemas/microsoft.graph.profilePhoto/allOf/1/properties/width/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphProfilePhoto** · keyword\
  `/components/schemas/microsoft.graph.profilePhoto/allOf/1/properties/width/type`\
  Retained in the object field contract.

- **MicrosoftGraphProfilePhoto** · property\
  `/components/schemas/microsoft.graph.profilePhoto/allOf/1/properties/width`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphProfilePhoto** · keyword\
  `/components/schemas/microsoft.graph.profilePhoto/allOf`\
  Projected into the object definition.

- **MicrosoftGraphProfilePhoto** · schema\
  `/components/schemas/microsoft.graph.profilePhoto`\
  Drafted an object with list, detail, form contexts; no traits applied.

- **MicrosoftGraphSingleValueLegacyExtendedProperty** · keyword\
  `/components/schemas/microsoft.graph.singleValueLegacyExtendedProperty/allOf/1/properties/value/description`\
  Retained in the object field contract.

- **MicrosoftGraphSingleValueLegacyExtendedProperty** · keyword\
  `/components/schemas/microsoft.graph.singleValueLegacyExtendedProperty/allOf/1/properties/value/nullable`\
  Converted to a JSON Schema null union.

- **MicrosoftGraphSingleValueLegacyExtendedProperty** · keyword\
  `/components/schemas/microsoft.graph.singleValueLegacyExtendedProperty/allOf/1/properties/value/type`\
  Retained in the object field contract.

- **MicrosoftGraphSingleValueLegacyExtendedProperty** · property\
  `/components/schemas/microsoft.graph.singleValueLegacyExtendedProperty/allOf/1/properties/value`\
  Mapped to an object field; unsupported constraints remain explicitly listed in the report.

- **MicrosoftGraphSingleValueLegacyExtendedProperty** · keyword\
  `/components/schemas/microsoft.graph.singleValueLegacyExtendedProperty/allOf`\
  Projected into the object definition.

- **MicrosoftGraphSingleValueLegacyExtendedProperty** · schema\
  `/components/schemas/microsoft.graph.singleValueLegacyExtendedProperty`\
  Drafted an object with list, detail, form contexts; no traits applied.

Proposed



Unmapped

- **MicrosoftGraphContact** · link\
  `/components/schemas/microsoft.graph.contact/allOf/0/$ref`\
  Preserved as a local hub reference; draft projection decides whether it is a relationship.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/@odata.type/default`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/@odata.type/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/@odata.type`\
  Field name is not a valid object/code identifier; rename explicitly before applying.

- **MicrosoftGraphContact** · link\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/businessAddress/anyOf/0/$ref`\
  Preserved as a local hub reference; draft projection decides whether it is a relationship.

- **MicrosoftGraphContact** · variant\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/businessAddress/anyOf/0`\
  anyOf alternative retained separately; variants are never silently merged.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/businessAddress/anyOf/1/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · variant\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/businessAddress/anyOf/1`\
  anyOf alternative retained separately; variants are never silently merged.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/businessAddress/anyOf`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/businessAddress/description`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/businessAddress`\
  oneOf/anyOf variants retained separately; no variant is selected automatically.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/businessPhones/description`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/businessPhones/items/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/businessPhones/items`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/businessPhones/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/businessPhones`\
  Nested documents, maps and unconstrained fields are retained in the hub; the scalar object editor cannot represent them.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/children/description`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/children/items/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/children/items`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/children/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/children`\
  Nested documents, maps and unconstrained fields are retained in the hub; the scalar object editor cannot represent them.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/emailAddresses/items`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/extensions/items`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/extensions/x-ms-navigationProperty`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · link\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/homeAddress/anyOf/0/$ref`\
  Preserved as a local hub reference; draft projection decides whether it is a relationship.

- **MicrosoftGraphContact** · variant\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/homeAddress/anyOf/0`\
  anyOf alternative retained separately; variants are never silently merged.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/homeAddress/anyOf/1/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · variant\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/homeAddress/anyOf/1`\
  anyOf alternative retained separately; variants are never silently merged.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/homeAddress/anyOf`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/homeAddress/description`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/homeAddress`\
  oneOf/anyOf variants retained separately; no variant is selected automatically.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/homePhones/description`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/homePhones/items/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/homePhones/items`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/homePhones/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/homePhones`\
  Nested documents, maps and unconstrained fields are retained in the hub; the scalar object editor cannot represent them.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/imAddresses/description`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/imAddresses/items/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/imAddresses/items`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/imAddresses/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/imAddresses`\
  Nested documents, maps and unconstrained fields are retained in the hub; the scalar object editor cannot represent them.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/multiValueExtendedProperties/items`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/multiValueExtendedProperties/x-ms-navigationProperty`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · link\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/otherAddress/anyOf/0/$ref`\
  Preserved as a local hub reference; draft projection decides whether it is a relationship.

- **MicrosoftGraphContact** · variant\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/otherAddress/anyOf/0`\
  anyOf alternative retained separately; variants are never silently merged.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/otherAddress/anyOf/1/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · variant\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/otherAddress/anyOf/1`\
  anyOf alternative retained separately; variants are never silently merged.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/otherAddress/anyOf`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/otherAddress/description`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/otherAddress`\
  oneOf/anyOf variants retained separately; no variant is selected automatically.

- **MicrosoftGraphContact** · link\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/photo/anyOf/0/$ref`\
  Preserved as a local hub reference; draft projection decides whether it is a relationship.

- **MicrosoftGraphContact** · variant\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/photo/anyOf/0`\
  anyOf alternative retained separately; variants are never silently merged.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/photo/anyOf/1/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · variant\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/photo/anyOf/1`\
  anyOf alternative retained separately; variants are never silently merged.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/photo/anyOf`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/photo/description`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/photo/x-ms-navigationProperty`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/photo`\
  oneOf/anyOf variants retained separately; no variant is selected automatically.

- **MicrosoftGraphContact** · link\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/primaryEmailAddress/anyOf/0/$ref`\
  Preserved as a local hub reference; draft projection decides whether it is a relationship.

- **MicrosoftGraphContact** · variant\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/primaryEmailAddress/anyOf/0`\
  anyOf alternative retained separately; variants are never silently merged.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/primaryEmailAddress/anyOf/1/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · variant\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/primaryEmailAddress/anyOf/1`\
  anyOf alternative retained separately; variants are never silently merged.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/primaryEmailAddress/anyOf`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/primaryEmailAddress/description`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/primaryEmailAddress`\
  oneOf/anyOf variants retained separately; no variant is selected automatically.

- **MicrosoftGraphContact** · link\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/secondaryEmailAddress/anyOf/0/$ref`\
  Preserved as a local hub reference; draft projection decides whether it is a relationship.

- **MicrosoftGraphContact** · variant\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/secondaryEmailAddress/anyOf/0`\
  anyOf alternative retained separately; variants are never silently merged.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/secondaryEmailAddress/anyOf/1/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · variant\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/secondaryEmailAddress/anyOf/1`\
  anyOf alternative retained separately; variants are never silently merged.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/secondaryEmailAddress/anyOf`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/secondaryEmailAddress/description`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/secondaryEmailAddress`\
  oneOf/anyOf variants retained separately; no variant is selected automatically.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/singleValueExtendedProperties/items`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/singleValueExtendedProperties/x-ms-navigationProperty`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · link\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/tertiaryEmailAddress/anyOf/0/$ref`\
  Preserved as a local hub reference; draft projection decides whether it is a relationship.

- **MicrosoftGraphContact** · variant\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/tertiaryEmailAddress/anyOf/0`\
  anyOf alternative retained separately; variants are never silently merged.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/tertiaryEmailAddress/anyOf/1/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · variant\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/tertiaryEmailAddress/anyOf/1`\
  anyOf alternative retained separately; variants are never silently merged.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/tertiaryEmailAddress/anyOf`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/tertiaryEmailAddress/description`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · property\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties/tertiaryEmailAddress`\
  oneOf/anyOf variants retained separately; no variant is selected automatically.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/properties`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/required`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/title`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/allOf/1/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphContact** · keyword\
  `/components/schemas/microsoft.graph.contact/x-ms-discriminator-value`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphEmailAddress** · keyword\
  `/components/schemas/microsoft.graph.emailAddress/properties/@odata.type/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphEmailAddress** · property\
  `/components/schemas/microsoft.graph.emailAddress/properties/@odata.type`\
  Field name is not a valid object/code identifier; rename explicitly before applying.

- **MicrosoftGraphEntity** · keyword\
  `/components/schemas/microsoft.graph.entity/discriminator`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphEntity** · keyword\
  `/components/schemas/microsoft.graph.entity/properties/@odata.type/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphEntity** · property\
  `/components/schemas/microsoft.graph.entity/properties/@odata.type`\
  Field name is not a valid object/code identifier; rename explicitly before applying.

- **MicrosoftGraphExtension** · link\
  `/components/schemas/microsoft.graph.extension/allOf/0/$ref`\
  Preserved as a local hub reference; draft projection decides whether it is a relationship.

- **MicrosoftGraphExtension** · keyword\
  `/components/schemas/microsoft.graph.extension/allOf/1/discriminator`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphExtension** · keyword\
  `/components/schemas/microsoft.graph.extension/allOf/1/properties/@odata.type/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphExtension** · property\
  `/components/schemas/microsoft.graph.extension/allOf/1/properties/@odata.type`\
  Field name is not a valid object/code identifier; rename explicitly before applying.

- **MicrosoftGraphExtension** · keyword\
  `/components/schemas/microsoft.graph.extension/allOf/1/properties`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphExtension** · keyword\
  `/components/schemas/microsoft.graph.extension/allOf/1/required`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphExtension** · keyword\
  `/components/schemas/microsoft.graph.extension/allOf/1/title`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphExtension** · keyword\
  `/components/schemas/microsoft.graph.extension/allOf/1/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphMultiValueLegacyExtendedProperty** · link\
  `/components/schemas/microsoft.graph.multiValueLegacyExtendedProperty/allOf/0/$ref`\
  Preserved as a local hub reference; draft projection decides whether it is a relationship.

- **MicrosoftGraphMultiValueLegacyExtendedProperty** · keyword\
  `/components/schemas/microsoft.graph.multiValueLegacyExtendedProperty/allOf/1/properties/@odata.type/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphMultiValueLegacyExtendedProperty** · property\
  `/components/schemas/microsoft.graph.multiValueLegacyExtendedProperty/allOf/1/properties/@odata.type`\
  Field name is not a valid object/code identifier; rename explicitly before applying.

- **MicrosoftGraphMultiValueLegacyExtendedProperty** · keyword\
  `/components/schemas/microsoft.graph.multiValueLegacyExtendedProperty/allOf/1/properties/value/description`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphMultiValueLegacyExtendedProperty** · keyword\
  `/components/schemas/microsoft.graph.multiValueLegacyExtendedProperty/allOf/1/properties/value/items/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphMultiValueLegacyExtendedProperty** · keyword\
  `/components/schemas/microsoft.graph.multiValueLegacyExtendedProperty/allOf/1/properties/value/items`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphMultiValueLegacyExtendedProperty** · keyword\
  `/components/schemas/microsoft.graph.multiValueLegacyExtendedProperty/allOf/1/properties/value/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphMultiValueLegacyExtendedProperty** · property\
  `/components/schemas/microsoft.graph.multiValueLegacyExtendedProperty/allOf/1/properties/value`\
  Nested documents, maps and unconstrained fields are retained in the hub; the scalar object editor cannot represent them.

- **MicrosoftGraphMultiValueLegacyExtendedProperty** · keyword\
  `/components/schemas/microsoft.graph.multiValueLegacyExtendedProperty/allOf/1/properties`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphMultiValueLegacyExtendedProperty** · keyword\
  `/components/schemas/microsoft.graph.multiValueLegacyExtendedProperty/allOf/1/required`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphMultiValueLegacyExtendedProperty** · keyword\
  `/components/schemas/microsoft.graph.multiValueLegacyExtendedProperty/allOf/1/title`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphMultiValueLegacyExtendedProperty** · keyword\
  `/components/schemas/microsoft.graph.multiValueLegacyExtendedProperty/allOf/1/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphMultiValueLegacyExtendedProperty** · keyword\
  `/components/schemas/microsoft.graph.multiValueLegacyExtendedProperty/x-ms-discriminator-value`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphOutlookItem** · link\
  `/components/schemas/microsoft.graph.outlookItem/allOf/0/$ref`\
  Preserved as a local hub reference; draft projection decides whether it is a relationship.

- **MicrosoftGraphOutlookItem** · keyword\
  `/components/schemas/microsoft.graph.outlookItem/allOf/1/discriminator`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphOutlookItem** · keyword\
  `/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/@odata.type/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphOutlookItem** · property\
  `/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/@odata.type`\
  Field name is not a valid object/code identifier; rename explicitly before applying.

- **MicrosoftGraphOutlookItem** · keyword\
  `/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/categories/description`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphOutlookItem** · keyword\
  `/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/categories/items/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphOutlookItem** · keyword\
  `/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/categories/items`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphOutlookItem** · keyword\
  `/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/categories/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphOutlookItem** · property\
  `/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/categories`\
  Nested documents, maps and unconstrained fields are retained in the hub; the scalar object editor cannot represent them.

- **MicrosoftGraphOutlookItem** · keyword\
  `/components/schemas/microsoft.graph.outlookItem/allOf/1/properties`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphOutlookItem** · keyword\
  `/components/schemas/microsoft.graph.outlookItem/allOf/1/required`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphOutlookItem** · keyword\
  `/components/schemas/microsoft.graph.outlookItem/allOf/1/title`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphOutlookItem** · keyword\
  `/components/schemas/microsoft.graph.outlookItem/allOf/1/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphPhysicalAddress** · keyword\
  `/components/schemas/microsoft.graph.physicalAddress/properties/@odata.type/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphPhysicalAddress** · property\
  `/components/schemas/microsoft.graph.physicalAddress/properties/@odata.type`\
  Field name is not a valid object/code identifier; rename explicitly before applying.

- **MicrosoftGraphProfilePhoto** · link\
  `/components/schemas/microsoft.graph.profilePhoto/allOf/0/$ref`\
  Preserved as a local hub reference; draft projection decides whether it is a relationship.

- **MicrosoftGraphProfilePhoto** · keyword\
  `/components/schemas/microsoft.graph.profilePhoto/allOf/1/properties/@odata.type/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphProfilePhoto** · property\
  `/components/schemas/microsoft.graph.profilePhoto/allOf/1/properties/@odata.type`\
  Field name is not a valid object/code identifier; rename explicitly before applying.

- **MicrosoftGraphProfilePhoto** · keyword\
  `/components/schemas/microsoft.graph.profilePhoto/allOf/1/properties`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphProfilePhoto** · keyword\
  `/components/schemas/microsoft.graph.profilePhoto/allOf/1/required`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphProfilePhoto** · keyword\
  `/components/schemas/microsoft.graph.profilePhoto/allOf/1/title`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphProfilePhoto** · keyword\
  `/components/schemas/microsoft.graph.profilePhoto/allOf/1/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphProfilePhoto** · keyword\
  `/components/schemas/microsoft.graph.profilePhoto/x-ms-discriminator-value`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphSingleValueLegacyExtendedProperty** · link\
  `/components/schemas/microsoft.graph.singleValueLegacyExtendedProperty/allOf/0/$ref`\
  Preserved as a local hub reference; draft projection decides whether it is a relationship.

- **MicrosoftGraphSingleValueLegacyExtendedProperty** · keyword\
  `/components/schemas/microsoft.graph.singleValueLegacyExtendedProperty/allOf/1/properties/@odata.type/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphSingleValueLegacyExtendedProperty** · property\
  `/components/schemas/microsoft.graph.singleValueLegacyExtendedProperty/allOf/1/properties/@odata.type`\
  Field name is not a valid object/code identifier; rename explicitly before applying.

- **MicrosoftGraphSingleValueLegacyExtendedProperty** · keyword\
  `/components/schemas/microsoft.graph.singleValueLegacyExtendedProperty/allOf/1/properties`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphSingleValueLegacyExtendedProperty** · keyword\
  `/components/schemas/microsoft.graph.singleValueLegacyExtendedProperty/allOf/1/required`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphSingleValueLegacyExtendedProperty** · keyword\
  `/components/schemas/microsoft.graph.singleValueLegacyExtendedProperty/allOf/1/title`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphSingleValueLegacyExtendedProperty** · keyword\
  `/components/schemas/microsoft.graph.singleValueLegacyExtendedProperty/allOf/1/type`\
  Preserved in the hub; not enforced by the object field contract.

- **MicrosoftGraphSingleValueLegacyExtendedProperty** · keyword\
  `/components/schemas/microsoft.graph.singleValueLegacyExtendedProperty/x-ms-discriminator-value`\
  Preserved in the hub; not enforced by the object field contract.

- ****· keyword\
  `/info`\
  API metadata/transport configuration has no object projection; source subtree retained in the input.

- ****· keyword\
  `/openapi`\
  API metadata/transport configuration has no object projection; source subtree retained in the input.

* [hub.json](https://oods-foundry.com/demos/import-objects/files/bundle/hub.json)
* [report.json](https://oods-foundry.com/demos/import-objects/files/bundle/report.json)
* [order.json](https://oods-foundry.com/demos/import-objects/files/bundle/order.json)
* [diff.json](https://oods-foundry.com/demos/import-objects/files/bundle/diff.json)

## Explicit acceptance

We accepted all drafted objects together, with no trait proposals and no edits to their YAML. The registry calls below show the objects absent before acceptance and present afterwards.

9 objects · 0 accepted trait proposals

1. `object_registry` · registry-before-apply

   Its input:

   ```
   {
     "action": "list",
     "includeInternal": true
   }
   ```

   Its result:

   ```
   {
     "objects": [
       {
         "name": "Article",
         "domain": "content.publication",
         "version": "1.0.0",
         "maturity": null,
         "description": "Canonical editorial article with hybrid taxonomy + tag classification for CMS surfaces.",
         "traits": [
           "content/Labelled",
           "lifecycle/Stateful",
           "lifecycle/Timestampable",
           "core/Classifiable"
         ],
         "fieldCount": 11,
         "tags": [
           "content",
           "article",
           "hybrid",
           "classifiable"
         ],
         "visibility": "public",
         "source": "shipped"
       },
       {
         "name": "Invoice",
         "domain": "saas.billing",
         "version": "1.0.0",
         "maturity": "beta",
         "description": "Canonical SaaS invoice object normalizing payment terms, status, and refund posture.",
         "traits": [
           "SaaSBillingPayable",
           "SaaSBillingRefundable",
           "lifecycle/Timestampable",
           "viz/MarkBar"
         ],
         "fieldCount": 14,
         "tags": [
           "billing",
           "invoice",
           "finance"
         ],
         "visibility": "public",
         "source": "shipped"
       },
       {
         "name": "Media",
         "domain": "content.asset",
         "version": "1.0.0",
         "maturity": null,
         "description": "Canonical digital asset metadata powering media library, DAM, and CMS integrations.",
         "traits": [
           "content/Labelled",
           "lifecycle/Stateful",
           "lifecycle/Timestampable",
           "core/Classifiable"
         ],
         "fieldCount": 12,
         "tags": [
           "content",
           "media",
           "asset",
           "classifiable"
         ],
         "visibility": "public",
         "source": "shipped"
       },
       {
         "name": "Organization",
         "domain": "core.account",
         "version": "1.2.0",
         "maturity": null,
         "description": "Canonical account record for tenant and workspace governance across the platform.",
         "traits": [
           "content/Labelled",
           "lifecycle/Stateful",
           "structural/Ownerable",
           "lifecycle/Timestampable",
           "behavioral/Taggable",
           "core/Addressable",
           "core/Preferenceable",
           "core/Authable",
           "core/Communicable"
         ],
         "fieldCount": 9,
         "tags": [
           "universal",
           "organization",
           "tenant"
         ],
         "visibility": "public",
         "source": "shipped"
       },
       {
         "name": "Plan",
         "domain": "saas.billing",
         "version": "1.0.0",
         "maturity": "beta",
         "description": "Normalized plan definition capturing pricing, packaging, and entitlement metadata.",
         "traits": [
           "SaaSBillingBillable",
           "SaaSBillingMetered",
           "structural/Ownerable"
         ],
         "fieldCount": 9,
         "tags": [
           "billing",
           "plan",
           "packaging"
         ],
         "visibility": "public",
         "source": "shipped"
       },
       {
         "name": "Product",
         "domain": "core.catalog",
         "version": "1.1.0",
         "maturity": null,
         "description": "Canonical catalog entry combining pricing, lifecycle, and merchandising metadata.",
         "traits": [
           "content/Labelled",
           "lifecycle/Stateful",
           "lifecycle/Timestampable",
           "financial/Priceable",
           "core/Classifiable",
           "behavioral/Searchable",
           "behavioral/Filterable",
           "behavioral/Pageable"
         ],
         "fieldCount": 7,
         "tags": [
           "universal",
           "product",
           "commerce",
           "taxonomy"
         ],
         "visibility": "public",
         "source": "shipped"
       },
       {
         "name": "Relationship",
         "domain": "core.graph",
         "version": "1.1.0",
         "maturity": null,
         "description": "Canonical graph edge linking two entities with lifecycle, ownership, and tagging semantics.",
         "traits": [
           "content/Labelled",
           "lifecycle/Stateful",
           "lifecycle/Timestampable",
           "structural/Ownerable",
           "behavioral/Taggable",
           "viz/MarkGraph"
         ],
         "fieldCount": 12,
         "tags": [
           "universal",
           "relationship",
           "graph"
         ],
         "visibility": "public",
         "source": "shipped"
       },
       {
         "name": "Subscription",
         "domain": "core.billing",
         "version": "2.0.0",
         "maturity": "beta",
         "description": "Canonical subscription record composing lifecycle, billing, and cancellation semantics.",
         "traits": [
           "lifecycle/Stateful",
           "lifecycle/Cancellable",
           "lifecycle/Timestampable",
           "financial/Billable",
           "lifecycle/Archivable",
           "viz/MarkBar"
         ],
         "fieldCount": 18,
         "tags": [
           "billing",
           "lifecycle",
           "monetization"
         ],
         "visibility": "public",
         "source": "shipped"
       },
       {
         "name": "Transaction",
         "domain": "core.commerce",
         "version": "1.1.0",
         "maturity": null,
         "description": "Canonical transaction record tracking monetary movement, lifecycle, and audit metadata.",
         "traits": [
           "lifecycle/Stateful",
           "lifecycle/Timestampable",
           "financial/Priceable",
           "lifecycle/Cancellable",
           "lifecycle/Archivable"
         ],
         "fieldCount": 11,
         "tags": [
           "universal",
           "transaction",
           "commerce"
         ],
         "visibility": "public",
         "source": "shipped"
       },
       {
         "name": "Usage",
         "domain": "saas.billing",
         "version": "1.0.0",
         "maturity": "beta",
         "description": "Metered usage snapshot for consumption based billing supporting trend analysis and overage forecasting.",
         "traits": [
           "SaaSBillingMetered",
           "lifecycle/Timestampable",
           "viz/MarkLine"
         ],
         "fieldCount": 11,
         "tags": [
           "billing",
           "usage",
           "analytics"
         ],
         "visibility": "public",
         "source": "shipped"
       },
       {
         "name": "User",
         "domain": "core.identity",
         "version": "1.4.0",
         "maturity": "stable",
         "description": "Canonical identity record representing a platform user across lifecycle contexts.",
         "traits": [
           "lifecycle/Stateful",
           "lifecycle/Timestampable",
           "behavioral/Taggable",
           "core/Addressable",
           "core/Preferenceable",
           "core/Authable",
           "core/Communicable"
         ],
         "fieldCount": 7,
         "tags": [
           "universal",
           "identity",
           "core"
         ],
         "visibility": "public",
         "source": "shipped"
       },
       {
         "name": "CapturedArtifact",
         "domain": "capture.artifact",
         "version": "0.3.0",
         "maturity": "alpha",
         "description": "A file a capture run wrote, with the attestation its run manifest records: the file's kind, path, size, when it was written and its sha256.",
         "traits": [
           "behavioral/Searchable",
           "behavioral/Filterable",
           "behavioral/Pageable",
           "core/Assessable",
           "core/Provenanced"
         ],
         "fieldCount": 15,
         "tags": [
           "capture",
           "artifact",
           "attestation"
         ],
         "visibility": "internal",
         "source": "shipped"
       },
       {
         "name": "Comparison",
         "domain": "capture.comparison",
         "version": "0.3.0",
         "maturity": "alpha",
         "description": "A read-only drift analysis of one captured product: how its live values compare with its design's values, with the capture's and the analysis's identities and times kept apart.",
         "traits": [
           "core/Assessable",
           "core/Provenanced"
         ],
         "fieldCount": 25,
         "tags": [
           "comparison",
           "read-only"
         ],
         "visibility": "internal",
         "source": "shipped"
       },
       {
         "name": "ComparisonSignal",
         "domain": "capture.comparison",
         "version": "0.3.0",
         "maturity": "alpha",
         "description": "One difference a drift analysis recorded between a captured product's live value and its design's values, with both comparands retained. It is not an accessibility finding.",
         "traits": [
           "behavioral/Searchable",
           "behavioral/Filterable",
           "behavioral/Pageable",
           "core/Assessable",
           "core/Provenanced"
         ],
         "fieldCount": 22,
         "tags": [
           "comparison",
           "read-only"
         ],
         "visibility": "internal",
         "source": "shipped"
       },
       {
         "name": "Finding",
         "domain": "capture.finding",
         "version": "0.3.0",
         "maturity": "alpha",
         "description": "One accessibility rule's result on one captured page, with the engine that reported it and the evidence the run attests. Violations and needs-review items carry their reasons; page-level counts alone never become findings.",
         "traits": [
           "behavioral/Searchable",
           "behavioral/Filterable",
           "behavioral/Pageable",
           "core/Assessable",
           "core/Provenanced"
         ],
         "fieldCount": 19,
         "tags": [
           "capture",
           "finding",
           "accessibility"
         ],
         "visibility": "internal",
         "source": "shipped"
       },
       {
         "name": "Run",
         "domain": "capture.run",
         "version": "0.3.0",
         "maturity": "alpha",
         "description": "One capture of one product: when it ran, what it read and what it found, as the run's manifest, accessibility report and artifact index record them.",
         "traits": [
           "behavioral/Searchable",
           "behavioral/Filterable",
           "behavioral/Pageable",
           "core/Provenanced"
         ],
         "fieldCount": 28,
         "tags": [
           "capture",
           "run"
         ],
         "visibility": "internal",
         "source": "shipped"
       }
     ],
     "totalCount": 16,
     "hiddenInternal": 0,
     "filters": {
       "domain": null,
       "maturity": null,
       "trait": null
     },
     "folders": {
       "objects": "~/.oods-foundry/objects",
       "traits": "~/.oods-foundry/traits"
     },
     "issues": []
   }
   ```

2. `object_import` · apply

   Its input:

   ```
   {
     "action": "apply",
     "importId": "import-18f1e3a7ece3a23b009136ed8c6ba2994b85a2e3de2fff04970c06b61828d3d2",
     "objects": [
       {
         "name": "MicrosoftGraphEmailAddress"
       },
       {
         "name": "MicrosoftGraphExtension"
       },
       {
         "name": "MicrosoftGraphMultiValueLegacyExtendedProperty"
       },
       {
         "name": "MicrosoftGraphSingleValueLegacyExtendedProperty"
       },
       {
         "name": "MicrosoftGraphContact"
       },
       {
         "name": "MicrosoftGraphEntity"
       },
       {
         "name": "MicrosoftGraphOutlookItem"
       },
       {
         "name": "MicrosoftGraphPhysicalAddress"
       },
       {
         "name": "MicrosoftGraphProfilePhoto"
       }
     ]
   }
   ```

   Its result:

   ```
   {
     "action": "apply",
     "importId": "import-18f1e3a7ece3a23b009136ed8c6ba2994b85a2e3de2fff04970c06b61828d3d2",
     "applied": [
       {
         "name": "MicrosoftGraphEmailAddress",
         "contexts": [
           "list",
           "detail",
           "form"
         ]
       },
       {
         "name": "MicrosoftGraphExtension",
         "contexts": [
           "list",
           "detail",
           "form"
         ]
       },
       {
         "name": "MicrosoftGraphMultiValueLegacyExtendedProperty",
         "contexts": [
           "list",
           "detail",
           "form"
         ]
       },
       {
         "name": "MicrosoftGraphSingleValueLegacyExtendedProperty",
         "contexts": [
           "list",
           "detail",
           "form"
         ]
       },
       {
         "name": "MicrosoftGraphContact",
         "contexts": [
           "list",
           "detail",
           "form"
         ]
       },
       {
         "name": "MicrosoftGraphEntity",
         "contexts": [
           "list",
           "detail",
           "form"
         ]
       },
       {
         "name": "MicrosoftGraphOutlookItem",
         "contexts": [
           "list",
           "detail",
           "form"
         ]
       },
       {
         "name": "MicrosoftGraphPhysicalAddress",
         "contexts": [
           "list",
           "detail",
           "form"
         ]
       },
       {
         "name": "MicrosoftGraphProfilePhoto",
         "contexts": [
           "list",
           "detail",
           "form"
         ]
       }
     ],
     "count": 9
   }
   ```

3. `object_registry` · registry-after-apply

   Its input:

   ```
   {
     "action": "list",
     "includeInternal": true
   }
   ```

   Its result:

   ```
   {
     "objects": [
       {
         "name": "Article",
         "domain": "content.publication",
         "version": "1.0.0",
         "maturity": null,
         "description": "Canonical editorial article with hybrid taxonomy + tag classification for CMS surfaces.",
         "traits": [
           "content/Labelled",
           "lifecycle/Stateful",
           "lifecycle/Timestampable",
           "core/Classifiable"
         ],
         "fieldCount": 11,
         "tags": [
           "content",
           "article",
           "hybrid",
           "classifiable"
         ],
         "visibility": "public",
         "source": "shipped"
       },
       {
         "name": "Invoice",
         "domain": "saas.billing",
         "version": "1.0.0",
         "maturity": "beta",
         "description": "Canonical SaaS invoice object normalizing payment terms, status, and refund posture.",
         "traits": [
           "SaaSBillingPayable",
           "SaaSBillingRefundable",
           "lifecycle/Timestampable",
           "viz/MarkBar"
         ],
         "fieldCount": 14,
         "tags": [
           "billing",
           "invoice",
           "finance"
         ],
         "visibility": "public",
         "source": "shipped"
       },
       {
         "name": "Media",
         "domain": "content.asset",
         "version": "1.0.0",
         "maturity": null,
         "description": "Canonical digital asset metadata powering media library, DAM, and CMS integrations.",
         "traits": [
           "content/Labelled",
           "lifecycle/Stateful",
           "lifecycle/Timestampable",
           "core/Classifiable"
         ],
         "fieldCount": 12,
         "tags": [
           "content",
           "media",
           "asset",
           "classifiable"
         ],
         "visibility": "public",
         "source": "shipped"
       },
       {
         "name": "MicrosoftGraphContact",
         "domain": "imported",
         "version": "1.0.0",
         "maturity": null,
         "description": "Imported microsoft.graph.contact schema. Samples without source examples are illustrative.",
         "traits": [],
         "fieldCount": 33,
         "tags": [],
         "visibility": "public",
         "source": "user"
       },
       {
         "name": "MicrosoftGraphEmailAddress",
         "domain": "imported",
         "version": "1.0.0",
         "maturity": null,
         "description": "Imported microsoft.graph.emailAddress schema. Samples without source examples are illustrative.",
         "traits": [],
         "fieldCount": 2,
         "tags": [],
         "visibility": "public",
         "source": "user"
       },
       {
         "name": "MicrosoftGraphEntity",
         "domain": "imported",
         "version": "1.0.0",
         "maturity": null,
         "description": "Imported microsoft.graph.entity schema. Samples without source examples are illustrative.",
         "traits": [],
         "fieldCount": 1,
         "tags": [],
         "visibility": "public",
         "source": "user"
       },
       {
         "name": "MicrosoftGraphExtension",
         "domain": "imported",
         "version": "1.0.0",
         "maturity": null,
         "description": "Imported microsoft.graph.extension schema. Samples without source examples are illustrative.",
         "traits": [],
         "fieldCount": 1,
         "tags": [],
         "visibility": "public",
         "source": "user"
       },
       {
         "name": "MicrosoftGraphMultiValueLegacyExtendedProperty",
         "domain": "imported",
         "version": "1.0.0",
         "maturity": null,
         "description": "Imported microsoft.graph.multiValueLegacyExtendedProperty schema. Samples without source examples are illustrative.",
         "traits": [],
         "fieldCount": 1,
         "tags": [],
         "visibility": "public",
         "source": "user"
       },
       {
         "name": "MicrosoftGraphOutlookItem",
         "domain": "imported",
         "version": "1.0.0",
         "maturity": null,
         "description": "Imported microsoft.graph.outlookItem schema. Samples without source examples are illustrative.",
         "traits": [],
         "fieldCount": 4,
         "tags": [],
         "visibility": "public",
         "source": "user"
       },
       {
         "name": "MicrosoftGraphPhysicalAddress",
         "domain": "imported",
         "version": "1.0.0",
         "maturity": null,
         "description": "Imported microsoft.graph.physicalAddress schema. Samples without source examples are illustrative.",
         "traits": [],
         "fieldCount": 5,
         "tags": [],
         "visibility": "public",
         "source": "user"
       },
       {
         "name": "MicrosoftGraphProfilePhoto",
         "domain": "imported",
         "version": "1.0.0",
         "maturity": null,
         "description": "Imported microsoft.graph.profilePhoto schema. Samples without source examples are illustrative.",
         "traits": [],
         "fieldCount": 3,
         "tags": [],
         "visibility": "public",
         "source": "user"
       },
       {
         "name": "MicrosoftGraphSingleValueLegacyExtendedProperty",
         "domain": "imported",
         "version": "1.0.0",
         "maturity": null,
         "description": "Imported microsoft.graph.singleValueLegacyExtendedProperty schema. Samples without source examples are illustrative.",
         "traits": [],
         "fieldCount": 2,
         "tags": [],
         "visibility": "public",
         "source": "user"
       },
       {
         "name": "Organization",
         "domain": "core.account",
         "version": "1.2.0",
         "maturity": null,
         "description": "Canonical account record for tenant and workspace governance across the platform.",
         "traits": [
           "content/Labelled",
           "lifecycle/Stateful",
           "structural/Ownerable",
           "lifecycle/Timestampable",
           "behavioral/Taggable",
           "core/Addressable",
           "core/Preferenceable",
           "core/Authable",
           "core/Communicable"
         ],
         "fieldCount": 9,
         "tags": [
           "universal",
           "organization",
           "tenant"
         ],
         "visibility": "public",
         "source": "shipped"
       },
       {
         "name": "Plan",
         "domain": "saas.billing",
         "version": "1.0.0",
         "maturity": "beta",
         "description": "Normalized plan definition capturing pricing, packaging, and entitlement metadata.",
         "traits": [
           "SaaSBillingBillable",
           "SaaSBillingMetered",
           "structural/Ownerable"
         ],
         "fieldCount": 9,
         "tags": [
           "billing",
           "plan",
           "packaging"
         ],
         "visibility": "public",
         "source": "shipped"
       },
       {
         "name": "Product",
         "domain": "core.catalog",
         "version": "1.1.0",
         "maturity": null,
         "description": "Canonical catalog entry combining pricing, lifecycle, and merchandising metadata.",
         "traits": [
           "content/Labelled",
           "lifecycle/Stateful",
           "lifecycle/Timestampable",
           "financial/Priceable",
           "core/Classifiable",
           "behavioral/Searchable",
           "behavioral/Filterable",
           "behavioral/Pageable"
         ],
         "fieldCount": 7,
         "tags": [
           "universal",
           "product",
           "commerce",
           "taxonomy"
         ],
         "visibility": "public",
         "source": "shipped"
       },
       {
         "name": "Relationship",
         "domain": "core.graph",
         "version": "1.1.0",
         "maturity": null,
         "description": "Canonical graph edge linking two entities with lifecycle, ownership, and tagging semantics.",
         "traits": [
           "content/Labelled",
           "lifecycle/Stateful",
           "lifecycle/Timestampable",
           "structural/Ownerable",
           "behavioral/Taggable",
           "viz/MarkGraph"
         ],
         "fieldCount": 12,
         "tags": [
           "universal",
           "relationship",
           "graph"
         ],
         "visibility": "public",
         "source": "shipped"
       },
       {
         "name": "Subscription",
         "domain": "core.billing",
         "version": "2.0.0",
         "maturity": "beta",
         "description": "Canonical subscription record composing lifecycle, billing, and cancellation semantics.",
         "traits": [
           "lifecycle/Stateful",
           "lifecycle/Cancellable",
           "lifecycle/Timestampable",
           "financial/Billable",
           "lifecycle/Archivable",
           "viz/MarkBar"
         ],
         "fieldCount": 18,
         "tags": [
           "billing",
           "lifecycle",
           "monetization"
         ],
         "visibility": "public",
         "source": "shipped"
       },
       {
         "name": "Transaction",
         "domain": "core.commerce",
         "version": "1.1.0",
         "maturity": null,
         "description": "Canonical transaction record tracking monetary movement, lifecycle, and audit metadata.",
         "traits": [
           "lifecycle/Stateful",
           "lifecycle/Timestampable",
           "financial/Priceable",
           "lifecycle/Cancellable",
           "lifecycle/Archivable"
         ],
         "fieldCount": 11,
         "tags": [
           "universal",
           "transaction",
           "commerce"
         ],
         "visibility": "public",
         "source": "shipped"
       },
       {
         "name": "Usage",
         "domain": "saas.billing",
         "version": "1.0.0",
         "maturity": "beta",
         "description": "Metered usage snapshot for consumption based billing supporting trend analysis and overage forecasting.",
         "traits": [
           "SaaSBillingMetered",
           "lifecycle/Timestampable",
           "viz/MarkLine"
         ],
         "fieldCount": 11,
         "tags": [
           "billing",
           "usage",
           "analytics"
         ],
         "visibility": "public",
         "source": "shipped"
       },
       {
         "name": "User",
         "domain": "core.identity",
         "version": "1.4.0",
         "maturity": "stable",
         "description": "Canonical identity record representing a platform user across lifecycle contexts.",
         "traits": [
           "lifecycle/Stateful",
           "lifecycle/Timestampable",
           "behavioral/Taggable",
           "core/Addressable",
           "core/Preferenceable",
           "core/Authable",
           "core/Communicable"
         ],
         "fieldCount": 7,
         "tags": [
           "universal",
           "identity",
           "core"
         ],
         "visibility": "public",
         "source": "shipped"
       },
       {
         "name": "CapturedArtifact",
         "domain": "capture.artifact",
         "version": "0.3.0",
         "maturity": "alpha",
         "description": "A file a capture run wrote, with the attestation its run manifest records: the file's kind, path, size, when it was written and its sha256.",
         "traits": [
           "behavioral/Searchable",
           "behavioral/Filterable",
           "behavioral/Pageable",
           "core/Assessable",
           "core/Provenanced"
         ],
         "fieldCount": 15,
         "tags": [
           "capture",
           "artifact",
           "attestation"
         ],
         "visibility": "internal",
         "source": "shipped"
       },
       {
         "name": "Comparison",
         "domain": "capture.comparison",
         "version": "0.3.0",
         "maturity": "alpha",
         "description": "A read-only drift analysis of one captured product: how its live values compare with its design's values, with the capture's and the analysis's identities and times kept apart.",
         "traits": [
           "core/Assessable",
           "core/Provenanced"
         ],
         "fieldCount": 25,
         "tags": [
           "comparison",
           "read-only"
         ],
         "visibility": "internal",
         "source": "shipped"
       },
       {
         "name": "ComparisonSignal",
         "domain": "capture.comparison",
         "version": "0.3.0",
         "maturity": "alpha",
         "description": "One difference a drift analysis recorded between a captured product's live value and its design's values, with both comparands retained. It is not an accessibility finding.",
         "traits": [
           "behavioral/Searchable",
           "behavioral/Filterable",
           "behavioral/Pageable",
           "core/Assessable",
           "core/Provenanced"
         ],
         "fieldCount": 22,
         "tags": [
           "comparison",
           "read-only"
         ],
         "visibility": "internal",
         "source": "shipped"
       },
       {
         "name": "Finding",
         "domain": "capture.finding",
         "version": "0.3.0",
         "maturity": "alpha",
         "description": "One accessibility rule's result on one captured page, with the engine that reported it and the evidence the run attests. Violations and needs-review items carry their reasons; page-level counts alone never become findings.",
         "traits": [
           "behavioral/Searchable",
           "behavioral/Filterable",
           "behavioral/Pageable",
           "core/Assessable",
           "core/Provenanced"
         ],
         "fieldCount": 19,
         "tags": [
           "capture",
           "finding",
           "accessibility"
         ],
         "visibility": "internal",
         "source": "shipped"
       },
       {
         "name": "Run",
         "domain": "capture.run",
         "version": "0.3.0",
         "maturity": "alpha",
         "description": "One capture of one product: when it ran, what it read and what it found, as the run's manifest, accessibility report and artifact index record them.",
         "traits": [
           "behavioral/Searchable",
           "behavioral/Filterable",
           "behavioral/Pageable",
           "core/Provenanced"
         ],
         "fieldCount": 28,
         "tags": [
           "capture",
           "run"
         ],
         "visibility": "internal",
         "source": "shipped"
       }
     ],
     "totalCount": 25,
     "hiddenInternal": 0,
     "filters": {
       "domain": null,
       "maturity": null,
       "trait": null
     },
     "folders": {
       "objects": "~/.oods-foundry/objects",
       "traits": "~/.oods-foundry/traits"
     },
     "issues": []
   }
   ```

## Every call

This is a recorded local run of the published package, in a clean home. The calls below are in execution order, with local paths removed. Importing your own schema uses the local tool; this page does not upload files or run an importer in the browser.

Download the source subset, draft it locally, and review the returned objects and proposals before applying them. Your draft's reply supplies the import identifier for subsequent calls.

[Local object_import reference](https://oods-foundry.com/tools/object-import) · [Install OODS Foundry](https://oods-foundry.com/start)

1. `object_import` · draft

   Its input:

   ```
   {
     "action": "draft",
     "source": {
       "path": "<workspace>/graph-contact.json"
     }
   }
   ```

   Its result:

   ```
   {
     "action": "draft",
     "importId": "import-18f1e3a7ece3a23b009136ed8c6ba2994b85a2e3de2fff04970c06b61828d3d2",
     "directory": "~/.oods-foundry/imports/import-18f1e3a7ece3a23b009136ed8c6ba2994b85a2e3de2fff04970c06b61828d3d2",
     "contentHash": "sha256:889064b3d98fb85250bb6cce9888f58e516965cde8bebd8472b8014086506436",
     "counts": {
       "total": 368,
       "mapped": 223,
       "proposed": 0,
       "unmapped": 145,
       "fields": 65,
       "mappedFields": 43
     },
     "objectCount": 9,
     "objects": [
       "MicrosoftGraphEmailAddress",
       "MicrosoftGraphExtension",
       "MicrosoftGraphMultiValueLegacyExtendedProperty",
       "MicrosoftGraphSingleValueLegacyExtendedProperty",
       "MicrosoftGraphContact",
       "MicrosoftGraphEntity",
       "MicrosoftGraphOutlookItem",
       "MicrosoftGraphPhysicalAddress",
       "MicrosoftGraphProfilePhoto"
     ],
     "objectsTruncated": false,
     "shippedClashes": [],
     "diff": {
       "new": 9,
       "changed": 0,
       "unchanged": 0,
       "file": "~/.oods-foundry/imports/import-18f1e3a7ece3a23b009136ed8c6ba2994b85a2e3de2fff04970c06b61828d3d2/diff.json"
     },
     "proposalTraits": {
       "Timestampable": 2,
       "Stateful": 1
     },
     "proposalGrades": {
       "strong": 0,
       "medium": 2,
       "weak": 1
     },
     "cycleCount": 0,
     "files": {
       "hub": "hub.json",
       "report": "report.json",
       "order": "order.json",
       "objects": "objects/"
     }
   }
   ```

2. `object_import` · show-MicrosoftGraphEmailAddress

   Its input:

   ```
   {
     "action": "show",
     "importId": "import-18f1e3a7ece3a23b009136ed8c6ba2994b85a2e3de2fff04970c06b61828d3d2",
     "object": "MicrosoftGraphEmailAddress"
   }
   ```

   Its result:

   ```
   {
     "action": "show",
     "importId": "import-18f1e3a7ece3a23b009136ed8c6ba2994b85a2e3de2fff04970c06b61828d3d2",
     "name": "MicrosoftGraphEmailAddress",
     "yaml": "metadata:\n  references:\n    - graph-contact.json#/components/schemas/microsoft.graph.emailAddress\n  supportedContexts:\n    - list\n    - detail\n    - form\nobject:\n  description: Imported microsoft.graph.emailAddress schema. Samples without source examples are illustrative.\n  domain: imported\n  name: MicrosoftGraphEmailAddress\n  version: 1.0.0\nrelationships: []\nsamples:\n  - address: Address 1\n    name: person1@example.com\n  - address: Address 2\n    name: person2@example.com\n  - address: Address 3\n    name: person3@example.com\n  - address: Address 4\n    name: person4@example.com\n  - address: Address 5\n    name: person5@example.com\nschema:\n  address:\n    description: The email address of the person or entity.\n    required: false\n    type: string?\n  name:\n    description: The display name of the person or entity.\n    required: false\n    type: string?\nsemantics:\n  name:\n    semantic_type: text.label\n    token_mapping: tokenMap(text.primary)\ntokens: {}\ntraits: []\n",
     "proposals": [],
     "unmapped": [
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphEmailAddress",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.emailAddress/properties/@odata.type/type",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "property",
         "object": "MicrosoftGraphEmailAddress",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.emailAddress/properties/@odata.type",
         "reason": "Field name is not a valid object/code identifier; rename explicitly before applying."
       }
     ],
     "diff": {
       "name": "MicrosoftGraphEmailAddress",
       "status": "new",
       "fields": {
         "added": [
           "address",
           "name"
         ],
         "removed": [],
         "changed": []
       },
       "screens": [
         "list",
         "detail",
         "form"
       ],
       "traitsChanged": false,
       "relationshipsChanged": false
     }
   }
   ```

3. `object_import` · show-MicrosoftGraphExtension

   Its input:

   ```
   {
     "action": "show",
     "importId": "import-18f1e3a7ece3a23b009136ed8c6ba2994b85a2e3de2fff04970c06b61828d3d2",
     "object": "MicrosoftGraphExtension"
   }
   ```

   Its result:

   ```
   {
     "action": "show",
     "importId": "import-18f1e3a7ece3a23b009136ed8c6ba2994b85a2e3de2fff04970c06b61828d3d2",
     "name": "MicrosoftGraphExtension",
     "yaml": "metadata:\n  references:\n    - graph-contact.json#/components/schemas/microsoft.graph.extension\n  supportedContexts:\n    - list\n    - detail\n    - form\nobject:\n  description: Imported microsoft.graph.extension schema. Samples without source examples are illustrative.\n  domain: imported\n  name: MicrosoftGraphExtension\n  version: 1.0.0\nrelationships: []\nsamples:\n  - id: ID-001\n  - id: ID-002\n  - id: ID-003\n  - id: ID-004\n  - id: ID-005\nschema:\n  id:\n    description: The unique identifier for an entity. Read-only.\n    required: false\n    type: string\nsemantics:\n  id:\n    semantic_type: text.label\n    token_mapping: tokenMap(text.primary)\ntokens: {}\ntraits: []\n",
     "proposals": [],
     "unmapped": [
       {
         "file": "graph-contact.json",
         "kind": "link",
         "object": "MicrosoftGraphExtension",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.extension/allOf/0/$ref",
         "reason": "Preserved as a local hub reference; draft projection decides whether it is a relationship."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphExtension",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.extension/allOf/1/discriminator",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphExtension",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.extension/allOf/1/properties/@odata.type/type",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "property",
         "object": "MicrosoftGraphExtension",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.extension/allOf/1/properties/@odata.type",
         "reason": "Field name is not a valid object/code identifier; rename explicitly before applying."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphExtension",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.extension/allOf/1/properties",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphExtension",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.extension/allOf/1/required",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphExtension",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.extension/allOf/1/title",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphExtension",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.extension/allOf/1/type",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       }
     ],
     "diff": {
       "name": "MicrosoftGraphExtension",
       "status": "new",
       "fields": {
         "added": [
           "id"
         ],
         "removed": [],
         "changed": []
       },
       "screens": [
         "list",
         "detail",
         "form"
       ],
       "traitsChanged": false,
       "relationshipsChanged": false
     }
   }
   ```

4. `object_import` · show-MicrosoftGraphMultiValueLegacyExtendedProperty

   Its input:

   ```
   {
     "action": "show",
     "importId": "import-18f1e3a7ece3a23b009136ed8c6ba2994b85a2e3de2fff04970c06b61828d3d2",
     "object": "MicrosoftGraphMultiValueLegacyExtendedProperty"
   }
   ```

   Its result:

   ```
   {
     "action": "show",
     "importId": "import-18f1e3a7ece3a23b009136ed8c6ba2994b85a2e3de2fff04970c06b61828d3d2",
     "name": "MicrosoftGraphMultiValueLegacyExtendedProperty",
     "yaml": "metadata:\n  references:\n    - graph-contact.json#/components/schemas/microsoft.graph.multiValueLegacyExtendedProperty\n  supportedContexts:\n    - list\n    - detail\n    - form\nobject:\n  description: Imported microsoft.graph.multiValueLegacyExtendedProperty schema. Samples without source examples are illustrative.\n  domain: imported\n  name: MicrosoftGraphMultiValueLegacyExtendedProperty\n  version: 1.0.0\nrelationships: []\nsamples:\n  - id: ID-001\n  - id: ID-002\n  - id: ID-003\n  - id: ID-004\n  - id: ID-005\nschema:\n  id:\n    description: The unique identifier for an entity. Read-only.\n    required: false\n    type: string\nsemantics:\n  id:\n    semantic_type: text.label\n    token_mapping: tokenMap(text.primary)\ntokens: {}\ntraits: []\n",
     "proposals": [],
     "unmapped": [
       {
         "file": "graph-contact.json",
         "kind": "link",
         "object": "MicrosoftGraphMultiValueLegacyExtendedProperty",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.multiValueLegacyExtendedProperty/allOf/0/$ref",
         "reason": "Preserved as a local hub reference; draft projection decides whether it is a relationship."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphMultiValueLegacyExtendedProperty",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.multiValueLegacyExtendedProperty/allOf/1/properties/@odata.type/type",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "property",
         "object": "MicrosoftGraphMultiValueLegacyExtendedProperty",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.multiValueLegacyExtendedProperty/allOf/1/properties/@odata.type",
         "reason": "Field name is not a valid object/code identifier; rename explicitly before applying."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphMultiValueLegacyExtendedProperty",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.multiValueLegacyExtendedProperty/allOf/1/properties/value/description",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphMultiValueLegacyExtendedProperty",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.multiValueLegacyExtendedProperty/allOf/1/properties/value/items/type",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphMultiValueLegacyExtendedProperty",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.multiValueLegacyExtendedProperty/allOf/1/properties/value/items",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphMultiValueLegacyExtendedProperty",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.multiValueLegacyExtendedProperty/allOf/1/properties/value/type",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "property",
         "object": "MicrosoftGraphMultiValueLegacyExtendedProperty",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.multiValueLegacyExtendedProperty/allOf/1/properties/value",
         "reason": "Nested documents, maps and unconstrained fields are retained in the hub; the scalar object editor cannot represent them."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphMultiValueLegacyExtendedProperty",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.multiValueLegacyExtendedProperty/allOf/1/properties",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphMultiValueLegacyExtendedProperty",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.multiValueLegacyExtendedProperty/allOf/1/required",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphMultiValueLegacyExtendedProperty",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.multiValueLegacyExtendedProperty/allOf/1/title",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphMultiValueLegacyExtendedProperty",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.multiValueLegacyExtendedProperty/allOf/1/type",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphMultiValueLegacyExtendedProperty",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.multiValueLegacyExtendedProperty/x-ms-discriminator-value",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       }
     ],
     "diff": {
       "name": "MicrosoftGraphMultiValueLegacyExtendedProperty",
       "status": "new",
       "fields": {
         "added": [
           "id"
         ],
         "removed": [],
         "changed": []
       },
       "screens": [
         "list",
         "detail",
         "form"
       ],
       "traitsChanged": false,
       "relationshipsChanged": false
     }
   }
   ```

5. `object_import` · show-MicrosoftGraphSingleValueLegacyExtendedProperty

   Its input:

   ```
   {
     "action": "show",
     "importId": "import-18f1e3a7ece3a23b009136ed8c6ba2994b85a2e3de2fff04970c06b61828d3d2",
     "object": "MicrosoftGraphSingleValueLegacyExtendedProperty"
   }
   ```

   Its result:

   ```
   {
     "action": "show",
     "importId": "import-18f1e3a7ece3a23b009136ed8c6ba2994b85a2e3de2fff04970c06b61828d3d2",
     "name": "MicrosoftGraphSingleValueLegacyExtendedProperty",
     "yaml": "metadata:\n  references:\n    - graph-contact.json#/components/schemas/microsoft.graph.singleValueLegacyExtendedProperty\n  supportedContexts:\n    - list\n    - detail\n    - form\nobject:\n  description: Imported microsoft.graph.singleValueLegacyExtendedProperty schema. Samples without source examples are illustrative.\n  domain: imported\n  name: MicrosoftGraphSingleValueLegacyExtendedProperty\n  version: 1.0.0\nrelationships: []\nsamples:\n  - id: ID-001\n    value: Value 1\n  - id: ID-002\n    value: Value 2\n  - id: ID-003\n    value: Value 3\n  - id: ID-004\n    value: Value 4\n  - id: ID-005\n    value: Value 5\nschema:\n  id:\n    description: The unique identifier for an entity. Read-only.\n    required: false\n    type: string\n  value:\n    description: A property value.\n    required: false\n    type: string?\nsemantics:\n  id:\n    semantic_type: text.label\n    token_mapping: tokenMap(text.primary)\ntokens: {}\ntraits: []\n",
     "proposals": [],
     "unmapped": [
       {
         "file": "graph-contact.json",
         "kind": "link",
         "object": "MicrosoftGraphSingleValueLegacyExtendedProperty",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.singleValueLegacyExtendedProperty/allOf/0/$ref",
         "reason": "Preserved as a local hub reference; draft projection decides whether it is a relationship."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphSingleValueLegacyExtendedProperty",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.singleValueLegacyExtendedProperty/allOf/1/properties/@odata.type/type",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "property",
         "object": "MicrosoftGraphSingleValueLegacyExtendedProperty",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.singleValueLegacyExtendedProperty/allOf/1/properties/@odata.type",
         "reason": "Field name is not a valid object/code identifier; rename explicitly before applying."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphSingleValueLegacyExtendedProperty",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.singleValueLegacyExtendedProperty/allOf/1/properties",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphSingleValueLegacyExtendedProperty",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.singleValueLegacyExtendedProperty/allOf/1/required",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphSingleValueLegacyExtendedProperty",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.singleValueLegacyExtendedProperty/allOf/1/title",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphSingleValueLegacyExtendedProperty",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.singleValueLegacyExtendedProperty/allOf/1/type",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphSingleValueLegacyExtendedProperty",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.singleValueLegacyExtendedProperty/x-ms-discriminator-value",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       }
     ],
     "diff": {
       "name": "MicrosoftGraphSingleValueLegacyExtendedProperty",
       "status": "new",
       "fields": {
         "added": [
           "id",
           "value"
         ],
         "removed": [],
         "changed": []
       },
       "screens": [
         "list",
         "detail",
         "form"
       ],
       "traitsChanged": false,
       "relationshipsChanged": false
     }
   }
   ```

6. `object_import` · show-MicrosoftGraphContact

   Its input:

   ```
   {
     "action": "show",
     "importId": "import-18f1e3a7ece3a23b009136ed8c6ba2994b85a2e3de2fff04970c06b61828d3d2",
     "object": "MicrosoftGraphContact"
   }
   ```

   Its result:

   ```
   {
     "action": "show",
     "importId": "import-18f1e3a7ece3a23b009136ed8c6ba2994b85a2e3de2fff04970c06b61828d3d2",
     "name": "MicrosoftGraphContact",
     "yaml": "metadata:\n  references:\n    - graph-contact.json#/components/schemas/microsoft.graph.contact\n  supportedContexts:\n    - list\n    - detail\n    - form\nobject:\n  description: Imported microsoft.graph.contact schema. Samples without source examples are illustrative.\n  domain: imported\n  name: MicrosoftGraphContact\n  version: 1.0.0\nrelationships:\n  - cardinality: one-to-many\n    label: emailAddresses\n    target: MicrosoftGraphEmailAddress\n    via: emailAddresses\n  - cardinality: one-to-many\n    label: extensions\n    target: MicrosoftGraphExtension\n    via: extensions\n  - cardinality: one-to-many\n    label: multiValueExtendedProperties\n    target: MicrosoftGraphMultiValueLegacyExtendedProperty\n    via: multiValueExtendedProperties\n  - cardinality: one-to-many\n    label: singleValueExtendedProperties\n    target: MicrosoftGraphSingleValueLegacyExtendedProperty\n    via: singleValueExtendedProperties\nsamples:\n  - assistantName: Assistant name 1\n    birthday: '2026-01-01T12:00:00Z'\n    businessHomePage: Business home page 1\n    changeKey: CHAN-001\n    companyName: Northwind Traders\n    createdDateTime: '2026-01-01T12:00:00Z'\n    department: Department 1\n    displayName: Microsoft graph contact 1\n    emailAddresses:\n      - person1@example.com\n    extensions:\n      - ID-001\n    fileAs: File as 1\n    generation: Generation 1\n    givenName: Ava\n    id: ID-001\n    initials: Initials 1\n    jobTitle: Job title 1\n    lastModifiedDateTime: '2026-01-01T12:00:00Z'\n    manager: Manager 1\n    middleName: Middle name 1\n    mobilePhone: '+12025550101'\n    multiValueExtendedProperties:\n      - ID-001\n    nickName: Nick name 1\n    officeLocation: Office location 1\n    parentFolderId: PARE-001\n    personalNotes: Example personal notes for record 1.\n    profession: Profession 1\n    singleValueExtendedProperties:\n      - ID-001\n    spouseName: Spouse name 1\n    surname: Martin\n    title: Microsoft graph contact 1\n    yomiCompanyName: Northwind Traders\n    yomiGivenName: Ava\n    yomiSurname: Martin\n  - assistantName: Assistant name 2\n    birthday: '2026-01-02T12:00:00Z'\n    businessHomePage: Business home page 2\n    changeKey: CHAN-002\n    companyName: Acme Supply\n    createdDateTime: '2026-01-02T12:00:00Z'\n    department: Department 2\n    displayName: Microsoft graph contact 2\n    emailAddresses:\n      - person2@example.com\n    extensions:\n      - ID-002\n    fileAs: File as 2\n    generation: Generation 2\n    givenName: Ben\n    id: ID-002\n    initials: Initials 2\n    jobTitle: Job title 2\n    lastModifiedDateTime: '2026-01-02T12:00:00Z'\n    manager: Manager 2\n    middleName: Middle name 2\n    mobilePhone: '+12025550102'\n    multiValueExtendedProperties:\n      - ID-002\n    nickName: Nick name 2\n    officeLocation: Office location 2\n    parentFolderId: PARE-002\n    personalNotes: Example personal notes for record 2.\n    profession: Profession 2\n    singleValueExtendedProperties:\n      - ID-002\n    spouseName: Spouse name 2\n    surname: Okafor\n    title: Microsoft graph contact 2\n    yomiCompanyName: Acme Supply\n    yomiGivenName: Ben\n    yomiSurname: Okafor\n  - assistantName: Assistant name 3\n    birthday: '2026-01-03T12:00:00Z'\n    businessHomePage: Business home page 3\n    changeKey: CHAN-003\n    companyName: Blue Harbor Co.\n    createdDateTime: '2026-01-03T12:00:00Z'\n    department: Department 3\n    displayName: Microsoft graph contact 3\n    emailAddresses:\n      - person3@example.com\n    extensions:\n      - ID-003\n    fileAs: File as 3\n    generation: Generation 3\n    givenName: Chloe\n    id: ID-003\n    initials: Initials 3\n    jobTitle: Job title 3\n    lastModifiedDateTime: '2026-01-03T12:00:00Z'\n    manager: Manager 3\n    middleName: Middle name 3\n    mobilePhone: '+12025550103'\n    multiValueExtendedProperties:\n      - ID-003\n    nickName: Nick name 3\n    officeLocation: Office location 3\n    parentFolderId: PARE-003\n    personalNotes: Example personal notes for record 3.\n    profession: Profession 3\n    singleValueExtendedProperties:\n      - ID-003\n    spouseName: Spouse name 3\n    surname: Chen\n    title: Microsoft graph contact 3\n    yomiCompanyName: Blue Harbor Co.\n    yomiGivenName: Chloe\n    yomiSurname: Chen\n  - assistantName: Assistant name 4\n    birthday: '2026-01-04T12:00:00Z'\n    businessHomePage: Business home page 4\n    changeKey: CHAN-004\n    companyName: Juniper Labs\n    createdDateTime: '2026-01-04T12:00:00Z'\n    department: Department 4\n    displayName: Microsoft graph contact 4\n    emailAddresses:\n      - person4@example.com\n    extensions:\n      - ID-004\n    fileAs: File as 4\n    generation: Generation 4\n    givenName: Dev\n    id: ID-004\n    initials: Initials 4\n    jobTitle: Job title 4\n    lastModifiedDateTime: '2026-01-04T12:00:00Z'\n    manager: Manager 4\n    middleName: Middle name 4\n    mobilePhone: '+12025550104'\n    multiValueExtendedProperties:\n      - ID-004\n    nickName: Nick name 4\n    officeLocation: Office location 4\n    parentFolderId: PARE-004\n    personalNotes: Example personal notes for record 4.\n    profession: Profession 4\n    singleValueExtendedProperties:\n      - ID-004\n    spouseName: Spouse name 4\n    surname: Silva\n    title: Microsoft graph contact 4\n    yomiCompanyName: Juniper Labs\n    yomiGivenName: Dev\n    yomiSurname: Silva\n  - assistantName: Assistant name 5\n    birthday: '2026-01-05T12:00:00Z'\n    businessHomePage: Business home page 5\n    changeKey: CHAN-005\n    companyName: Summit Foods\n    createdDateTime: '2026-01-05T12:00:00Z'\n    department: Department 5\n    displayName: Microsoft graph contact 5\n    emailAddresses:\n      - person5@example.com\n    extensions:\n      - ID-005\n    fileAs: File as 5\n    generation: Generation 5\n    givenName: Elena\n    id: ID-005\n    initials: Initials 5\n    jobTitle: Job title 5\n    lastModifiedDateTime: '2026-01-05T12:00:00Z'\n    manager: Manager 5\n    middleName: Middle name 5\n    mobilePhone: '+12025550105'\n    multiValueExtendedProperties:\n      - ID-005\n    nickName: Nick name 5\n    officeLocation: Office location 5\n    parentFolderId: PARE-005\n    personalNotes: Example personal notes for record 5.\n    profession: Profession 5\n    singleValueExtendedProperties:\n      - ID-005\n    spouseName: Spouse name 5\n    surname: Novak\n    title: Microsoft graph contact 5\n    yomiCompanyName: Summit Foods\n    yomiGivenName: Elena\n    yomiSurname: Novak\nschema:\n  assistantName:\n    description: The name of the contact's assistant.\n    required: false\n    type: string?\n  birthday:\n    description: >-\n      The contact's birthday. The Timestamp type represents date and time information using ISO 8601 format and is\n      always in UTC time. For example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z\n    required: false\n    type: datetime?\n    validation:\n      format: date-time\n      pattern: >-\n        ^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$\n  businessHomePage:\n    description: The business home page of the contact.\n    required: false\n    type: string?\n  changeKey:\n    description: >-\n      Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows\n      Exchange to apply changes to the correct version of the object. Read-only.\n    required: false\n    type: string?\n  companyName:\n    description: The name of the contact's company.\n    required: false\n    type: string?\n  createdDateTime:\n    description: >-\n      The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For\n      example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z\n    required: false\n    type: datetime?\n    validation:\n      format: date-time\n      pattern: >-\n        ^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$\n  department:\n    description: The contact's department.\n    required: false\n    type: string?\n  displayName:\n    description: >-\n      The contact's display name. You can specify the display name in a create or update operation. Note that later\n      updates to other properties may cause an automatically generated value to overwrite the displayName value you have\n      specified. To preserve a pre-existing value, always include it as displayName in an update operation.\n    required: false\n    type: string?\n  emailAddresses:\n    description: The contact's email addresses.\n    required: false\n    type: string[]\n  extensions:\n    description: The collection of open extensions defined for the contact. Read-only. Nullable.\n    required: false\n    type: string[]\n  fileAs:\n    description: The name the contact is filed under.\n    required: false\n    type: string?\n  generation:\n    description: The contact's suffix.\n    required: false\n    type: string?\n  givenName:\n    description: The contact's given name.\n    required: false\n    type: string?\n  id:\n    description: The unique identifier for an entity. Read-only.\n    required: false\n    type: string\n  initials:\n    description: The contact's initials.\n    required: false\n    type: string?\n  jobTitle:\n    description: The contact’s job title.\n    required: false\n    type: string?\n  lastModifiedDateTime:\n    description: >-\n      The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For\n      example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z\n    required: false\n    type: datetime?\n    validation:\n      format: date-time\n      pattern: >-\n        ^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$\n  manager:\n    description: The name of the contact's manager.\n    required: false\n    type: string?\n  middleName:\n    description: The contact's middle name.\n    required: false\n    type: string?\n  mobilePhone:\n    description: The contact's mobile phone number.\n    required: false\n    type: string?\n  multiValueExtendedProperties:\n    description: The collection of multi-value extended properties defined for the contact. Read-only. Nullable.\n    required: false\n    type: string[]\n  nickName:\n    description: The contact's nickname.\n    required: false\n    type: string?\n  officeLocation:\n    description: The location of the contact's office.\n    required: false\n    type: string?\n  parentFolderId:\n    description: The ID of the contact's parent folder.\n    required: false\n    type: string?\n  personalNotes:\n    description: The user's notes about the contact.\n    required: false\n    type: string?\n  profession:\n    description: The contact's profession.\n    required: false\n    type: string?\n  singleValueExtendedProperties:\n    description: The collection of single-value extended properties defined for the contact. Read-only. Nullable.\n    required: false\n    type: string[]\n  spouseName:\n    description: The name of the contact's spouse/partner.\n    required: false\n    type: string?\n  surname:\n    description: The contact's surname.\n    required: false\n    type: string?\n  title:\n    description: The contact's title.\n    required: false\n    type: string?\n  yomiCompanyName:\n    description: The phonetic Japanese company name of the contact.\n    required: false\n    type: string?\n  yomiGivenName:\n    description: The phonetic Japanese given name (first name) of the contact.\n    required: false\n    type: string?\n  yomiSurname:\n    description: The phonetic Japanese surname (last name)  of the contact.\n    required: false\n    type: string?\nsemantics:\n  title:\n    semantic_type: text.label\n    token_mapping: tokenMap(text.primary)\ntokens: {}\ntraits: []\n",
     "proposals": [
       {
         "effects": "Acceptance binds Timestampable to the declared source fields and omits canonical fields with null bindings. Review the bindings and audit roles. No trait is applied to this draft.",
         "errors": [],
         "evidence": [
           {
             "file": "graph-contact.json",
             "kind": "structure",
             "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/birthday",
             "reason": "date-time format provides timestamp evidence for birthday; review the proposed audit role before acceptance."
           },
           {
             "file": "graph-contact.json",
             "kind": "structure",
             "pointer": "/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/createdDateTime",
             "reason": "date-time format provides timestamp evidence for createdDateTime; review the proposed audit role before acceptance."
           },
           {
             "file": "graph-contact.json",
             "kind": "structure",
             "pointer": "/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/lastModifiedDateTime",
             "reason": "date-time format provides timestamp evidence for lastModifiedDateTime; review the proposed audit role before acceptance."
           }
         ],
         "grade": "medium",
         "id": "8ada916c44b661b3",
         "trait": {
           "fieldBindings": {
             "created_at": "birthday",
             "last_event": null,
             "last_event_at": null,
             "updated_at": null
           },
           "name": "Timestampable",
           "parameters": {}
         },
         "valid": true
       }
     ],
     "unmapped": [
       {
         "file": "graph-contact.json",
         "kind": "link",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/0/$ref",
         "reason": "Preserved as a local hub reference; draft projection decides whether it is a relationship."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/@odata.type/default",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/@odata.type/type",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "property",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/@odata.type",
         "reason": "Field name is not a valid object/code identifier; rename explicitly before applying."
       },
       {
         "file": "graph-contact.json",
         "kind": "link",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/businessAddress/anyOf/0/$ref",
         "reason": "Preserved as a local hub reference; draft projection decides whether it is a relationship."
       },
       {
         "file": "graph-contact.json",
         "kind": "variant",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/businessAddress/anyOf/0",
         "reason": "anyOf alternative retained separately; variants are never silently merged."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/businessAddress/anyOf/1/type",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "variant",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/businessAddress/anyOf/1",
         "reason": "anyOf alternative retained separately; variants are never silently merged."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/businessAddress/anyOf",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/businessAddress/description",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "property",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/businessAddress",
         "reason": "oneOf/anyOf variants retained separately; no variant is selected automatically."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/businessPhones/description",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/businessPhones/items/type",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/businessPhones/items",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/businessPhones/type",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "property",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/businessPhones",
         "reason": "Nested documents, maps and unconstrained fields are retained in the hub; the scalar object editor cannot represent them."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/children/description",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/children/items/type",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/children/items",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/children/type",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "property",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/children",
         "reason": "Nested documents, maps and unconstrained fields are retained in the hub; the scalar object editor cannot represent them."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/emailAddresses/items",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/extensions/items",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/extensions/x-ms-navigationProperty",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "link",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/homeAddress/anyOf/0/$ref",
         "reason": "Preserved as a local hub reference; draft projection decides whether it is a relationship."
       },
       {
         "file": "graph-contact.json",
         "kind": "variant",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/homeAddress/anyOf/0",
         "reason": "anyOf alternative retained separately; variants are never silently merged."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/homeAddress/anyOf/1/type",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "variant",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/homeAddress/anyOf/1",
         "reason": "anyOf alternative retained separately; variants are never silently merged."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/homeAddress/anyOf",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/homeAddress/description",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "property",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/homeAddress",
         "reason": "oneOf/anyOf variants retained separately; no variant is selected automatically."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/homePhones/description",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/homePhones/items/type",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/homePhones/items",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/homePhones/type",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "property",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/homePhones",
         "reason": "Nested documents, maps and unconstrained fields are retained in the hub; the scalar object editor cannot represent them."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/imAddresses/description",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/imAddresses/items/type",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/imAddresses/items",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/imAddresses/type",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "property",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/imAddresses",
         "reason": "Nested documents, maps and unconstrained fields are retained in the hub; the scalar object editor cannot represent them."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/multiValueExtendedProperties/items",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/multiValueExtendedProperties/x-ms-navigationProperty",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "link",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/otherAddress/anyOf/0/$ref",
         "reason": "Preserved as a local hub reference; draft projection decides whether it is a relationship."
       },
       {
         "file": "graph-contact.json",
         "kind": "variant",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/otherAddress/anyOf/0",
         "reason": "anyOf alternative retained separately; variants are never silently merged."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/otherAddress/anyOf/1/type",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "variant",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/otherAddress/anyOf/1",
         "reason": "anyOf alternative retained separately; variants are never silently merged."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/otherAddress/anyOf",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/otherAddress/description",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "property",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/otherAddress",
         "reason": "oneOf/anyOf variants retained separately; no variant is selected automatically."
       },
       {
         "file": "graph-contact.json",
         "kind": "link",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/photo/anyOf/0/$ref",
         "reason": "Preserved as a local hub reference; draft projection decides whether it is a relationship."
       },
       {
         "file": "graph-contact.json",
         "kind": "variant",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/photo/anyOf/0",
         "reason": "anyOf alternative retained separately; variants are never silently merged."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/photo/anyOf/1/type",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "variant",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/photo/anyOf/1",
         "reason": "anyOf alternative retained separately; variants are never silently merged."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/photo/anyOf",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/photo/description",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/photo/x-ms-navigationProperty",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "property",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/photo",
         "reason": "oneOf/anyOf variants retained separately; no variant is selected automatically."
       },
       {
         "file": "graph-contact.json",
         "kind": "link",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/primaryEmailAddress/anyOf/0/$ref",
         "reason": "Preserved as a local hub reference; draft projection decides whether it is a relationship."
       },
       {
         "file": "graph-contact.json",
         "kind": "variant",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/primaryEmailAddress/anyOf/0",
         "reason": "anyOf alternative retained separately; variants are never silently merged."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/primaryEmailAddress/anyOf/1/type",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "variant",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/primaryEmailAddress/anyOf/1",
         "reason": "anyOf alternative retained separately; variants are never silently merged."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/primaryEmailAddress/anyOf",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/primaryEmailAddress/description",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "property",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/primaryEmailAddress",
         "reason": "oneOf/anyOf variants retained separately; no variant is selected automatically."
       },
       {
         "file": "graph-contact.json",
         "kind": "link",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/secondaryEmailAddress/anyOf/0/$ref",
         "reason": "Preserved as a local hub reference; draft projection decides whether it is a relationship."
       },
       {
         "file": "graph-contact.json",
         "kind": "variant",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/secondaryEmailAddress/anyOf/0",
         "reason": "anyOf alternative retained separately; variants are never silently merged."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/secondaryEmailAddress/anyOf/1/type",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "variant",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/secondaryEmailAddress/anyOf/1",
         "reason": "anyOf alternative retained separately; variants are never silently merged."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/secondaryEmailAddress/anyOf",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/secondaryEmailAddress/description",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "property",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/secondaryEmailAddress",
         "reason": "oneOf/anyOf variants retained separately; no variant is selected automatically."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/singleValueExtendedProperties/items",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/singleValueExtendedProperties/x-ms-navigationProperty",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "link",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/tertiaryEmailAddress/anyOf/0/$ref",
         "reason": "Preserved as a local hub reference; draft projection decides whether it is a relationship."
       },
       {
         "file": "graph-contact.json",
         "kind": "variant",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/tertiaryEmailAddress/anyOf/0",
         "reason": "anyOf alternative retained separately; variants are never silently merged."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/tertiaryEmailAddress/anyOf/1/type",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "variant",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/tertiaryEmailAddress/anyOf/1",
         "reason": "anyOf alternative retained separately; variants are never silently merged."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/tertiaryEmailAddress/anyOf",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/tertiaryEmailAddress/description",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "property",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties/tertiaryEmailAddress",
         "reason": "oneOf/anyOf variants retained separately; no variant is selected automatically."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/properties",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/required",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/title",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/allOf/1/type",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphContact",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.contact/x-ms-discriminator-value",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       }
     ],
     "diff": {
       "name": "MicrosoftGraphContact",
       "status": "new",
       "fields": {
         "added": [
           "assistantName",
           "birthday",
           "businessHomePage",
           "changeKey",
           "companyName",
           "createdDateTime",
           "department",
           "displayName",
           "emailAddresses",
           "extensions",
           "fileAs",
           "generation",
           "givenName",
           "id",
           "initials",
           "jobTitle",
           "lastModifiedDateTime",
           "manager",
           "middleName",
           "mobilePhone",
           "multiValueExtendedProperties",
           "nickName",
           "officeLocation",
           "parentFolderId",
           "personalNotes",
           "profession",
           "singleValueExtendedProperties",
           "spouseName",
           "surname",
           "title",
           "yomiCompanyName",
           "yomiGivenName",
           "yomiSurname"
         ],
         "removed": [],
         "changed": []
       },
       "screens": [
         "list",
         "detail",
         "form"
       ],
       "traitsChanged": false,
       "relationshipsChanged": true
     }
   }
   ```

7. `object_import` · show-MicrosoftGraphEntity

   Its input:

   ```
   {
     "action": "show",
     "importId": "import-18f1e3a7ece3a23b009136ed8c6ba2994b85a2e3de2fff04970c06b61828d3d2",
     "object": "MicrosoftGraphEntity"
   }
   ```

   Its result:

   ```
   {
     "action": "show",
     "importId": "import-18f1e3a7ece3a23b009136ed8c6ba2994b85a2e3de2fff04970c06b61828d3d2",
     "name": "MicrosoftGraphEntity",
     "yaml": "metadata:\n  references:\n    - graph-contact.json#/components/schemas/microsoft.graph.entity\n  supportedContexts:\n    - list\n    - detail\n    - form\nobject:\n  description: Imported microsoft.graph.entity schema. Samples without source examples are illustrative.\n  domain: imported\n  name: MicrosoftGraphEntity\n  version: 1.0.0\nrelationships: []\nsamples:\n  - id: ID-001\n  - id: ID-002\n  - id: ID-003\n  - id: ID-004\n  - id: ID-005\nschema:\n  id:\n    description: The unique identifier for an entity. Read-only.\n    required: false\n    type: string\nsemantics:\n  id:\n    semantic_type: text.label\n    token_mapping: tokenMap(text.primary)\ntokens: {}\ntraits: []\n",
     "proposals": [],
     "unmapped": [
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphEntity",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.entity/discriminator",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphEntity",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.entity/properties/@odata.type/type",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "property",
         "object": "MicrosoftGraphEntity",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.entity/properties/@odata.type",
         "reason": "Field name is not a valid object/code identifier; rename explicitly before applying."
       }
     ],
     "diff": {
       "name": "MicrosoftGraphEntity",
       "status": "new",
       "fields": {
         "added": [
           "id"
         ],
         "removed": [],
         "changed": []
       },
       "screens": [
         "list",
         "detail",
         "form"
       ],
       "traitsChanged": false,
       "relationshipsChanged": false
     }
   }
   ```

8. `object_import` · show-MicrosoftGraphOutlookItem

   Its input:

   ```
   {
     "action": "show",
     "importId": "import-18f1e3a7ece3a23b009136ed8c6ba2994b85a2e3de2fff04970c06b61828d3d2",
     "object": "MicrosoftGraphOutlookItem"
   }
   ```

   Its result:

   ```
   {
     "action": "show",
     "importId": "import-18f1e3a7ece3a23b009136ed8c6ba2994b85a2e3de2fff04970c06b61828d3d2",
     "name": "MicrosoftGraphOutlookItem",
     "yaml": "metadata:\n  references:\n    - graph-contact.json#/components/schemas/microsoft.graph.outlookItem\n  supportedContexts:\n    - list\n    - detail\n    - form\nobject:\n  description: Imported microsoft.graph.outlookItem schema. Samples without source examples are illustrative.\n  domain: imported\n  name: MicrosoftGraphOutlookItem\n  version: 1.0.0\nrelationships: []\nsamples:\n  - changeKey: CHAN-001\n    createdDateTime: '2026-01-01T12:00:00Z'\n    id: ID-001\n    lastModifiedDateTime: '2026-01-01T12:00:00Z'\n  - changeKey: CHAN-002\n    createdDateTime: '2026-01-02T12:00:00Z'\n    id: ID-002\n    lastModifiedDateTime: '2026-01-02T12:00:00Z'\n  - changeKey: CHAN-003\n    createdDateTime: '2026-01-03T12:00:00Z'\n    id: ID-003\n    lastModifiedDateTime: '2026-01-03T12:00:00Z'\n  - changeKey: CHAN-004\n    createdDateTime: '2026-01-04T12:00:00Z'\n    id: ID-004\n    lastModifiedDateTime: '2026-01-04T12:00:00Z'\n  - changeKey: CHAN-005\n    createdDateTime: '2026-01-05T12:00:00Z'\n    id: ID-005\n    lastModifiedDateTime: '2026-01-05T12:00:00Z'\nschema:\n  changeKey:\n    description: >-\n      Identifies the version of the item. Every time the item is changed, changeKey changes as well. This allows\n      Exchange to apply changes to the correct version of the object. Read-only.\n    required: false\n    type: string?\n  createdDateTime:\n    description: >-\n      The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For\n      example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z\n    required: false\n    type: datetime?\n    validation:\n      format: date-time\n      pattern: >-\n        ^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$\n  id:\n    description: The unique identifier for an entity. Read-only.\n    required: false\n    type: string\n  lastModifiedDateTime:\n    description: >-\n      The Timestamp type represents date and time information using ISO 8601 format and is always in UTC time. For\n      example, midnight UTC on Jan 1, 2014 is 2014-01-01T00:00:00Z\n    required: false\n    type: datetime?\n    validation:\n      format: date-time\n      pattern: >-\n        ^[0-9]{4,}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]([.][0-9]{1,12})?(Z|[+-][0-9][0-9]:[0-9][0-9])$\nsemantics:\n  id:\n    semantic_type: text.label\n    token_mapping: tokenMap(text.primary)\ntokens: {}\ntraits: []\n",
     "proposals": [
       {
         "effects": "Acceptance binds Timestampable to the declared source fields and omits canonical fields with null bindings. Review the bindings and audit roles. No trait is applied to this draft.",
         "errors": [],
         "evidence": [
           {
             "file": "graph-contact.json",
             "kind": "structure",
             "pointer": "/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/createdDateTime",
             "reason": "date-time format provides timestamp evidence for createdDateTime; review the proposed audit role before acceptance."
           },
           {
             "file": "graph-contact.json",
             "kind": "structure",
             "pointer": "/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/lastModifiedDateTime",
             "reason": "date-time format provides timestamp evidence for lastModifiedDateTime; review the proposed audit role before acceptance."
           }
         ],
         "grade": "medium",
         "id": "f17bb5a43ec3d07e",
         "trait": {
           "fieldBindings": {
             "created_at": "createdDateTime",
             "last_event": null,
             "last_event_at": null,
             "updated_at": null
           },
           "name": "Timestampable",
           "parameters": {}
         },
         "valid": true
       }
     ],
     "unmapped": [
       {
         "file": "graph-contact.json",
         "kind": "link",
         "object": "MicrosoftGraphOutlookItem",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.outlookItem/allOf/0/$ref",
         "reason": "Preserved as a local hub reference; draft projection decides whether it is a relationship."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphOutlookItem",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.outlookItem/allOf/1/discriminator",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphOutlookItem",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/@odata.type/type",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "property",
         "object": "MicrosoftGraphOutlookItem",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/@odata.type",
         "reason": "Field name is not a valid object/code identifier; rename explicitly before applying."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphOutlookItem",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/categories/description",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphOutlookItem",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/categories/items/type",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphOutlookItem",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/categories/items",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphOutlookItem",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/categories/type",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "property",
         "object": "MicrosoftGraphOutlookItem",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.outlookItem/allOf/1/properties/categories",
         "reason": "Nested documents, maps and unconstrained fields are retained in the hub; the scalar object editor cannot represent them."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphOutlookItem",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.outlookItem/allOf/1/properties",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphOutlookItem",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.outlookItem/allOf/1/required",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphOutlookItem",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.outlookItem/allOf/1/title",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphOutlookItem",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.outlookItem/allOf/1/type",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       }
     ],
     "diff": {
       "name": "MicrosoftGraphOutlookItem",
       "status": "new",
       "fields": {
         "added": [
           "changeKey",
           "createdDateTime",
           "id",
           "lastModifiedDateTime"
         ],
         "removed": [],
         "changed": []
       },
       "screens": [
         "list",
         "detail",
         "form"
       ],
       "traitsChanged": false,
       "relationshipsChanged": false
     }
   }
   ```

9. `object_import` · show-MicrosoftGraphPhysicalAddress

   Its input:

   ```
   {
     "action": "show",
     "importId": "import-18f1e3a7ece3a23b009136ed8c6ba2994b85a2e3de2fff04970c06b61828d3d2",
     "object": "MicrosoftGraphPhysicalAddress"
   }
   ```

   Its result:

   ```
   {
     "action": "show",
     "importId": "import-18f1e3a7ece3a23b009136ed8c6ba2994b85a2e3de2fff04970c06b61828d3d2",
     "name": "MicrosoftGraphPhysicalAddress",
     "yaml": "metadata:\n  references:\n    - graph-contact.json#/components/schemas/microsoft.graph.physicalAddress\n  supportedContexts:\n    - list\n    - detail\n    - form\nobject:\n  description: Imported microsoft.graph.physicalAddress schema. Samples without source examples are illustrative.\n  domain: imported\n  name: MicrosoftGraphPhysicalAddress\n  version: 1.0.0\nrelationships: []\nsamples:\n  - city: Lisbon\n    countryOrRegion: United States\n    postalCode: '10115'\n    state: State 1\n    street: 12 Harbour Street\n  - city: Austin\n    countryOrRegion: United Kingdom\n    postalCode: '94107'\n    state: State 2\n    street: 48 Elm Avenue\n  - city: Osaka\n    countryOrRegion: Canada\n    postalCode: '75008'\n    state: State 3\n    street: 7 Market Square\n  - city: Toronto\n    countryOrRegion: Germany\n    postalCode: '00144'\n    state: State 4\n    street: 230 King Road\n  - city: Nairobi\n    countryOrRegion: Japan\n    postalCode: '60601'\n    state: State 5\n    street: 91 River Lane\nschema:\n  city:\n    description: The city.\n    required: false\n    type: string?\n  countryOrRegion:\n    description: The country or region. It's a free-format string value, for example, 'United States'.\n    required: false\n    type: string?\n  postalCode:\n    description: The postal code.\n    required: false\n    type: string?\n  state:\n    description: The state.\n    required: false\n    type: string?\n  street:\n    description: The street.\n    required: false\n    type: string?\nsemantics: {}\ntokens: {}\ntraits: []\n",
     "proposals": [
       {
         "effects": "Acceptance binds Stateful to the declared source fields and omits canonical fields with null bindings. Review the bindings and audit roles. No trait is applied to this draft.",
         "errors": [],
         "evidence": [
           {
             "file": "graph-contact.json",
             "kind": "name",
             "pointer": "/components/schemas/microsoft.graph.physicalAddress/properties/state",
             "reason": "Name alone suggests status; no state values or lifecycle structure were declared."
           }
         ],
         "grade": "weak",
         "id": "e04e378046053d34",
         "trait": {
           "fieldBindings": {
             "allowed_transitions": null,
             "state_history": null,
             "status": "state"
           },
           "name": "Stateful",
           "parameters": {}
         },
         "valid": true
       }
     ],
     "unmapped": [
       {
         "file": "graph-contact.json",
         "kind": "keyword",
         "object": "MicrosoftGraphPhysicalAddress",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.physicalAddress/properties/@odata.type/type",
         "reason": "Preserved in the hub; not enforced by the object field contract."
       },
       {
         "file": "graph-contact.json",
         "kind": "property",
         "object": "MicrosoftGraphPhysicalAddress",
         "outcome": "unmapped",
         "pointer": "/components/schemas/microsoft.graph.physicalAddress/properties/@odata.type",
         "reason": "Field name is not a valid object/code identifier; rename explicitly before applying."
       }
     ],
     "diff": {
       "name": "MicrosoftGraphPhysicalAddress",
       "status": "new",
       "fields": {
         "added": [
           "city",
           "countryOrRegion",
           "postalCode",
           "state",
           "street"
         ],
         "removed": [],
         "changed": []
       },
       "screens": [
         "list",
         "detail",
         "form"
       ],
       "traitsChanged": false,
       "relationshipsChanged": false
     }
   }
   ```

10. `object_import` · show-MicrosoftGraphProfilePhoto

    Its input:

    ```
    {
      "action": "show",
      "importId": "import-18f1e3a7ece3a23b009136ed8c6ba2994b85a2e3de2fff04970c06b61828d3d2",
      "object": "MicrosoftGraphProfilePhoto"
    }
    ```

    Its result:

    ```
    {
      "action": "show",
      "importId": "import-18f1e3a7ece3a23b009136ed8c6ba2994b85a2e3de2fff04970c06b61828d3d2",
      "name": "MicrosoftGraphProfilePhoto",
      "yaml": "metadata:\n  references:\n    - graph-contact.json#/components/schemas/microsoft.graph.profilePhoto\n  supportedContexts:\n    - list\n    - detail\n    - form\nobject:\n  description: Imported microsoft.graph.profilePhoto schema. Samples without source examples are illustrative.\n  domain: imported\n  name: MicrosoftGraphProfilePhoto\n  version: 1.0.0\nrelationships: []\nsamples:\n  - height: 1\n    id: ID-001\n    width: 1\n  - height: 2\n    id: ID-002\n    width: 2\n  - height: 3\n    id: ID-003\n    width: 3\n  - height: 4\n    id: ID-004\n    width: 4\n  - height: 5\n    id: ID-005\n    width: 5\nschema:\n  height:\n    description: The height of the photo. Read-only.\n    required: false\n    type: number?\n    validation:\n      format: int32\n      maximum: 2147483647\n      minimum: -2147483648\n  id:\n    description: The unique identifier for an entity. Read-only.\n    required: false\n    type: string\n  width:\n    description: The width of the photo. Read-only.\n    required: false\n    type: number?\n    validation:\n      format: int32\n      maximum: 2147483647\n      minimum: -2147483648\nsemantics:\n  id:\n    semantic_type: text.label\n    token_mapping: tokenMap(text.primary)\ntokens: {}\ntraits: []\n",
      "proposals": [],
      "unmapped": [
        {
          "file": "graph-contact.json",
          "kind": "link",
          "object": "MicrosoftGraphProfilePhoto",
          "outcome": "unmapped",
          "pointer": "/components/schemas/microsoft.graph.profilePhoto/allOf/0/$ref",
          "reason": "Preserved as a local hub reference; draft projection decides whether it is a relationship."
        },
        {
          "file": "graph-contact.json",
          "kind": "keyword",
          "object": "MicrosoftGraphProfilePhoto",
          "outcome": "unmapped",
          "pointer": "/components/schemas/microsoft.graph.profilePhoto/allOf/1/properties/@odata.type/type",
          "reason": "Preserved in the hub; not enforced by the object field contract."
        },
        {
          "file": "graph-contact.json",
          "kind": "property",
          "object": "MicrosoftGraphProfilePhoto",
          "outcome": "unmapped",
          "pointer": "/components/schemas/microsoft.graph.profilePhoto/allOf/1/properties/@odata.type",
          "reason": "Field name is not a valid object/code identifier; rename explicitly before applying."
        },
        {
          "file": "graph-contact.json",
          "kind": "keyword",
          "object": "MicrosoftGraphProfilePhoto",
          "outcome": "unmapped",
          "pointer": "/components/schemas/microsoft.graph.profilePhoto/allOf/1/properties",
          "reason": "Preserved in the hub; not enforced by the object field contract."
        },
        {
          "file": "graph-contact.json",
          "kind": "keyword",
          "object": "MicrosoftGraphProfilePhoto",
          "outcome": "unmapped",
          "pointer": "/components/schemas/microsoft.graph.profilePhoto/allOf/1/required",
          "reason": "Preserved in the hub; not enforced by the object field contract."
        },
        {
          "file": "graph-contact.json",
          "kind": "keyword",
          "object": "MicrosoftGraphProfilePhoto",
          "outcome": "unmapped",
          "pointer": "/components/schemas/microsoft.graph.profilePhoto/allOf/1/title",
          "reason": "Preserved in the hub; not enforced by the object field contract."
        },
        {
          "file": "graph-contact.json",
          "kind": "keyword",
          "object": "MicrosoftGraphProfilePhoto",
          "outcome": "unmapped",
          "pointer": "/components/schemas/microsoft.graph.profilePhoto/allOf/1/type",
          "reason": "Preserved in the hub; not enforced by the object field contract."
        },
        {
          "file": "graph-contact.json",
          "kind": "keyword",
          "object": "MicrosoftGraphProfilePhoto",
          "outcome": "unmapped",
          "pointer": "/components/schemas/microsoft.graph.profilePhoto/x-ms-discriminator-value",
          "reason": "Preserved in the hub; not enforced by the object field contract."
        }
      ],
      "diff": {
        "name": "MicrosoftGraphProfilePhoto",
        "status": "new",
        "fields": {
          "added": [
            "height",
            "id",
            "width"
          ],
          "removed": [],
          "changed": []
        },
        "screens": [
          "list",
          "detail",
          "form"
        ],
        "traitsChanged": false,
        "relationshipsChanged": false
      }
    }
    ```

11. `object_registry` · registry-before-apply

    Its input:

    ```
    {
      "action": "list",
      "includeInternal": true
    }
    ```

    Its result:

    ```
    {
      "objects": [
        {
          "name": "Article",
          "domain": "content.publication",
          "version": "1.0.0",
          "maturity": null,
          "description": "Canonical editorial article with hybrid taxonomy + tag classification for CMS surfaces.",
          "traits": [
            "content/Labelled",
            "lifecycle/Stateful",
            "lifecycle/Timestampable",
            "core/Classifiable"
          ],
          "fieldCount": 11,
          "tags": [
            "content",
            "article",
            "hybrid",
            "classifiable"
          ],
          "visibility": "public",
          "source": "shipped"
        },
        {
          "name": "Invoice",
          "domain": "saas.billing",
          "version": "1.0.0",
          "maturity": "beta",
          "description": "Canonical SaaS invoice object normalizing payment terms, status, and refund posture.",
          "traits": [
            "SaaSBillingPayable",
            "SaaSBillingRefundable",
            "lifecycle/Timestampable",
            "viz/MarkBar"
          ],
          "fieldCount": 14,
          "tags": [
            "billing",
            "invoice",
            "finance"
          ],
          "visibility": "public",
          "source": "shipped"
        },
        {
          "name": "Media",
          "domain": "content.asset",
          "version": "1.0.0",
          "maturity": null,
          "description": "Canonical digital asset metadata powering media library, DAM, and CMS integrations.",
          "traits": [
            "content/Labelled",
            "lifecycle/Stateful",
            "lifecycle/Timestampable",
            "core/Classifiable"
          ],
          "fieldCount": 12,
          "tags": [
            "content",
            "media",
            "asset",
            "classifiable"
          ],
          "visibility": "public",
          "source": "shipped"
        },
        {
          "name": "Organization",
          "domain": "core.account",
          "version": "1.2.0",
          "maturity": null,
          "description": "Canonical account record for tenant and workspace governance across the platform.",
          "traits": [
            "content/Labelled",
            "lifecycle/Stateful",
            "structural/Ownerable",
            "lifecycle/Timestampable",
            "behavioral/Taggable",
            "core/Addressable",
            "core/Preferenceable",
            "core/Authable",
            "core/Communicable"
          ],
          "fieldCount": 9,
          "tags": [
            "universal",
            "organization",
            "tenant"
          ],
          "visibility": "public",
          "source": "shipped"
        },
        {
          "name": "Plan",
          "domain": "saas.billing",
          "version": "1.0.0",
          "maturity": "beta",
          "description": "Normalized plan definition capturing pricing, packaging, and entitlement metadata.",
          "traits": [
            "SaaSBillingBillable",
            "SaaSBillingMetered",
            "structural/Ownerable"
          ],
          "fieldCount": 9,
          "tags": [
            "billing",
            "plan",
            "packaging"
          ],
          "visibility": "public",
          "source": "shipped"
        },
        {
          "name": "Product",
          "domain": "core.catalog",
          "version": "1.1.0",
          "maturity": null,
          "description": "Canonical catalog entry combining pricing, lifecycle, and merchandising metadata.",
          "traits": [
            "content/Labelled",
            "lifecycle/Stateful",
            "lifecycle/Timestampable",
            "financial/Priceable",
            "core/Classifiable",
            "behavioral/Searchable",
            "behavioral/Filterable",
            "behavioral/Pageable"
          ],
          "fieldCount": 7,
          "tags": [
            "universal",
            "product",
            "commerce",
            "taxonomy"
          ],
          "visibility": "public",
          "source": "shipped"
        },
        {
          "name": "Relationship",
          "domain": "core.graph",
          "version": "1.1.0",
          "maturity": null,
          "description": "Canonical graph edge linking two entities with lifecycle, ownership, and tagging semantics.",
          "traits": [
            "content/Labelled",
            "lifecycle/Stateful",
            "lifecycle/Timestampable",
            "structural/Ownerable",
            "behavioral/Taggable",
            "viz/MarkGraph"
          ],
          "fieldCount": 12,
          "tags": [
            "universal",
            "relationship",
            "graph"
          ],
          "visibility": "public",
          "source": "shipped"
        },
        {
          "name": "Subscription",
          "domain": "core.billing",
          "version": "2.0.0",
          "maturity": "beta",
          "description": "Canonical subscription record composing lifecycle, billing, and cancellation semantics.",
          "traits": [
            "lifecycle/Stateful",
            "lifecycle/Cancellable",
            "lifecycle/Timestampable",
            "financial/Billable",
            "lifecycle/Archivable",
            "viz/MarkBar"
          ],
          "fieldCount": 18,
          "tags": [
            "billing",
            "lifecycle",
            "monetization"
          ],
          "visibility": "public",
          "source": "shipped"
        },
        {
          "name": "Transaction",
          "domain": "core.commerce",
          "version": "1.1.0",
          "maturity": null,
          "description": "Canonical transaction record tracking monetary movement, lifecycle, and audit metadata.",
          "traits": [
            "lifecycle/Stateful",
            "lifecycle/Timestampable",
            "financial/Priceable",
            "lifecycle/Cancellable",
            "lifecycle/Archivable"
          ],
          "fieldCount": 11,
          "tags": [
            "universal",
            "transaction",
            "commerce"
          ],
          "visibility": "public",
          "source": "shipped"
        },
        {
          "name": "Usage",
          "domain": "saas.billing",
          "version": "1.0.0",
          "maturity": "beta",
          "description": "Metered usage snapshot for consumption based billing supporting trend analysis and overage forecasting.",
          "traits": [
            "SaaSBillingMetered",
            "lifecycle/Timestampable",
            "viz/MarkLine"
          ],
          "fieldCount": 11,
          "tags": [
            "billing",
            "usage",
            "analytics"
          ],
          "visibility": "public",
          "source": "shipped"
        },
        {
          "name": "User",
          "domain": "core.identity",
          "version": "1.4.0",
          "maturity": "stable",
          "description": "Canonical identity record representing a platform user across lifecycle contexts.",
          "traits": [
            "lifecycle/Stateful",
            "lifecycle/Timestampable",
            "behavioral/Taggable",
            "core/Addressable",
            "core/Preferenceable",
            "core/Authable",
            "core/Communicable"
          ],
          "fieldCount": 7,
          "tags": [
            "universal",
            "identity",
            "core"
          ],
          "visibility": "public",
          "source": "shipped"
        },
        {
          "name": "CapturedArtifact",
          "domain": "capture.artifact",
          "version": "0.3.0",
          "maturity": "alpha",
          "description": "A file a capture run wrote, with the attestation its run manifest records: the file's kind, path, size, when it was written and its sha256.",
          "traits": [
            "behavioral/Searchable",
            "behavioral/Filterable",
            "behavioral/Pageable",
            "core/Assessable",
            "core/Provenanced"
          ],
          "fieldCount": 15,
          "tags": [
            "capture",
            "artifact",
            "attestation"
          ],
          "visibility": "internal",
          "source": "shipped"
        },
        {
          "name": "Comparison",
          "domain": "capture.comparison",
          "version": "0.3.0",
          "maturity": "alpha",
          "description": "A read-only drift analysis of one captured product: how its live values compare with its design's values, with the capture's and the analysis's identities and times kept apart.",
          "traits": [
            "core/Assessable",
            "core/Provenanced"
          ],
          "fieldCount": 25,
          "tags": [
            "comparison",
            "read-only"
          ],
          "visibility": "internal",
          "source": "shipped"
        },
        {
          "name": "ComparisonSignal",
          "domain": "capture.comparison",
          "version": "0.3.0",
          "maturity": "alpha",
          "description": "One difference a drift analysis recorded between a captured product's live value and its design's values, with both comparands retained. It is not an accessibility finding.",
          "traits": [
            "behavioral/Searchable",
            "behavioral/Filterable",
            "behavioral/Pageable",
            "core/Assessable",
            "core/Provenanced"
          ],
          "fieldCount": 22,
          "tags": [
            "comparison",
            "read-only"
          ],
          "visibility": "internal",
          "source": "shipped"
        },
        {
          "name": "Finding",
          "domain": "capture.finding",
          "version": "0.3.0",
          "maturity": "alpha",
          "description": "One accessibility rule's result on one captured page, with the engine that reported it and the evidence the run attests. Violations and needs-review items carry their reasons; page-level counts alone never become findings.",
          "traits": [
            "behavioral/Searchable",
            "behavioral/Filterable",
            "behavioral/Pageable",
            "core/Assessable",
            "core/Provenanced"
          ],
          "fieldCount": 19,
          "tags": [
            "capture",
            "finding",
            "accessibility"
          ],
          "visibility": "internal",
          "source": "shipped"
        },
        {
          "name": "Run",
          "domain": "capture.run",
          "version": "0.3.0",
          "maturity": "alpha",
          "description": "One capture of one product: when it ran, what it read and what it found, as the run's manifest, accessibility report and artifact index record them.",
          "traits": [
            "behavioral/Searchable",
            "behavioral/Filterable",
            "behavioral/Pageable",
            "core/Provenanced"
          ],
          "fieldCount": 28,
          "tags": [
            "capture",
            "run"
          ],
          "visibility": "internal",
          "source": "shipped"
        }
      ],
      "totalCount": 16,
      "hiddenInternal": 0,
      "filters": {
        "domain": null,
        "maturity": null,
        "trait": null
      },
      "folders": {
        "objects": "~/.oods-foundry/objects",
        "traits": "~/.oods-foundry/traits"
      },
      "issues": []
    }
    ```

12. `object_import` · apply

    Its input:

    ```
    {
      "action": "apply",
      "importId": "import-18f1e3a7ece3a23b009136ed8c6ba2994b85a2e3de2fff04970c06b61828d3d2",
      "objects": [
        {
          "name": "MicrosoftGraphEmailAddress"
        },
        {
          "name": "MicrosoftGraphExtension"
        },
        {
          "name": "MicrosoftGraphMultiValueLegacyExtendedProperty"
        },
        {
          "name": "MicrosoftGraphSingleValueLegacyExtendedProperty"
        },
        {
          "name": "MicrosoftGraphContact"
        },
        {
          "name": "MicrosoftGraphEntity"
        },
        {
          "name": "MicrosoftGraphOutlookItem"
        },
        {
          "name": "MicrosoftGraphPhysicalAddress"
        },
        {
          "name": "MicrosoftGraphProfilePhoto"
        }
      ]
    }
    ```

    Its result:

    ```
    {
      "action": "apply",
      "importId": "import-18f1e3a7ece3a23b009136ed8c6ba2994b85a2e3de2fff04970c06b61828d3d2",
      "applied": [
        {
          "name": "MicrosoftGraphEmailAddress",
          "contexts": [
            "list",
            "detail",
            "form"
          ]
        },
        {
          "name": "MicrosoftGraphExtension",
          "contexts": [
            "list",
            "detail",
            "form"
          ]
        },
        {
          "name": "MicrosoftGraphMultiValueLegacyExtendedProperty",
          "contexts": [
            "list",
            "detail",
            "form"
          ]
        },
        {
          "name": "MicrosoftGraphSingleValueLegacyExtendedProperty",
          "contexts": [
            "list",
            "detail",
            "form"
          ]
        },
        {
          "name": "MicrosoftGraphContact",
          "contexts": [
            "list",
            "detail",
            "form"
          ]
        },
        {
          "name": "MicrosoftGraphEntity",
          "contexts": [
            "list",
            "detail",
            "form"
          ]
        },
        {
          "name": "MicrosoftGraphOutlookItem",
          "contexts": [
            "list",
            "detail",
            "form"
          ]
        },
        {
          "name": "MicrosoftGraphPhysicalAddress",
          "contexts": [
            "list",
            "detail",
            "form"
          ]
        },
        {
          "name": "MicrosoftGraphProfilePhoto",
          "contexts": [
            "list",
            "detail",
            "form"
          ]
        }
      ],
      "count": 9
    }
    ```

13. `object_registry` · registry-after-apply

    Its input:

    ```
    {
      "action": "list",
      "includeInternal": true
    }
    ```

    Its result:

    ```
    {
      "objects": [
        {
          "name": "Article",
          "domain": "content.publication",
          "version": "1.0.0",
          "maturity": null,
          "description": "Canonical editorial article with hybrid taxonomy + tag classification for CMS surfaces.",
          "traits": [
            "content/Labelled",
            "lifecycle/Stateful",
            "lifecycle/Timestampable",
            "core/Classifiable"
          ],
          "fieldCount": 11,
          "tags": [
            "content",
            "article",
            "hybrid",
            "classifiable"
          ],
          "visibility": "public",
          "source": "shipped"
        },
        {
          "name": "Invoice",
          "domain": "saas.billing",
          "version": "1.0.0",
          "maturity": "beta",
          "description": "Canonical SaaS invoice object normalizing payment terms, status, and refund posture.",
          "traits": [
            "SaaSBillingPayable",
            "SaaSBillingRefundable",
            "lifecycle/Timestampable",
            "viz/MarkBar"
          ],
          "fieldCount": 14,
          "tags": [
            "billing",
            "invoice",
            "finance"
          ],
          "visibility": "public",
          "source": "shipped"
        },
        {
          "name": "Media",
          "domain": "content.asset",
          "version": "1.0.0",
          "maturity": null,
          "description": "Canonical digital asset metadata powering media library, DAM, and CMS integrations.",
          "traits": [
            "content/Labelled",
            "lifecycle/Stateful",
            "lifecycle/Timestampable",
            "core/Classifiable"
          ],
          "fieldCount": 12,
          "tags": [
            "content",
            "media",
            "asset",
            "classifiable"
          ],
          "visibility": "public",
          "source": "shipped"
        },
        {
          "name": "MicrosoftGraphContact",
          "domain": "imported",
          "version": "1.0.0",
          "maturity": null,
          "description": "Imported microsoft.graph.contact schema. Samples without source examples are illustrative.",
          "traits": [],
          "fieldCount": 33,
          "tags": [],
          "visibility": "public",
          "source": "user"
        },
        {
          "name": "MicrosoftGraphEmailAddress",
          "domain": "imported",
          "version": "1.0.0",
          "maturity": null,
          "description": "Imported microsoft.graph.emailAddress schema. Samples without source examples are illustrative.",
          "traits": [],
          "fieldCount": 2,
          "tags": [],
          "visibility": "public",
          "source": "user"
        },
        {
          "name": "MicrosoftGraphEntity",
          "domain": "imported",
          "version": "1.0.0",
          "maturity": null,
          "description": "Imported microsoft.graph.entity schema. Samples without source examples are illustrative.",
          "traits": [],
          "fieldCount": 1,
          "tags": [],
          "visibility": "public",
          "source": "user"
        },
        {
          "name": "MicrosoftGraphExtension",
          "domain": "imported",
          "version": "1.0.0",
          "maturity": null,
          "description": "Imported microsoft.graph.extension schema. Samples without source examples are illustrative.",
          "traits": [],
          "fieldCount": 1,
          "tags": [],
          "visibility": "public",
          "source": "user"
        },
        {
          "name": "MicrosoftGraphMultiValueLegacyExtendedProperty",
          "domain": "imported",
          "version": "1.0.0",
          "maturity": null,
          "description": "Imported microsoft.graph.multiValueLegacyExtendedProperty schema. Samples without source examples are illustrative.",
          "traits": [],
          "fieldCount": 1,
          "tags": [],
          "visibility": "public",
          "source": "user"
        },
        {
          "name": "MicrosoftGraphOutlookItem",
          "domain": "imported",
          "version": "1.0.0",
          "maturity": null,
          "description": "Imported microsoft.graph.outlookItem schema. Samples without source examples are illustrative.",
          "traits": [],
          "fieldCount": 4,
          "tags": [],
          "visibility": "public",
          "source": "user"
        },
        {
          "name": "MicrosoftGraphPhysicalAddress",
          "domain": "imported",
          "version": "1.0.0",
          "maturity": null,
          "description": "Imported microsoft.graph.physicalAddress schema. Samples without source examples are illustrative.",
          "traits": [],
          "fieldCount": 5,
          "tags": [],
          "visibility": "public",
          "source": "user"
        },
        {
          "name": "MicrosoftGraphProfilePhoto",
          "domain": "imported",
          "version": "1.0.0",
          "maturity": null,
          "description": "Imported microsoft.graph.profilePhoto schema. Samples without source examples are illustrative.",
          "traits": [],
          "fieldCount": 3,
          "tags": [],
          "visibility": "public",
          "source": "user"
        },
        {
          "name": "MicrosoftGraphSingleValueLegacyExtendedProperty",
          "domain": "imported",
          "version": "1.0.0",
          "maturity": null,
          "description": "Imported microsoft.graph.singleValueLegacyExtendedProperty schema. Samples without source examples are illustrative.",
          "traits": [],
          "fieldCount": 2,
          "tags": [],
          "visibility": "public",
          "source": "user"
        },
        {
          "name": "Organization",
          "domain": "core.account",
          "version": "1.2.0",
          "maturity": null,
          "description": "Canonical account record for tenant and workspace governance across the platform.",
          "traits": [
            "content/Labelled",
            "lifecycle/Stateful",
            "structural/Ownerable",
            "lifecycle/Timestampable",
            "behavioral/Taggable",
            "core/Addressable",
            "core/Preferenceable",
            "core/Authable",
            "core/Communicable"
          ],
          "fieldCount": 9,
          "tags": [
            "universal",
            "organization",
            "tenant"
          ],
          "visibility": "public",
          "source": "shipped"
        },
        {
          "name": "Plan",
          "domain": "saas.billing",
          "version": "1.0.0",
          "maturity": "beta",
          "description": "Normalized plan definition capturing pricing, packaging, and entitlement metadata.",
          "traits": [
            "SaaSBillingBillable",
            "SaaSBillingMetered",
            "structural/Ownerable"
          ],
          "fieldCount": 9,
          "tags": [
            "billing",
            "plan",
            "packaging"
          ],
          "visibility": "public",
          "source": "shipped"
        },
        {
          "name": "Product",
          "domain": "core.catalog",
          "version": "1.1.0",
          "maturity": null,
          "description": "Canonical catalog entry combining pricing, lifecycle, and merchandising metadata.",
          "traits": [
            "content/Labelled",
            "lifecycle/Stateful",
            "lifecycle/Timestampable",
            "financial/Priceable",
            "core/Classifiable",
            "behavioral/Searchable",
            "behavioral/Filterable",
            "behavioral/Pageable"
          ],
          "fieldCount": 7,
          "tags": [
            "universal",
            "product",
            "commerce",
            "taxonomy"
          ],
          "visibility": "public",
          "source": "shipped"
        },
        {
          "name": "Relationship",
          "domain": "core.graph",
          "version": "1.1.0",
          "maturity": null,
          "description": "Canonical graph edge linking two entities with lifecycle, ownership, and tagging semantics.",
          "traits": [
            "content/Labelled",
            "lifecycle/Stateful",
            "lifecycle/Timestampable",
            "structural/Ownerable",
            "behavioral/Taggable",
            "viz/MarkGraph"
          ],
          "fieldCount": 12,
          "tags": [
            "universal",
            "relationship",
            "graph"
          ],
          "visibility": "public",
          "source": "shipped"
        },
        {
          "name": "Subscription",
          "domain": "core.billing",
          "version": "2.0.0",
          "maturity": "beta",
          "description": "Canonical subscription record composing lifecycle, billing, and cancellation semantics.",
          "traits": [
            "lifecycle/Stateful",
            "lifecycle/Cancellable",
            "lifecycle/Timestampable",
            "financial/Billable",
            "lifecycle/Archivable",
            "viz/MarkBar"
          ],
          "fieldCount": 18,
          "tags": [
            "billing",
            "lifecycle",
            "monetization"
          ],
          "visibility": "public",
          "source": "shipped"
        },
        {
          "name": "Transaction",
          "domain": "core.commerce",
          "version": "1.1.0",
          "maturity": null,
          "description": "Canonical transaction record tracking monetary movement, lifecycle, and audit metadata.",
          "traits": [
            "lifecycle/Stateful",
            "lifecycle/Timestampable",
            "financial/Priceable",
            "lifecycle/Cancellable",
            "lifecycle/Archivable"
          ],
          "fieldCount": 11,
          "tags": [
            "universal",
            "transaction",
            "commerce"
          ],
          "visibility": "public",
          "source": "shipped"
        },
        {
          "name": "Usage",
          "domain": "saas.billing",
          "version": "1.0.0",
          "maturity": "beta",
          "description": "Metered usage snapshot for consumption based billing supporting trend analysis and overage forecasting.",
          "traits": [
            "SaaSBillingMetered",
            "lifecycle/Timestampable",
            "viz/MarkLine"
          ],
          "fieldCount": 11,
          "tags": [
            "billing",
            "usage",
            "analytics"
          ],
          "visibility": "public",
          "source": "shipped"
        },
        {
          "name": "User",
          "domain": "core.identity",
          "version": "1.4.0",
          "maturity": "stable",
          "description": "Canonical identity record representing a platform user across lifecycle contexts.",
          "traits": [
            "lifecycle/Stateful",
            "lifecycle/Timestampable",
            "behavioral/Taggable",
            "core/Addressable",
            "core/Preferenceable",
            "core/Authable",
            "core/Communicable"
          ],
          "fieldCount": 7,
          "tags": [
            "universal",
            "identity",
            "core"
          ],
          "visibility": "public",
          "source": "shipped"
        },
        {
          "name": "CapturedArtifact",
          "domain": "capture.artifact",
          "version": "0.3.0",
          "maturity": "alpha",
          "description": "A file a capture run wrote, with the attestation its run manifest records: the file's kind, path, size, when it was written and its sha256.",
          "traits": [
            "behavioral/Searchable",
            "behavioral/Filterable",
            "behavioral/Pageable",
            "core/Assessable",
            "core/Provenanced"
          ],
          "fieldCount": 15,
          "tags": [
            "capture",
            "artifact",
            "attestation"
          ],
          "visibility": "internal",
          "source": "shipped"
        },
        {
          "name": "Comparison",
          "domain": "capture.comparison",
          "version": "0.3.0",
          "maturity": "alpha",
          "description": "A read-only drift analysis of one captured product: how its live values compare with its design's values, with the capture's and the analysis's identities and times kept apart.",
          "traits": [
            "core/Assessable",
            "core/Provenanced"
          ],
          "fieldCount": 25,
          "tags": [
            "comparison",
            "read-only"
          ],
          "visibility": "internal",
          "source": "shipped"
        },
        {
          "name": "ComparisonSignal",
          "domain": "capture.comparison",
          "version": "0.3.0",
          "maturity": "alpha",
          "description": "One difference a drift analysis recorded between a captured product's live value and its design's values, with both comparands retained. It is not an accessibility finding.",
          "traits": [
            "behavioral/Searchable",
            "behavioral/Filterable",
            "behavioral/Pageable",
            "core/Assessable",
            "core/Provenanced"
          ],
          "fieldCount": 22,
          "tags": [
            "comparison",
            "read-only"
          ],
          "visibility": "internal",
          "source": "shipped"
        },
        {
          "name": "Finding",
          "domain": "capture.finding",
          "version": "0.3.0",
          "maturity": "alpha",
          "description": "One accessibility rule's result on one captured page, with the engine that reported it and the evidence the run attests. Violations and needs-review items carry their reasons; page-level counts alone never become findings.",
          "traits": [
            "behavioral/Searchable",
            "behavioral/Filterable",
            "behavioral/Pageable",
            "core/Assessable",
            "core/Provenanced"
          ],
          "fieldCount": 19,
          "tags": [
            "capture",
            "finding",
            "accessibility"
          ],
          "visibility": "internal",
          "source": "shipped"
        },
        {
          "name": "Run",
          "domain": "capture.run",
          "version": "0.3.0",
          "maturity": "alpha",
          "description": "One capture of one product: when it ran, what it read and what it found, as the run's manifest, accessibility report and artifact index record them.",
          "traits": [
            "behavioral/Searchable",
            "behavioral/Filterable",
            "behavioral/Pageable",
            "core/Provenanced"
          ],
          "fieldCount": 28,
          "tags": [
            "capture",
            "run"
          ],
          "visibility": "internal",
          "source": "shipped"
        }
      ],
      "totalCount": 25,
      "hiddenInternal": 0,
      "filters": {
        "domain": null,
        "maturity": null,
        "trait": null
      },
      "folders": {
        "objects": "~/.oods-foundry/objects",
        "traits": "~/.oods-foundry/traits"
      },
      "issues": []
    }
    ```

14. `brand_create` · site-brand-create

    Its input:

    ```
    {
      "action": "create",
      "brand_id": "Aquex",
      "recipe": {
        "neutralHue": 250,
        "neutralChroma": 0.008,
        "accentHue": 183,
        "primary": "neutral",
        "radius": 8,
        "font": "DM Sans"
      }
    }
    ```

    Its result:

    ```
    {
      "action": "create",
      "created": true,
      "brand_id": "Aquex",
      "folder": "~/.oods-foundry/brands",
      "files": [
        {
          "theme": "base",
          "path": "Aquex/base.json",
          "sha256": "fd02a715ec0811ae19fc0c845092e104eb6269933a9a708a0aec98117e59607f",
          "bytes": 32539
        },
        {
          "theme": "dark",
          "path": "Aquex/dark.json",
          "sha256": "d16368b455b291d2ba5d839e75a964a542e9fb23aa72cbe465dbdc9be749a212",
          "bytes": 30976
        },
        {
          "theme": "hc",
          "path": "Aquex/hc.json",
          "sha256": "81b4883cc956a429a9829eb072c4502ac0021bbd3c460194b987fbadfccdc4fd",
          "bytes": 19759
        }
      ],
      "build": {
        "exitCode": 0,
        "durationMs": 3254
      },
      "brands": [
        "A",
        "Aquex",
        "B"
      ],
      "report": {
        "valid": true,
        "brand_id": "Aquex",
        "themes": {
          "base": {
            "label": "light",
            "slots": 103,
            "provided": 103
          },
          "dark": {
            "label": "dark",
            "slots": 96,
            "provided": 96
          },
          "hc": {
            "label": "high contrast",
            "slots": 96,
            "provided": 96
          }
        },
        "issues": [],
        "contrast": {
          "base": {
            "graded": 84,
            "passed": 84,
            "failed": 0,
            "ungraded": 0,
            "charts": {
              "graded": 7,
              "passed": 7,
              "failed": 0,
              "ungraded": 0
            }
          },
          "dark": {
            "graded": 84,
            "passed": 84,
            "failed": 0,
            "ungraded": 0,
            "charts": {
              "graded": 7,
              "passed": 7,
              "failed": 0,
              "ungraded": 0
            }
          },
          "hc": {
            "graded": 83,
            "passed": 83,
            "failed": 0,
            "ungraded": 0,
            "systemColoursResolvedIn": "Chromium 141.0.7390.37 without forced colours (macOS and Linux, light and dark color-scheme), 2026-09-29",
            "exempt": 1,
            "charts": {
              "graded": 7,
              "passed": 7,
              "failed": 0,
              "ungraded": 0
            }
          }
        },
        "files": [
          {
            "theme": "base",
            "path": "Aquex/base.json",
            "sha256": "fd02a715ec0811ae19fc0c845092e104eb6269933a9a708a0aec98117e59607f",
            "bytes": 32539
          },
          {
            "theme": "dark",
            "path": "Aquex/dark.json",
            "sha256": "d16368b455b291d2ba5d839e75a964a542e9fb23aa72cbe465dbdc9be749a212",
            "bytes": 30976
          },
          {
            "theme": "hc",
            "path": "Aquex/hc.json",
            "sha256": "81b4883cc956a429a9829eb072c4502ac0021bbd3c460194b987fbadfccdc4fd",
            "bytes": 19759
          }
        ]
      }
    }
    ```

15. `design_compose` · MicrosoftGraphContact-list-compose

    Its input:

    ```
    {
      "object": "MicrosoftGraphContact",
      "context": "list",
      "preferences": {
        "brand": "Aquex",
        "theme": "light"
      }
    }
    ```

    Its result:

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

16. `code_generate` · MicrosoftGraphContact-list-react

    Its input:

    ```
    {
      "schemaRef": "compose-5c372440",
      "framework": "react",
      "profile": "build",
      "options": {
        "output": "application",
        "brand": "Aquex",
        "theme": "light",
        "payloadMode": "file"
      }
    }
    ```

    Its result:

    ```
    {
      "status": "ok",
      "framework": "react",
      "payload": {
        "mode": "file",
        "directory": "~/.oods-foundry/payloads/code.generate-fb5dd919fa7b",
        "bytes": 134018,
        "files": [
          {
            "path": "README.md",
            "bytes": 743,
            "sha256": "ff76faf406015d87e3f30252a34b2d91c2d49aeafb7063d91b299f17fe7e8444"
          },
          {
            "path": "index.html",
            "bytes": 343,
            "sha256": "e16723a9835dae8346c56602c45442420008c3dbe80d80c4dfbce7f6a656a9a9"
          },
          {
            "path": "package.json",
            "bytes": 596,
            "sha256": "62631442a46214b8aa87144fa8395156f7396c85423363b5ee3db4d09828b70a"
          },
          {
            "path": "src/App.tsx",
            "bytes": 9162,
            "sha256": "58fcf2ebce03b4060dc7d6994e8d958783fe800ce92a81aef23124df0ff26d8a"
          },
          {
            "path": "src/GeneratedUI.tsx",
            "bytes": 10494,
            "sha256": "08b1ea0637bd963cc4e1d578fc5b007250c6424ddea8a6b1d4dd9ddb580ffdd8"
          },
          {
            "path": "src/app.css",
            "bytes": 511,
            "sha256": "2db3a558b73956ec7d87fc341bca6415d31b6e9f567c9710a90ded0db9a2df68"
          },
          {
            "path": "src/main.tsx",
            "bytes": 160,
            "sha256": "44f61db45209da70184e2b43272c8825db1152e7d300df266ed4400da939f579"
          },
          {
            "path": "src/oods-brand-aquex.css",
            "bytes": 41814,
            "sha256": "bd33a39d39f7341dee6767c4c73b62b5a36afe0b272d0201b62b046b2dfdf367"
          },
          {
            "path": "tsconfig.json",
            "bytes": 333,
            "sha256": "a0c6dad213106eebefcf5e817d07e31a8b6666e4bc678a449b7c578f62f6fb3a"
          },
          {
            "path": "vite.config.mjs",
            "bytes": 54,
            "sha256": "ba9f5d24cd9f7332074aa5d15af690839bd18252ab8a31e4b47c11f5a2c1cd38"
          },
          {
            "path": "artifact.json",
            "bytes": 69808,
            "sha256": "4cf6a3ce4b86091840468e7c7d4f22cd206c47e6a780ea2c5482db93005e6887"
          }
        ]
      },
      "code": "",
      "fileExtension": ".tsx",
      "imports": [
        "react",
        "@oods/components-react",
        "@oods/component-styles/css",
        "react-dom/client"
      ],
      "warnings": [],
      "validationReceipt": {
        "profile": "build",
        "defaulted": false,
        "rationale": "Build is the default blocking gate: target, bindings, dependencies and fallbacks must resolve under static checks; the static gate does not install or run the generated application.",
        "axes": {
          "scope": "generated-artifact",
          "enforcement": "blocking",
          "fallback": "forbidden",
          "target": {
            "requested": "react",
            "resolved": "react",
            "source": "explicit"
          }
        },
        "checks": [
          "schema-structure",
          "component-registry",
          "state-contract",
          "target-readiness",
          "normalization-fidelity",
          "binding-contract",
          "props-contract",
          "slots-contract",
          "events-contract",
          "dependency-closure"
        ],
        "notChecked": [
          "fallback-policy",
          "rendered-evidence",
          "interaction-evidence",
          "accessibility-evidence",
          "theme-evidence",
          "determinism-evidence",
          "performance-evidence",
          "certification-evidence"
        ],
        "evidence": {
          "required": [],
          "provided": [],
          "missing": [],
          "mismatched": [],
          "accepted": [],
          "notApplicable": [],
          "artifactContentHash": "sha256:fb5dd919fa7b2bf066f4aa20385ce17e117dc6745ec9bd49ea9766b51b42f232"
        }
      },
      "install": {
        "note": "@oods/component-contracts, @oods/component-styles, @oods/components-react and @oods/tokens install from npm at the exact versions listed. The app's package.json pins each package the app imports, and npm install fetches those and the @oods packages they depend on.",
        "packages": [
          {
            "name": "@oods/component-contracts",
            "version": "0.6.2"
          },
          {
            "name": "@oods/component-styles",
            "version": "0.6.2"
          },
          {
            "name": "@oods/components-react",
            "version": "0.6.2"
          },
          {
            "name": "@oods/tokens",
            "version": "0.6.2"
          }
        ],
        "steps": [
          "npm install",
          "npm run build"
        ]
      },
      "meta": {
        "nodeCount": 13,
        "componentCount": 7
      }
    }
    ```

17. `code_generate` · MicrosoftGraphContact-list-vue

    Its input:

    ```
    {
      "schemaRef": "compose-5c372440",
      "framework": "vue",
      "profile": "build",
      "options": {
        "output": "application",
        "brand": "Aquex",
        "theme": "light",
        "payloadMode": "file"
      }
    }
    ```

    Its result:

    ```
    {
      "status": "ok",
      "framework": "vue",
      "payload": {
        "mode": "file",
        "directory": "~/.oods-foundry/payloads/code.generate-d94623604f18",
        "bytes": 133998,
        "files": [
          {
            "path": "README.md",
            "bytes": 743,
            "sha256": "ff76faf406015d87e3f30252a34b2d91c2d49aeafb7063d91b299f17fe7e8444"
          },
          {
            "path": "index.html",
            "bytes": 342,
            "sha256": "c30fb634e78bc04368cb5951d196c6e0f46f12674a600672c574fedb440f2b58"
          },
          {
            "path": "package.json",
            "bytes": 546,
            "sha256": "df600a4ee723be596f4851d05c673e8e12c347465a28645c7a511c019020e62a"
          },
          {
            "path": "src/App.vue",
            "bytes": 9184,
            "sha256": "6bb9c46e33ca2ee88c425f31f8f4a9a6f4cdbf7b4be8bb4d9e3e4660266dd3d7"
          },
          {
            "path": "src/GeneratedUI.vue",
            "bytes": 10497,
            "sha256": "f73424b8a411c28db6042bbb51cd812d7708e4e09d98e163206c30e4b584b22e"
          },
          {
            "path": "src/app.css",
            "bytes": 511,
            "sha256": "2db3a558b73956ec7d87fc341bca6415d31b6e9f567c9710a90ded0db9a2df68"
          },
          {
            "path": "src/main.ts",
            "bytes": 92,
            "sha256": "fc77d6694de55892ab09e6957b93c62c0c1b1e0d99803099f4d16755f2540810"
          },
          {
            "path": "src/oods-brand-aquex.css",
            "bytes": 41814,
            "sha256": "bd33a39d39f7341dee6767c4c73b62b5a36afe0b272d0201b62b046b2dfdf367"
          },
          {
            "path": "tsconfig.json",
            "bytes": 333,
            "sha256": "a0c6dad213106eebefcf5e817d07e31a8b6666e4bc678a449b7c578f62f6fb3a"
          },
          {
            "path": "vite.config.mjs",
            "bytes": 110,
            "sha256": "57145ad3584db82c0773c10b461332cb827f51bad472603dc0ec802e590f7a2c"
          },
          {
            "path": "artifact.json",
            "bytes": 69826,
            "sha256": "43df102dac04c08e4ef3b67fdf6c458d9ca2d0bb0b97e0f581a5a22303f30c79"
          }
        ]
      },
      "code": "",
      "fileExtension": ".vue",
      "imports": [
        "@oods/components-vue",
        "@oods/component-styles/css",
        "@vitejs/plugin-vue"
      ],
      "warnings": [],
      "validationReceipt": {
        "profile": "build",
        "defaulted": false,
        "rationale": "Build is the default blocking gate: target, bindings, dependencies and fallbacks must resolve under static checks; the static gate does not install or run the generated application.",
        "axes": {
          "scope": "generated-artifact",
          "enforcement": "blocking",
          "fallback": "forbidden",
          "target": {
            "requested": "vue",
            "resolved": "vue",
            "source": "explicit"
          }
        },
        "checks": [
          "schema-structure",
          "component-registry",
          "state-contract",
          "target-readiness",
          "normalization-fidelity",
          "binding-contract",
          "props-contract",
          "slots-contract",
          "events-contract",
          "dependency-closure"
        ],
        "notChecked": [
          "fallback-policy",
          "rendered-evidence",
          "interaction-evidence",
          "accessibility-evidence",
          "theme-evidence",
          "determinism-evidence",
          "performance-evidence",
          "certification-evidence"
        ],
        "evidence": {
          "required": [],
          "provided": [],
          "missing": [],
          "mismatched": [],
          "accepted": [],
          "notApplicable": [],
          "artifactContentHash": "sha256:d94623604f18fb504becd8e6ca8dbd58a626f15301dbf97242c0fdaf315c9d87"
        }
      },
      "install": {
        "note": "@oods/component-contracts, @oods/component-styles, @oods/components-vue and @oods/tokens install from npm at the exact versions listed. The app's package.json pins each package the app imports, and npm install fetches those and the @oods packages they depend on.",
        "packages": [
          {
            "name": "@oods/component-contracts",
            "version": "0.6.2"
          },
          {
            "name": "@oods/component-styles",
            "version": "0.6.2"
          },
          {
            "name": "@oods/components-vue",
            "version": "0.6.2"
          },
          {
            "name": "@oods/tokens",
            "version": "0.6.2"
          }
        ],
        "steps": [
          "npm install",
          "npm run build"
        ]
      },
      "meta": {
        "nodeCount": 13,
        "componentCount": 7
      }
    }
    ```

18. `design_compose` · MicrosoftGraphContact-detail-compose

    Its input:

    ```
    {
      "object": "MicrosoftGraphContact",
      "context": "detail",
      "preferences": {
        "brand": "Aquex",
        "theme": "light"
      }
    }
    ```

    Its result:

    ```
    {
      "status": "ok",
      "layout": "detail",
      "schema": {
        "version": "2026.02",
        "theme": "light",
        "screens": [
          {
            "id": "screen-detail-13",
            "component": "Stack",
            "layout": {
              "type": "stack",
              "gapToken": "cluster-default"
            },
            "children": [
              {
                "id": "detail-header-1",
                "component": "Stack",
                "layout": {
                  "type": "stack",
                  "align": "space-between",
                  "gapToken": "stack-default"
                },
                "children": [
                  {
                    "id": "slot-header-2",
                    "component": "DetailHeader",
                    "meta": {
                      "intent": "slot:header",
                      "label": "header",
                      "confidence": 0.7,
                      "confidenceLevel": "medium"
                    },
                    "props": {
                      "titleField": "title",
                      "headingLevel": 1
                    }
                  }
                ]
              },
              {
                "id": "detail-body-10",
                "component": "Card",
                "layout": {
                  "type": "stack",
                  "gapToken": "cluster-default"
                },
                "children": [
                  {
                    "id": "detail-tabs-9",
                    "component": "Tabs",
                    "children": [
                      {
                        "id": "detail-tab-panel-3",
                        "component": "Stack",
                        "layout": {
                          "type": "stack",
                          "gapToken": "cluster-default"
                        },
                        "props": {
                          "label": "Details"
                        },
                        "children": [
                          {
                            "id": "slot-tab-0-4",
                            "component": "Stack",
                            "meta": {
                              "intent": "slot:tab-0",
                              "label": "tab-0",
                              "confidence": 0.94,
                              "confidenceLevel": "high",
                              "notes": "pattern-group:user-identity"
                            },
                            "layout": {
                              "type": "stack",
                              "gapToken": "cluster-tight"
                            },
                            "props": {
                              "patternComponent": "UserIdentityCard",
                              "fields": [
                                "givenName",
                                "surname",
                                "displayName"
                              ]
                            },
                            "children": [
                              {
                                "id": "pg-user-identity-24-read-field",
                                "component": "Stack",
                                "children": [
                                  {
                                    "id": "pg-user-identity-24-label",
                                    "component": "Text",
                                    "props": {
                                      "as": "strong",
                                      "content": "Given Name"
                                    }
                                  },
                                  {
                                    "id": "pg-user-identity-24-value",
                                    "meta": {
                                      "intent": "read-only-field"
                                    },
                                    "component": "Text",
                                    "props": {
                                      "field": "givenName"
                                    }
                                  }
                                ]
                              },
                              {
                                "id": "pg-user-identity-25-read-field",
                                "component": "Stack",
                                "children": [
                                  {
                                    "id": "pg-user-identity-25-label",
                                    "component": "Text",
                                    "props": {
                                      "as": "strong",
                                      "content": "Surname"
                                    }
                                  },
                                  {
                                    "id": "pg-user-identity-25-value",
                                    "meta": {
                                      "intent": "read-only-field"
                                    },
                                    "component": "Text",
                                    "props": {
                                      "field": "surname"
                                    }
                                  }
                                ]
                              },
                              {
                                "id": "pg-user-identity-26-read-field",
                                "component": "Stack",
                                "children": [
                                  {
                                    "id": "pg-user-identity-26-label",
                                    "component": "Text",
                                    "props": {
                                      "as": "strong",
                                      "content": "Display Name"
                                    }
                                  },
                                  {
                                    "id": "pg-user-identity-26-value",
                                    "meta": {
                                      "intent": "read-only-field"
                                    },
                                    "component": "Text",
                                    "props": {
                                      "field": "displayName"
                                    }
                                  }
                                ]
                              }
                            ]
                          },
                          {
                            "id": "slot-tab-1-6",
                            "component": "Stack",
                            "meta": {
                              "intent": "slot:tab-1",
                              "label": "tab-1",
                              "confidence": 0.94,
                              "confidenceLevel": "high",
                              "notes": "pattern-group:contact-info"
                            },
                            "layout": {
                              "type": "stack",
                              "gapToken": "cluster-tight"
                            },
                            "props": {
                              "patternComponent": "ContactInfo",
                              "fields": [
                                "emailAddresses",
                                "mobilePhone"
                              ]
                            },
                            "children": [
                              {
                                "id": "pg-contact-info-27-read-field",
                                "component": "Stack",
                                "children": [
                                  {
                                    "id": "pg-contact-info-27-label",
                                    "component": "Text",
                                    "props": {
                                      "as": "strong",
                                      "content": "Email Addresses"
                                    }
                                  },
                                  {
                                    "id": "pg-contact-info-27-value",
                                    "meta": {
                                      "intent": "read-only-field"
                                    },
                                    "component": "Text",
                                    "props": {
                                      "field": "emailAddresses"
                                    }
                                  }
                                ]
                              },
                              {
                                "id": "pg-contact-info-28-read-field",
                                "component": "Stack",
                                "children": [
                                  {
                                    "id": "pg-contact-info-28-label",
                                    "component": "Text",
                                    "props": {
                                      "as": "strong",
                                      "content": "Mobile Phone"
                                    }
                                  },
                                  {
                                    "id": "pg-contact-info-28-value",
                                    "meta": {
                                      "intent": "read-only-field"
                                    },
                                    "component": "Text",
                                    "props": {
                                      "field": "mobilePhone"
                                    }
                                  }
                                ]
                              }
                            ]
                          },
                          {
                            "id": "detail-tabs-9-assistantName-read-field",
                            "component": "Stack",
                            "children": [
                              {
                                "id": "detail-tabs-9-assistantName-label",
                                "component": "Text",
                                "props": {
                                  "as": "strong",
                                  "content": "Assistant Name"
                                }
                              },
                              {
                                "id": "detail-tabs-9-assistantName-value",
                                "meta": {
                                  "intent": "read-only-field"
                                },
                                "component": "Text",
                                "props": {
                                  "field": "assistantName"
                                }
                              }
                            ]
                          },
                          {
                            "id": "detail-tabs-9-birthday-read-field",
                            "component": "Stack",
                            "children": [
                              {
                                "id": "detail-tabs-9-birthday-label",
                                "component": "Text",
                                "props": {
                                  "as": "strong",
                                  "content": "Birthday"
                                }
                              },
                              {
                                "id": "detail-tabs-9-birthday-value",
                                "meta": {
                                  "intent": "read-only-field"
                                },
                                "component": "Text",
                                "props": {
                                  "field": "birthday"
                                }
                              }
                            ]
                          },
                          {
                            "id": "detail-tabs-9-businessHomePage-read-field",
                            "component": "Stack",
                            "children": [
                              {
                                "id": "detail-tabs-9-businessHomePage-label",
                                "component": "Text",
                                "props": {
                                  "as": "strong",
                                  "content": "Business Home Page"
                                }
                              },
                              {
                                "id": "detail-tabs-9-businessHomePage-value",
                                "meta": {
                                  "intent": "read-only-field"
                                },
                                "component": "Text",
                                "props": {
                                  "field": "businessHomePage"
                                }
                              }
                            ]
                          },
                          {
                            "id": "detail-tabs-9-changeKey-read-field",
                            "component": "Stack",
                            "children": [
                              {
                                "id": "detail-tabs-9-changeKey-label",
                                "component": "Text",
                                "props": {
                                  "as": "strong",
                                  "content": "Change Key"
                                }
                              },
                              {
                                "id": "detail-tabs-9-changeKey-value",
                                "meta": {
                                  "intent": "read-only-field"
                                },
                                "component": "Text",
                                "props": {
                                  "field": "changeKey"
                                }
                              }
                            ]
                          },
                          {
                            "id": "detail-tabs-9-companyName-read-field",
                            "component": "Stack",
                            "children": [
                              {
                                "id": "detail-tabs-9-companyName-label",
                                "component": "Text",
                                "props": {
                                  "as": "strong",
                                  "content": "Company Name"
                                }
                              },
                              {
                                "id": "detail-tabs-9-companyName-value",
                                "meta": {
                                  "intent": "read-only-field"
                                },
                                "component": "Text",
                                "props": {
                                  "field": "companyName"
                                }
                              }
                            ]
                          },
                          {
                            "id": "detail-tabs-9-createdDateTime-read-field",
                            "component": "Stack",
                            "children": [
                              {
                                "id": "detail-tabs-9-createdDateTime-label",
                                "component": "Text",
                                "props": {
                                  "as": "strong",
                                  "content": "Created Date Time"
                                }
                              },
                              {
                                "id": "detail-tabs-9-createdDateTime-value",
                                "meta": {
                                  "intent": "read-only-field"
                                },
                                "component": "Text",
                                "props": {
                                  "field": "createdDateTime"
                                }
                              }
                            ]
                          },
                          {
                            "id": "detail-tabs-9-department-read-field",
                            "component": "Stack",
                            "children": [
                              {
                                "id": "detail-tabs-9-department-label",
                                "component": "Text",
                                "props": {
                                  "as": "strong",
                                  "content": "Department"
                                }
                              },
                              {
                                "id": "detail-tabs-9-department-value",
                                "meta": {
                                  "intent": "read-only-field"
                                },
                                "component": "Text",
                                "props": {
                                  "field": "department"
                                }
                              }
                            ]
                          },
                          {
                            "id": "detail-tabs-9-fileAs-read-field",
                            "component": "Stack",
                            "children": [
                              {
                                "id": "detail-tabs-9-fileAs-label",
                                "component": "Text",
                                "props": {
                                  "as": "strong",
                                  "content": "File As"
                                }
                              },
                              {
                                "id": "detail-tabs-9-fileAs-value",
                                "meta": {
                                  "intent": "read-only-field"
                                },
                                "component": "Text",
                                "props": {
                                  "field": "fileAs"
                                }
                              }
                            ]
                          },
                          {
                            "id": "detail-tabs-9-generation-read-field",
                            "component": "Stack",
                            "children": [
                              {
                                "id": "detail-tabs-9-generation-label",
                                "component": "Text",
                                "props": {
                                  "as": "strong",
                                  "content": "Generation"
                                }
                              },
                              {
                                "id": "detail-tabs-9-generation-value",
                                "meta": {
                                  "intent": "read-only-field"
                                },
                                "component": "Text",
                                "props": {
                                  "field": "generation"
                                }
                              }
                            ]
                          },
                          {
                            "id": "detail-tabs-9-id-read-field",
                            "component": "Stack",
                            "children": [
                              {
                                "id": "detail-tabs-9-id-label",
                                "component": "Text",
                                "props": {
                                  "as": "strong",
                                  "content": "Id"
                                }
                              },
                              {
                                "id": "detail-tabs-9-id-value",
                                "meta": {
                                  "intent": "read-only-field"
                                },
                                "component": "Text",
                                "props": {
                                  "field": "id"
                                }
                              }
                            ]
                          },
                          {
                            "id": "detail-tabs-9-initials-read-field",
                            "component": "Stack",
                            "children": [
                              {
                                "id": "detail-tabs-9-initials-label",
                                "component": "Text",
                                "props": {
                                  "as": "strong",
                                  "content": "Initials"
                                }
                              },
                              {
                                "id": "detail-tabs-9-initials-value",
                                "meta": {
                                  "intent": "read-only-field"
                                },
                                "component": "Text",
                                "props": {
                                  "field": "initials"
                                }
                              }
                            ]
                          },
                          {
                            "id": "detail-tabs-9-jobTitle-read-field",
                            "component": "Stack",
                            "children": [
                              {
                                "id": "detail-tabs-9-jobTitle-label",
                                "component": "Text",
                                "props": {
                                  "as": "strong",
                                  "content": "Job Title"
                                }
                              },
                              {
                                "id": "detail-tabs-9-jobTitle-value",
                                "meta": {
                                  "intent": "read-only-field"
                                },
                                "component": "Text",
                                "props": {
                                  "field": "jobTitle"
                                }
                              }
                            ]
                          },
                          {
                            "id": "detail-tabs-9-lastModifiedDateTime-read-field",
                            "component": "Stack",
                            "children": [
                              {
                                "id": "detail-tabs-9-lastModifiedDateTime-label",
                                "component": "Text",
                                "props": {
                                  "as": "strong",
                                  "content": "Last Modified Date Time"
                                }
                              },
                              {
                                "id": "detail-tabs-9-lastModifiedDateTime-value",
                                "meta": {
                                  "intent": "read-only-field"
                                },
                                "component": "Text",
                                "props": {
                                  "field": "lastModifiedDateTime"
                                }
                              }
                            ]
                          },
                          {
                            "id": "detail-tabs-9-manager-read-field",
                            "component": "Stack",
                            "children": [
                              {
                                "id": "detail-tabs-9-manager-label",
                                "component": "Text",
                                "props": {
                                  "as": "strong",
                                  "content": "Manager"
                                }
                              },
                              {
                                "id": "detail-tabs-9-manager-value",
                                "meta": {
                                  "intent": "read-only-field"
                                },
                                "component": "Text",
                                "props": {
                                  "field": "manager"
                                }
                              }
                            ]
                          },
                          {
                            "id": "detail-tabs-9-middleName-read-field",
                            "component": "Stack",
                            "children": [
                              {
                                "id": "detail-tabs-9-middleName-label",
                                "component": "Text",
                                "props": {
                                  "as": "strong",
                                  "content": "Middle Name"
                                }
                              },
                              {
                                "id": "detail-tabs-9-middleName-value",
                                "meta": {
                                  "intent": "read-only-field"
                                },
                                "component": "Text",
                                "props": {
                                  "field": "middleName"
                                }
                              }
                            ]
                          },
                          {
                            "id": "detail-tabs-9-nickName-read-field",
                            "component": "Stack",
                            "children": [
                              {
                                "id": "detail-tabs-9-nickName-label",
                                "component": "Text",
                                "props": {
                                  "as": "strong",
                                  "content": "Nick Name"
                                }
                              },
                              {
                                "id": "detail-tabs-9-nickName-value",
                                "meta": {
                                  "intent": "read-only-field"
                                },
                                "component": "Text",
                                "props": {
                                  "field": "nickName"
                                }
                              }
                            ]
                          },
                          {
                            "id": "detail-tabs-9-officeLocation-read-field",
                            "component": "Stack",
                            "children": [
                              {
                                "id": "detail-tabs-9-officeLocation-label",
                                "component": "Text",
                                "props": {
                                  "as": "strong",
                                  "content": "Office Location"
                                }
                              },
                              {
                                "id": "detail-tabs-9-officeLocation-value",
                                "meta": {
                                  "intent": "read-only-field"
                                },
                                "component": "Text",
                                "props": {
                                  "field": "officeLocation"
                                }
                              }
                            ]
                          },
                          {
                            "id": "detail-tabs-9-parentFolderId-read-field",
                            "component": "Stack",
                            "children": [
                              {
                                "id": "detail-tabs-9-parentFolderId-label",
                                "component": "Text",
                                "props": {
                                  "as": "strong",
                                  "content": "Parent Folder Id"
                                }
                              },
                              {
                                "id": "detail-tabs-9-parentFolderId-value",
                                "meta": {
                                  "intent": "read-only-field"
                                },
                                "component": "Text",
                                "props": {
                                  "field": "parentFolderId"
                                }
                              }
                            ]
                          },
                          {
                            "id": "detail-tabs-9-personalNotes-read-field",
                            "component": "Stack",
                            "children": [
                              {
                                "id": "detail-tabs-9-personalNotes-label",
                                "component": "Text",
                                "props": {
                                  "as": "strong",
                                  "content": "Personal Notes"
                                }
                              },
                              {
                                "id": "detail-tabs-9-personalNotes-value",
                                "meta": {
                                  "intent": "read-only-field"
                                },
                                "component": "Text",
                                "props": {
                                  "field": "personalNotes"
                                }
                              }
                            ]
                          },
                          {
                            "id": "detail-tabs-9-profession-read-field",
                            "component": "Stack",
                            "children": [
                              {
                                "id": "detail-tabs-9-profession-label",
                                "component": "Text",
                                "props": {
                                  "as": "strong",
                                  "content": "Profession"
                                }
                              },
                              {
                                "id": "detail-tabs-9-profession-value",
                                "meta": {
                                  "intent": "read-only-field"
                                },
                                "component": "Text",
                                "props": {
                                  "field": "profession"
                                }
                              }
                            ]
                          },
                          {
                            "id": "detail-tabs-9-spouseName-read-field",
                            "component": "Stack",
                            "children": [
                              {
                                "id": "detail-tabs-9-spouseName-label",
                                "component": "Text",
                                "props": {
                                  "as": "strong",
                                  "content": "Spouse Name"
                                }
                              },
                              {
                                "id": "detail-tabs-9-spouseName-value",
                                "meta": {
                                  "intent": "read-only-field"
                                },
                                "component": "Text",
                                "props": {
                                  "field": "spouseName"
                                }
                              }
                            ]
                          },
                          {
                            "id": "detail-tabs-9-yomiCompanyName-read-field",
                            "component": "Stack",
                            "children": [
                              {
                                "id": "detail-tabs-9-yomiCompanyName-label",
                                "component": "Text",
                                "props": {
                                  "as": "strong",
                                  "content": "Yomi Company Name"
                                }
                              },
                              {
                                "id": "detail-tabs-9-yomiCompanyName-value",
                                "meta": {
                                  "intent": "read-only-field"
                                },
                                "component": "Text",
                                "props": {
                                  "field": "yomiCompanyName"
                                }
                              }
                            ]
                          },
                          {
                            "id": "detail-tabs-9-yomiGivenName-read-field",
                            "component": "Stack",
                            "children": [
                              {
                                "id": "detail-tabs-9-yomiGivenName-label",
                                "component": "Text",
                                "props": {
                                  "as": "strong",
                                  "content": "Yomi Given Name"
                                }
                              },
                              {
                                "id": "detail-tabs-9-yomiGivenName-value",
                                "meta": {
                                  "intent": "read-only-field"
                                },
                                "component": "Text",
                                "props": {
                                  "field": "yomiGivenName"
                                }
                              }
                            ]
                          },
                          {
                            "id": "detail-tabs-9-yomiSurname-read-field",
                            "component": "Stack",
                            "children": [
                              {
                                "id": "detail-tabs-9-yomiSurname-label",
                                "component": "Text",
                                "props": {
                                  "as": "strong",
                                  "content": "Yomi Surname"
                                }
                              },
                              {
                                "id": "detail-tabs-9-yomiSurname-value",
                                "meta": {
                                  "intent": "read-only-field"
                                },
                                "component": "Text",
                                "props": {
                                  "field": "yomiSurname"
                                }
                              }
                            ]
                          }
                        ]
                      }
                    ],
                    "props": {
                      "ariaLabel": "Record details"
                    }
                  }
                ]
              }
            ],
            "bindings": {
              "onEdit": "handleEdit",
              "onDelete": "handleDelete"
            },
            "meta": {
              "label": "Microsoft Graph Contact"
            }
          }
        ],
        "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-2b5aef76",
      "schemaRefCreatedAt": "2026-10-08T15:14:17.700Z",
      "schemaRefExpiresAt": "2026-10-08T15:44:17.700Z",
      "compositionId": "cmp-5946fccd8e45",
      "version": 1,
      "parentVersion": null,
      "operation": "compose",
      "head": "af36064f0f930eec023a3e02e0f1280cf8dbe8f7",
      "selections": [
        {
          "slotName": "header",
          "intent": "page-header",
          "selectedComponent": "DetailHeader",
          "confidence": 0.7,
          "confidenceLevel": "medium",
          "explanation": "DetailHeader was selected for slot \"header\" because preferred for \"page-header\" (rank 2); 1 context match(es); 1 trait(s); name contains \"header\"; position affinity: DetailHeader fits well in header. Confidence is medium (0.70).",
          "candidates": [
            {
              "name": "DetailHeader",
              "reason": "preferred for \"page-header\" (rank 2); 1 context match(es); 1 trait(s); name contains \"header\"; position affinity: DetailHeader fits well in header",
              "keywordTagMatches": 0,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 1
            },
            {
              "name": "Text",
              "reason": "preferred for \"page-header\" (rank 1); 1 context match(es); 1 region match(es); 2 trait(s); position affinity: Text fits well in header",
              "keywordTagMatches": 0,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 0.98
            },
            {
              "name": "StatusBadge",
              "reason": "tag match (status); 1 context match(es); 4 trait(s); name contains \"status\"; position affinity: StatusBadge fits well in header",
              "keywordTagMatches": 1,
              "keywordTraitMatches": 0,
              "contextTagMatches": 1,
              "contextTraitMatches": 0,
              "score": 0.7
            }
          ]
        },
        {
          "slotName": "tab-0",
          "intent": "data-display",
          "selectedComponent": "Card",
          "confidence": 0.94,
          "confidenceLevel": "high",
          "explanation": "Card was selected for slot \"tab-0\" because preferred for \"data-display\" (rank 1); 2 tag match(es); 2 context match(es); 1 region match(es); position affinity: Card fits well in tab. Confidence is high (0.94).",
          "candidates": [
            {
              "name": "Card",
              "reason": "preferred for \"data-display\" (rank 1); 2 tag match(es); 2 context match(es); 1 region match(es); position affinity: Card fits well in tab",
              "keywordTagMatches": 0,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 1
            },
            {
              "name": "Table",
              "reason": "preferred for \"data-display\" (rank 2); 1 tag match(es); tag match (data); 2 context match(es); 1 region match(es); position affinity: Table fits well in tab",
              "keywordTagMatches": 1,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 0.98
            },
            {
              "name": "Stack",
              "reason": "preferred for \"data-display\" (rank 3); 2 context match(es); 1 region match(es); position affinity: Stack fits well in tab",
              "keywordTagMatches": 0,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 0.66
            }
          ]
        },
        {
          "slotName": "tab-1",
          "intent": "data-display",
          "selectedComponent": "Card",
          "confidence": 0.94,
          "confidenceLevel": "high",
          "explanation": "Card was selected for slot \"tab-1\" because preferred for \"data-display\" (rank 1); 2 tag match(es); 2 context match(es); 1 region match(es); position affinity: Card fits well in tab. Confidence is high (0.94).",
          "candidates": [
            {
              "name": "Card",
              "reason": "preferred for \"data-display\" (rank 1); 2 tag match(es); 2 context match(es); 1 region match(es); position affinity: Card fits well in tab",
              "keywordTagMatches": 0,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 1
            },
            {
              "name": "Table",
              "reason": "preferred for \"data-display\" (rank 2); 1 tag match(es); tag match (data); 2 context match(es); 1 region match(es); position affinity: Table fits well in tab",
              "keywordTagMatches": 1,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 0.98
            },
            {
              "name": "Stack",
              "reason": "preferred for \"data-display\" (rank 3); 2 context match(es); 1 region match(es); position affinity: Stack fits well in tab",
              "keywordTagMatches": 0,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 0.66
            }
          ]
        }
      ],
      "validation": {
        "status": "ok",
        "errors": [],
        "warnings": []
      },
      "warnings": [
        {
          "code": "OODS-V122",
          "message": "No trait categories with view_extensions for context \"detail\". Labels cannot be generated."
        },
        {
          "code": "OODS-V119",
          "message": "No view_extensions found for context \"detail\" in object \"MicrosoftGraphContact\". Available contexts: none"
        }
      ],
      "objectUsed": {
        "name": "MicrosoftGraphContact",
        "version": "1.0.0",
        "traits": [],
        "fieldsComposed": 33,
        "viewExtensionsApplied": {}
      },
      "meta": {
        "intentParsed": "MicrosoftGraphContact detail view",
        "layoutDetected": "context-inferred: detail (from context=\"detail\")",
        "slotCount": 3,
        "nodeCount": 95,
        "intentSynthetic": true,
        "warnings": [
          "No trait categories with view_extensions for context \"detail\". Labels cannot be generated.",
          "No view_extensions found for context \"detail\" in object \"MicrosoftGraphContact\". Available contexts: none"
        ],
        "intelligence": {
          "fieldsExpanded": true,
          "slotsExpanded": 5,
          "expansionReason": "Expanded from 3 to 8 tabs for 33 fields",
          "patternsApplied": 2,
          "patternGroups": [
            {
              "slotName": "tab-0",
              "patternId": "user-identity",
              "compositeComponent": "UserIdentityCard",
              "matchedFields": [
                "givenName",
                "surname",
                "displayName"
              ],
              "confidence": 0.75
            },
            {
              "slotName": "tab-1",
              "patternId": "contact-info",
              "compositeComponent": "ContactInfo",
              "matchedFields": [
                "emailAddresses",
                "mobilePhone"
              ],
              "confidence": 1
            }
          ],
          "fieldAffinityUsed": true,
          "compositionConfidence": 0.86
        }
      }
    }
    ```

19. `code_generate` · MicrosoftGraphContact-detail-react

    Its input:

    ```
    {
      "schemaRef": "compose-2b5aef76",
      "framework": "react",
      "profile": "build",
      "options": {
        "output": "application",
        "brand": "Aquex",
        "theme": "light",
        "payloadMode": "file"
      }
    }
    ```

    Its result:

    ```
    {
      "status": "ok",
      "framework": "react",
      "payload": {
        "mode": "file",
        "directory": "~/.oods-foundry/payloads/code.generate-1803fd47621a",
        "bytes": 140340,
        "files": [
          {
            "path": "README.md",
            "bytes": 743,
            "sha256": "ff76faf406015d87e3f30252a34b2d91c2d49aeafb7063d91b299f17fe7e8444"
          },
          {
            "path": "index.html",
            "bytes": 345,
            "sha256": "fcca053d8039349d405e732e130184d0c06bd29aabc68b644bf428606d2ef3da"
          },
          {
            "path": "package.json",
            "bytes": 638,
            "sha256": "fbee62f36ad7bce22af09e1b3e0f552f2136d2cf5738697627e00e512092f150"
          },
          {
            "path": "src/App.tsx",
            "bytes": 1947,
            "sha256": "b61d965483eac82c9ae2f5592eaebd718663232338131a3fab408f88f8ec0701"
          },
          {
            "path": "src/GeneratedUI.tsx",
            "bytes": 21290,
            "sha256": "b5eb2de220d1cc54211bd5a43cc7a0f9f5c31968acfb8e90b1ea212f69e18c0e"
          },
          {
            "path": "src/app.css",
            "bytes": 511,
            "sha256": "2db3a558b73956ec7d87fc341bca6415d31b6e9f567c9710a90ded0db9a2df68"
          },
          {
            "path": "src/main.tsx",
            "bytes": 160,
            "sha256": "44f61db45209da70184e2b43272c8825db1152e7d300df266ed4400da939f579"
          },
          {
            "path": "src/oods-brand-aquex.css",
            "bytes": 41814,
            "sha256": "bd33a39d39f7341dee6767c4c73b62b5a36afe0b272d0201b62b046b2dfdf367"
          },
          {
            "path": "tsconfig.json",
            "bytes": 333,
            "sha256": "a0c6dad213106eebefcf5e817d07e31a8b6666e4bc678a449b7c578f62f6fb3a"
          },
          {
            "path": "vite.config.mjs",
            "bytes": 54,
            "sha256": "ba9f5d24cd9f7332074aa5d15af690839bd18252ab8a31e4b47c11f5a2c1cd38"
          },
          {
            "path": "artifact.json",
            "bytes": 72505,
            "sha256": "fb8b4aa530607a4f8462b01a26e4fad20b65c52d9d26e7a2c179ac872723b7f9"
          }
        ]
      },
      "code": "",
      "fileExtension": ".tsx",
      "imports": [
        "react",
        "@oods/components-react",
        "@oods/component-styles/css",
        "@oods/component-contracts",
        "react-dom/client"
      ],
      "warnings": [],
      "validationReceipt": {
        "profile": "build",
        "defaulted": false,
        "rationale": "Build is the default blocking gate: target, bindings, dependencies and fallbacks must resolve under static checks; the static gate does not install or run the generated application.",
        "axes": {
          "scope": "generated-artifact",
          "enforcement": "blocking",
          "fallback": "forbidden",
          "target": {
            "requested": "react",
            "resolved": "react",
            "source": "explicit"
          }
        },
        "checks": [
          "schema-structure",
          "component-registry",
          "state-contract",
          "target-readiness",
          "normalization-fidelity",
          "binding-contract",
          "props-contract",
          "slots-contract",
          "events-contract",
          "dependency-closure"
        ],
        "notChecked": [
          "fallback-policy",
          "rendered-evidence",
          "interaction-evidence",
          "accessibility-evidence",
          "theme-evidence",
          "determinism-evidence",
          "performance-evidence",
          "certification-evidence"
        ],
        "evidence": {
          "required": [],
          "provided": [],
          "missing": [],
          "mismatched": [],
          "accepted": [],
          "notApplicable": [],
          "artifactContentHash": "sha256:1803fd47621aabf9c7c826690abde5cf866c3250add198eff6ee221ee236a0ef"
        }
      },
      "install": {
        "note": "@oods/component-contracts, @oods/component-styles, @oods/components-react and @oods/tokens install from npm at the exact versions listed. The app's package.json pins each package the app imports, and npm install fetches those and the @oods packages they depend on.",
        "packages": [
          {
            "name": "@oods/component-contracts",
            "version": "0.6.2"
          },
          {
            "name": "@oods/component-styles",
            "version": "0.6.2"
          },
          {
            "name": "@oods/components-react",
            "version": "0.6.2"
          },
          {
            "name": "@oods/tokens",
            "version": "0.6.2"
          }
        ],
        "steps": [
          "npm install",
          "npm run build"
        ]
      },
      "meta": {
        "nodeCount": 95,
        "componentCount": 5
      }
    }
    ```

20. `code_generate` · MicrosoftGraphContact-detail-vue

    Its input:

    ```
    {
      "schemaRef": "compose-2b5aef76",
      "framework": "vue",
      "profile": "build",
      "options": {
        "output": "application",
        "brand": "Aquex",
        "theme": "light",
        "payloadMode": "file"
      }
    }
    ```

    Its result:

    ```
    {
      "status": "ok",
      "framework": "vue",
      "payload": {
        "mode": "file",
        "directory": "~/.oods-foundry/payloads/code.generate-516448ad8401",
        "bytes": 140102,
        "files": [
          {
            "path": "README.md",
            "bytes": 743,
            "sha256": "ff76faf406015d87e3f30252a34b2d91c2d49aeafb7063d91b299f17fe7e8444"
          },
          {
            "path": "index.html",
            "bytes": 344,
            "sha256": "8275ff13836ea405903ba200be27920940d7e18b1fe59b772f619a7f69c8bac2"
          },
          {
            "path": "package.json",
            "bytes": 588,
            "sha256": "01489ba0fdeea77de6de67c4edf1ffb131be1de758d4ce65e41920101ccda1af"
          },
          {
            "path": "src/App.vue",
            "bytes": 1955,
            "sha256": "e087efbe794462a42c7a26f0a021b33f57dd34914b49e6320699dc694e6c48ed"
          },
          {
            "path": "src/GeneratedUI.vue",
            "bytes": 21218,
            "sha256": "79173180bc8aae14816c094e892c7fda522e8abecae11f875ec757d197aa97ae"
          },
          {
            "path": "src/app.css",
            "bytes": 511,
            "sha256": "2db3a558b73956ec7d87fc341bca6415d31b6e9f567c9710a90ded0db9a2df68"
          },
          {
            "path": "src/main.ts",
            "bytes": 92,
            "sha256": "fc77d6694de55892ab09e6957b93c62c0c1b1e0d99803099f4d16755f2540810"
          },
          {
            "path": "src/oods-brand-aquex.css",
            "bytes": 41814,
            "sha256": "bd33a39d39f7341dee6767c4c73b62b5a36afe0b272d0201b62b046b2dfdf367"
          },
          {
            "path": "tsconfig.json",
            "bytes": 333,
            "sha256": "a0c6dad213106eebefcf5e817d07e31a8b6666e4bc678a449b7c578f62f6fb3a"
          },
          {
            "path": "vite.config.mjs",
            "bytes": 110,
            "sha256": "57145ad3584db82c0773c10b461332cb827f51bad472603dc0ec802e590f7a2c"
          },
          {
            "path": "artifact.json",
            "bytes": 72394,
            "sha256": "168cc61e944ec8fd94b7da0bee2c44d0568bbf4cb396226d2fd425d452f8a005"
          }
        ]
      },
      "code": "",
      "fileExtension": ".vue",
      "imports": [
        "@oods/component-contracts",
        "@oods/components-vue",
        "@oods/component-styles/css",
        "@vitejs/plugin-vue"
      ],
      "warnings": [],
      "validationReceipt": {
        "profile": "build",
        "defaulted": false,
        "rationale": "Build is the default blocking gate: target, bindings, dependencies and fallbacks must resolve under static checks; the static gate does not install or run the generated application.",
        "axes": {
          "scope": "generated-artifact",
          "enforcement": "blocking",
          "fallback": "forbidden",
          "target": {
            "requested": "vue",
            "resolved": "vue",
            "source": "explicit"
          }
        },
        "checks": [
          "schema-structure",
          "component-registry",
          "state-contract",
          "target-readiness",
          "normalization-fidelity",
          "binding-contract",
          "props-contract",
          "slots-contract",
          "events-contract",
          "dependency-closure"
        ],
        "notChecked": [
          "fallback-policy",
          "rendered-evidence",
          "interaction-evidence",
          "accessibility-evidence",
          "theme-evidence",
          "determinism-evidence",
          "performance-evidence",
          "certification-evidence"
        ],
        "evidence": {
          "required": [],
          "provided": [],
          "missing": [],
          "mismatched": [],
          "accepted": [],
          "notApplicable": [],
          "artifactContentHash": "sha256:516448ad840136529cb35f86c1c1fce9e6c54f94b0fb3cfeb96091a04147f3ec"
        }
      },
      "install": {
        "note": "@oods/component-contracts, @oods/component-styles, @oods/components-vue and @oods/tokens install from npm at the exact versions listed. The app's package.json pins each package the app imports, and npm install fetches those and the @oods packages they depend on.",
        "packages": [
          {
            "name": "@oods/component-contracts",
            "version": "0.6.2"
          },
          {
            "name": "@oods/component-styles",
            "version": "0.6.2"
          },
          {
            "name": "@oods/components-vue",
            "version": "0.6.2"
          },
          {
            "name": "@oods/tokens",
            "version": "0.6.2"
          }
        ],
        "steps": [
          "npm install",
          "npm run build"
        ]
      },
      "meta": {
        "nodeCount": 95,
        "componentCount": 5
      }
    }
    ```

21. `design_compose` · MicrosoftGraphContact-form-compose

    Its input:

    ```
    {
      "object": "MicrosoftGraphContact",
      "context": "form",
      "preferences": {
        "brand": "Aquex",
        "theme": "light"
      }
    }
    ```

    Its result:

    ```
    {
      "status": "ok",
      "layout": "form",
      "schema": {
        "version": "2026.02",
        "theme": "light",
        "screens": [
          {
            "id": "screen-form-11",
            "component": "Stack",
            "layout": {
              "type": "stack",
              "gapToken": "cluster-default"
            },
            "children": [
              {
                "id": "form-title-1",
                "component": "Input",
                "props": {
                  "field": "title",
                  "label": "Title",
                  "help": "The contact's title."
                },
                "meta": {
                  "intent": "slot:title",
                  "label": "title",
                  "confidence": 0.7,
                  "confidenceLevel": "medium"
                },
                "bindings": {
                  "onChange": "handleChange_title"
                }
              },
              {
                "id": "form-fields-8",
                "component": "Stack",
                "layout": {
                  "type": "stack",
                  "gapToken": "cluster-default"
                },
                "children": [
                  {
                    "id": "form-field-group-2",
                    "component": "Stack",
                    "layout": {
                      "type": "stack",
                      "gapToken": "cluster-tight"
                    },
                    "children": [
                      {
                        "id": "slot-field-0-3",
                        "component": "Input",
                        "meta": {
                          "intent": "slot:field-0",
                          "label": "field-0",
                          "confidence": 1,
                          "confidenceLevel": "high"
                        },
                        "props": {
                          "field": "assistantName",
                          "label": "Assistant Name",
                          "help": "The name of the contact's assistant."
                        },
                        "bindings": {
                          "onChange": "handleChange_assistantName"
                        }
                      }
                    ]
                  },
                  {
                    "id": "form-field-group-4",
                    "component": "Stack",
                    "layout": {
                      "type": "stack",
                      "gapToken": "cluster-tight"
                    },
                    "children": [
                      {
                        "id": "slot-field-1-5",
                        "component": "Input",
                        "meta": {
                          "intent": "slot:field-1",
                          "label": "field-1",
                          "confidence": 1,
                          "confidenceLevel": "high"
                        },
                        "props": {
                          "field": "personalNotes",
                          "label": "Personal Notes",
                          "help": "The user's notes about the contact."
                        },
                        "bindings": {
                          "onChange": "handleChange_personalNotes"
                        }
                      }
                    ]
                  },
                  {
                    "id": "form-field-group-6",
                    "component": "Stack",
                    "layout": {
                      "type": "stack",
                      "gapToken": "cluster-tight"
                    },
                    "children": [
                      {
                        "id": "slot-field-2-7",
                        "component": "Input",
                        "meta": {
                          "intent": "slot:field-2",
                          "label": "field-2",
                          "confidence": 1,
                          "confidenceLevel": "high"
                        },
                        "props": {
                          "field": "businessHomePage",
                          "label": "Business Home Page",
                          "help": "The business home page of the contact."
                        },
                        "bindings": {
                          "onChange": "handleChange_businessHomePage"
                        }
                      }
                    ]
                  },
                  {
                    "id": "form-field-group-12",
                    "component": "Stack",
                    "layout": {
                      "type": "stack",
                      "gapToken": "cluster-tight"
                    },
                    "children": [
                      {
                        "id": "slot-field-3-13",
                        "component": "Input",
                        "meta": {
                          "intent": "slot:field-3",
                          "label": "field-3",
                          "confidence": 1,
                          "confidenceLevel": "high"
                        },
                        "props": {
                          "field": "changeKey",
                          "label": "Change Key",
                          "help": "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."
                        },
                        "bindings": {
                          "onChange": "handleChange_changeKey"
                        }
                      }
                    ]
                  },
                  {
                    "id": "form-field-group-14",
                    "component": "Stack",
                    "layout": {
                      "type": "stack",
                      "gapToken": "cluster-tight"
                    },
                    "children": [
                      {
                        "id": "slot-field-4-15",
                        "component": "Input",
                        "meta": {
                          "intent": "slot:field-4",
                          "label": "field-4",
                          "confidence": 1,
                          "confidenceLevel": "high"
                        },
                        "props": {
                          "field": "companyName",
                          "label": "Company Name",
                          "help": "The name of the contact's company."
                        },
                        "bindings": {
                          "onChange": "handleChange_companyName"
                        }
                      }
                    ]
                  },
                  {
                    "id": "form-field-group-16",
                    "component": "Stack",
                    "layout": {
                      "type": "stack",
                      "gapToken": "cluster-tight"
                    },
                    "children": [
                      {
                        "id": "slot-field-5-17",
                        "component": "Input",
                        "meta": {
                          "intent": "slot:field-5",
                          "label": "field-5",
                          "confidence": 1,
                          "confidenceLevel": "high"
                        },
                        "props": {
                          "field": "manager",
                          "label": "Manager",
                          "help": "The name of the contact's manager."
                        },
                        "bindings": {
                          "onChange": "handleChange_manager"
                        }
                      }
                    ]
                  },
                  {
                    "id": "form-field-group-18",
                    "component": "Stack",
                    "layout": {
                      "type": "stack",
                      "gapToken": "cluster-tight"
                    },
                    "children": [
                      {
                        "id": "slot-field-6-19",
                        "component": "Input",
                        "meta": {
                          "intent": "slot:field-6",
                          "label": "field-6",
                          "confidence": 1,
                          "confidenceLevel": "high"
                        },
                        "props": {
                          "field": "department",
                          "label": "Department",
                          "help": "The contact's department."
                        },
                        "bindings": {
                          "onChange": "handleChange_department"
                        }
                      }
                    ]
                  },
                  {
                    "id": "form-field-group-20",
                    "component": "Stack",
                    "layout": {
                      "type": "stack",
                      "gapToken": "cluster-tight"
                    },
                    "children": [
                      {
                        "id": "slot-field-7-21",
                        "component": "Input",
                        "meta": {
                          "intent": "slot:field-7",
                          "label": "field-7",
                          "confidence": 1,
                          "confidenceLevel": "high"
                        },
                        "props": {
                          "field": "mobilePhone",
                          "label": "Mobile Phone",
                          "help": "The contact's mobile phone number."
                        },
                        "bindings": {
                          "onChange": "handleChange_mobilePhone"
                        }
                      }
                    ]
                  },
                  {
                    "id": "form-field-group-22",
                    "component": "Stack",
                    "layout": {
                      "type": "stack",
                      "gapToken": "cluster-tight"
                    },
                    "children": [
                      {
                        "id": "slot-field-8-23",
                        "component": "Input",
                        "meta": {
                          "intent": "slot:field-8",
                          "label": "field-8",
                          "confidence": 1,
                          "confidenceLevel": "high"
                        },
                        "props": {
                          "field": "fileAs",
                          "label": "File As",
                          "help": "The name the contact is filed under."
                        },
                        "bindings": {
                          "onChange": "handleChange_fileAs"
                        }
                      }
                    ]
                  },
                  {
                    "id": "form-field-group-24",
                    "component": "Stack",
                    "layout": {
                      "type": "stack",
                      "gapToken": "cluster-tight"
                    },
                    "children": [
                      {
                        "id": "slot-field-9-25",
                        "component": "Input",
                        "meta": {
                          "intent": "slot:field-9",
                          "label": "field-9",
                          "confidence": 1,
                          "confidenceLevel": "high"
                        },
                        "props": {
                          "field": "generation",
                          "label": "Generation",
                          "help": "The contact's suffix."
                        },
                        "bindings": {
                          "onChange": "handleChange_generation"
                        }
                      }
                    ]
                  }
                ]
              },
              {
                "id": "form-actions-9",
                "component": "Stack",
                "layout": {
                  "type": "inline",
                  "align": "end"
                },
                "children": [
                  {
                    "id": "form-submit-10",
                    "component": "Button",
                    "props": {
                      "label": "Save",
                      "type": "submit"
                    }
                  }
                ]
              }
            ],
            "bindings": {
              "onSubmit": "handleSubmit"
            },
            "meta": {
              "label": "Microsoft Graph Contact form"
            }
          }
        ],
        "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"
              ]
            ]
          },
          "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"
              ]
            ]
          },
          "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"
              ]
            ]
          },
          "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"
              ]
            ]
          },
          "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-9213ad22",
      "schemaRefCreatedAt": "2026-10-08T15:14:22.011Z",
      "schemaRefExpiresAt": "2026-10-08T15:44:22.011Z",
      "compositionId": "cmp-78295075ecfd",
      "version": 1,
      "parentVersion": null,
      "operation": "compose",
      "head": "af36064f0f930eec023a3e02e0f1280cf8dbe8f7",
      "selections": [
        {
          "slotName": "title",
          "intent": "page-header",
          "selectedComponent": "DetailHeader",
          "confidence": 0.7,
          "confidenceLevel": "medium",
          "explanation": "DetailHeader was selected for slot \"title\" because preferred for \"page-header\" (rank 2); 1 context match(es); 1 trait(s); name contains \"header\"; position affinity: DetailHeader fits well in header. Confidence is medium (0.70).",
          "candidates": [
            {
              "name": "DetailHeader",
              "reason": "preferred for \"page-header\" (rank 2); 1 context match(es); 1 trait(s); name contains \"header\"; position affinity: DetailHeader fits well in header",
              "keywordTagMatches": 0,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 1
            },
            {
              "name": "Text",
              "reason": "preferred for \"page-header\" (rank 1); 1 context match(es); 1 region match(es); 2 trait(s); position affinity: Text fits well in header",
              "keywordTagMatches": 0,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 0.98
            },
            {
              "name": "Badge",
              "reason": "1 context match(es); 1 region match(es); position affinity: Badge fits well in header",
              "keywordTagMatches": 0,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 0.26
            }
          ]
        },
        {
          "slotName": "field-0",
          "intent": "form-input",
          "selectedComponent": "Input",
          "confidence": 1,
          "confidenceLevel": "high",
          "explanation": "Input was selected for slot \"field-0\" because preferred for \"form-input\" (rank 1); 2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); name contains \"input\". Confidence is high (1.00).",
          "candidates": [
            {
              "name": "Input",
              "reason": "preferred for \"form-input\" (rank 1); 2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); name contains \"input\"",
              "keywordTagMatches": 2,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 1
            },
            {
              "name": "Select",
              "reason": "preferred for \"form-input\" (rank 2); 2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); position affinity: Select fits well in main",
              "keywordTagMatches": 2,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 1
            },
            {
              "name": "Checkbox",
              "reason": "2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); position affinity: Checkbox fits well in main",
              "keywordTagMatches": 2,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 0.78
            }
          ]
        },
        {
          "slotName": "field-1",
          "intent": "long-text-input",
          "selectedComponent": "Textarea",
          "confidence": 1,
          "confidenceLevel": "high",
          "explanation": "Textarea was selected for slot \"field-1\" because preferred for \"long-text-input\" (rank 1); 3 tag match(es); tag match (text, input); 1 context match(es); 1 region match(es); 1 category match(es); name contains \"text\"; position affinity: Textarea fits well in main. Confidence is high (1.00).",
          "candidates": [
            {
              "name": "Textarea",
              "reason": "preferred for \"long-text-input\" (rank 1); 3 tag match(es); tag match (text, input); 1 context match(es); 1 region match(es); 1 category match(es); name contains \"text\"; position affinity: Textarea fits well in main",
              "keywordTagMatches": 2,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 1
            },
            {
              "name": "Input",
              "reason": "preferred for \"long-text-input\" (rank 2); 2 tag match(es); tag match (input); 1 context match(es); 1 region match(es); 1 category match(es); name contains \"input\"",
              "keywordTagMatches": 1,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 0.98
            },
            {
              "name": "Checkbox",
              "reason": "2 tag match(es); tag match (input); 1 context match(es); 1 region match(es); 1 category match(es); position affinity: Checkbox fits well in main",
              "keywordTagMatches": 1,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 0.56
            }
          ]
        },
        {
          "slotName": "field-2",
          "intent": "form-input",
          "selectedComponent": "Input",
          "confidence": 1,
          "confidenceLevel": "high",
          "explanation": "Input was selected for slot \"field-2\" because preferred for \"form-input\" (rank 1); 2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); name contains \"input\". Confidence is high (1.00).",
          "candidates": [
            {
              "name": "Input",
              "reason": "preferred for \"form-input\" (rank 1); 2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); name contains \"input\"",
              "keywordTagMatches": 2,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 1
            },
            {
              "name": "Select",
              "reason": "preferred for \"form-input\" (rank 2); 2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); position affinity: Select fits well in main",
              "keywordTagMatches": 2,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 1
            },
            {
              "name": "Checkbox",
              "reason": "2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); position affinity: Checkbox fits well in main",
              "keywordTagMatches": 2,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 0.78
            }
          ]
        },
        {
          "slotName": "field-3",
          "intent": "form-input",
          "selectedComponent": "Input",
          "confidence": 1,
          "confidenceLevel": "high",
          "explanation": "Input was selected for slot \"field-3\" because preferred for \"form-input\" (rank 1); 2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); name contains \"input\". Confidence is high (1.00).",
          "candidates": [
            {
              "name": "Input",
              "reason": "preferred for \"form-input\" (rank 1); 2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); name contains \"input\"",
              "keywordTagMatches": 2,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 1
            },
            {
              "name": "Select",
              "reason": "preferred for \"form-input\" (rank 2); 2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); position affinity: Select fits well in main",
              "keywordTagMatches": 2,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 1
            },
            {
              "name": "Checkbox",
              "reason": "2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); position affinity: Checkbox fits well in main",
              "keywordTagMatches": 2,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 0.78
            }
          ]
        },
        {
          "slotName": "field-4",
          "intent": "form-input",
          "selectedComponent": "Input",
          "confidence": 1,
          "confidenceLevel": "high",
          "explanation": "Input was selected for slot \"field-4\" because preferred for \"form-input\" (rank 1); 2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); name contains \"input\". Confidence is high (1.00).",
          "candidates": [
            {
              "name": "Input",
              "reason": "preferred for \"form-input\" (rank 1); 2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); name contains \"input\"",
              "keywordTagMatches": 2,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 1
            },
            {
              "name": "Select",
              "reason": "preferred for \"form-input\" (rank 2); 2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); position affinity: Select fits well in main",
              "keywordTagMatches": 2,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 1
            },
            {
              "name": "Checkbox",
              "reason": "2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); position affinity: Checkbox fits well in main",
              "keywordTagMatches": 2,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 0.78
            }
          ]
        },
        {
          "slotName": "field-5",
          "intent": "form-input",
          "selectedComponent": "Input",
          "confidence": 1,
          "confidenceLevel": "high",
          "explanation": "Input was selected for slot \"field-5\" because preferred for \"form-input\" (rank 1); 2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); name contains \"input\". Confidence is high (1.00).",
          "candidates": [
            {
              "name": "Input",
              "reason": "preferred for \"form-input\" (rank 1); 2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); name contains \"input\"",
              "keywordTagMatches": 2,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 1
            },
            {
              "name": "Select",
              "reason": "preferred for \"form-input\" (rank 2); 2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); position affinity: Select fits well in main",
              "keywordTagMatches": 2,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 1
            },
            {
              "name": "Checkbox",
              "reason": "2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); position affinity: Checkbox fits well in main",
              "keywordTagMatches": 2,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 0.78
            }
          ]
        },
        {
          "slotName": "field-6",
          "intent": "form-input",
          "selectedComponent": "Input",
          "confidence": 1,
          "confidenceLevel": "high",
          "explanation": "Input was selected for slot \"field-6\" because preferred for \"form-input\" (rank 1); 2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); name contains \"input\". Confidence is high (1.00).",
          "candidates": [
            {
              "name": "Input",
              "reason": "preferred for \"form-input\" (rank 1); 2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); name contains \"input\"",
              "keywordTagMatches": 2,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 1
            },
            {
              "name": "Select",
              "reason": "preferred for \"form-input\" (rank 2); 2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); position affinity: Select fits well in main",
              "keywordTagMatches": 2,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 1
            },
            {
              "name": "Checkbox",
              "reason": "2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); position affinity: Checkbox fits well in main",
              "keywordTagMatches": 2,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 0.78
            }
          ]
        },
        {
          "slotName": "field-7",
          "intent": "form-input",
          "selectedComponent": "Input",
          "confidence": 1,
          "confidenceLevel": "high",
          "explanation": "Input was selected for slot \"field-7\" because preferred for \"form-input\" (rank 1); 2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); name contains \"input\". Confidence is high (1.00).",
          "candidates": [
            {
              "name": "Input",
              "reason": "preferred for \"form-input\" (rank 1); 2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); name contains \"input\"",
              "keywordTagMatches": 2,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 1
            },
            {
              "name": "Select",
              "reason": "preferred for \"form-input\" (rank 2); 2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); position affinity: Select fits well in main",
              "keywordTagMatches": 2,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 1
            },
            {
              "name": "Checkbox",
              "reason": "2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); position affinity: Checkbox fits well in main",
              "keywordTagMatches": 2,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 0.78
            }
          ]
        },
        {
          "slotName": "field-8",
          "intent": "form-input",
          "selectedComponent": "Input",
          "confidence": 1,
          "confidenceLevel": "high",
          "explanation": "Input was selected for slot \"field-8\" because preferred for \"form-input\" (rank 1); 2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); name contains \"input\". Confidence is high (1.00).",
          "candidates": [
            {
              "name": "Input",
              "reason": "preferred for \"form-input\" (rank 1); 2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); name contains \"input\"",
              "keywordTagMatches": 2,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 1
            },
            {
              "name": "Select",
              "reason": "preferred for \"form-input\" (rank 2); 2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); position affinity: Select fits well in main",
              "keywordTagMatches": 2,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 1
            },
            {
              "name": "Checkbox",
              "reason": "2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); position affinity: Checkbox fits well in main",
              "keywordTagMatches": 2,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 0.78
            }
          ]
        },
        {
          "slotName": "field-9",
          "intent": "form-input",
          "selectedComponent": "Input",
          "confidence": 1,
          "confidenceLevel": "high",
          "explanation": "Input was selected for slot \"field-9\" because preferred for \"form-input\" (rank 1); 2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); name contains \"input\". Confidence is high (1.00).",
          "candidates": [
            {
              "name": "Input",
              "reason": "preferred for \"form-input\" (rank 1); 2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); name contains \"input\"",
              "keywordTagMatches": 2,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 1
            },
            {
              "name": "Select",
              "reason": "preferred for \"form-input\" (rank 2); 2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); position affinity: Select fits well in main",
              "keywordTagMatches": 2,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 1
            },
            {
              "name": "Checkbox",
              "reason": "2 tag match(es); tag match (form, input); 1 context match(es); context match (form); 1 region match(es); position affinity: Checkbox fits well in main",
              "keywordTagMatches": 2,
              "keywordTraitMatches": 0,
              "contextTagMatches": 0,
              "contextTraitMatches": 0,
              "score": 0.78
            }
          ]
        }
      ],
      "validation": {
        "status": "ok",
        "errors": [],
        "warnings": []
      },
      "warnings": [
        {
          "code": "OODS-V119",
          "message": "No view_extensions found for context \"form\" in object \"MicrosoftGraphContact\". Available contexts: none"
        }
      ],
      "objectUsed": {
        "name": "MicrosoftGraphContact",
        "version": "1.0.0",
        "traits": [],
        "fieldsComposed": 33,
        "viewExtensionsApplied": {}
      },
      "meta": {
        "intentParsed": "MicrosoftGraphContact form view",
        "layoutDetected": "context-inferred: form (from context=\"form\")",
        "slotCount": 11,
        "nodeCount": 25,
        "intentSynthetic": true,
        "warnings": [
          "No view_extensions found for context \"form\" in object \"MicrosoftGraphContact\". Available contexts: none"
        ],
        "intelligence": {
          "fieldsExpanded": true,
          "slotsExpanded": 7,
          "expansionReason": "Expanded from 3 to 10 field groups for 29 fields",
          "patternsApplied": 33,
          "fieldAffinityUsed": true,
          "compositionConfidence": 0.97
        }
      }
    }
    ```

22. `code_generate` · MicrosoftGraphContact-form-react

    Its input:

    ```
    {
      "schemaRef": "compose-9213ad22",
      "framework": "react",
      "profile": "build",
      "options": {
        "output": "application",
        "brand": "Aquex",
        "theme": "light",
        "payloadMode": "file"
      }
    }
    ```

    Its result:

    ```
    {
      "status": "ok",
      "framework": "react",
      "payload": {
        "mode": "file",
        "directory": "~/.oods-foundry/payloads/code.generate-17206438674a",
        "bytes": 125616,
        "files": [
          {
            "path": "README.md",
            "bytes": 743,
            "sha256": "ff76faf406015d87e3f30252a34b2d91c2d49aeafb7063d91b299f17fe7e8444"
          },
          {
            "path": "index.html",
            "bytes": 343,
            "sha256": "7a1b11ff6235906e6652a42257a8d88e8f4c17741a98407e20dc3a358ae0444c"
          },
          {
            "path": "package.json",
            "bytes": 596,
            "sha256": "62631442a46214b8aa87144fa8395156f7396c85423363b5ee3db4d09828b70a"
          },
          {
            "path": "src/App.tsx",
            "bytes": 1803,
            "sha256": "fa24175be6ce312945778b53933b04429aa635ce0eafebd035dee63edd723e6d"
          },
          {
            "path": "src/GeneratedUI.tsx",
            "bytes": 14535,
            "sha256": "3b207eabdfd065106aa854ce397a4be35104a0abd961ebf300feda2744260a52"
          },
          {
            "path": "src/app.css",
            "bytes": 511,
            "sha256": "2db3a558b73956ec7d87fc341bca6415d31b6e9f567c9710a90ded0db9a2df68"
          },
          {
            "path": "src/main.tsx",
            "bytes": 160,
            "sha256": "44f61db45209da70184e2b43272c8825db1152e7d300df266ed4400da939f579"
          },
          {
            "path": "src/oods-brand-aquex.css",
            "bytes": 41814,
            "sha256": "bd33a39d39f7341dee6767c4c73b62b5a36afe0b272d0201b62b046b2dfdf367"
          },
          {
            "path": "tsconfig.json",
            "bytes": 333,
            "sha256": "a0c6dad213106eebefcf5e817d07e31a8b6666e4bc678a449b7c578f62f6fb3a"
          },
          {
            "path": "vite.config.mjs",
            "bytes": 54,
            "sha256": "ba9f5d24cd9f7332074aa5d15af690839bd18252ab8a31e4b47c11f5a2c1cd38"
          },
          {
            "path": "artifact.json",
            "bytes": 64724,
            "sha256": "3ba2e53641dc520f6445ec7be85973157716ac8ee29b11830654ba0f5c62a4ea"
          }
        ]
      },
      "code": "",
      "fileExtension": ".tsx",
      "imports": [
        "react",
        "@oods/components-react",
        "@oods/component-styles/css",
        "react-dom/client"
      ],
      "warnings": [],
      "validationReceipt": {
        "profile": "build",
        "defaulted": false,
        "rationale": "Build is the default blocking gate: target, bindings, dependencies and fallbacks must resolve under static checks; the static gate does not install or run the generated application.",
        "axes": {
          "scope": "generated-artifact",
          "enforcement": "blocking",
          "fallback": "forbidden",
          "target": {
            "requested": "react",
            "resolved": "react",
            "source": "explicit"
          }
        },
        "checks": [
          "schema-structure",
          "component-registry",
          "state-contract",
          "target-readiness",
          "normalization-fidelity",
          "binding-contract",
          "props-contract",
          "slots-contract",
          "events-contract",
          "dependency-closure"
        ],
        "notChecked": [
          "fallback-policy",
          "rendered-evidence",
          "interaction-evidence",
          "accessibility-evidence",
          "theme-evidence",
          "determinism-evidence",
          "performance-evidence",
          "certification-evidence"
        ],
        "evidence": {
          "required": [],
          "provided": [],
          "missing": [],
          "mismatched": [],
          "accepted": [],
          "notApplicable": [],
          "artifactContentHash": "sha256:17206438674a712492137e7aa23c3b0ddf50b142f3d176a919d77805241ec1b4"
        }
      },
      "install": {
        "note": "@oods/component-contracts, @oods/component-styles, @oods/components-react and @oods/tokens install from npm at the exact versions listed. The app's package.json pins each package the app imports, and npm install fetches those and the @oods packages they depend on.",
        "packages": [
          {
            "name": "@oods/component-contracts",
            "version": "0.6.2"
          },
          {
            "name": "@oods/component-styles",
            "version": "0.6.2"
          },
          {
            "name": "@oods/components-react",
            "version": "0.6.2"
          },
          {
            "name": "@oods/tokens",
            "version": "0.6.2"
          }
        ],
        "steps": [
          "npm install",
          "npm run build"
        ]
      },
      "meta": {
        "nodeCount": 25,
        "componentCount": 3
      }
    }
    ```

23. `code_generate` · MicrosoftGraphContact-form-vue

    Its input:

    ```
    {
      "schemaRef": "compose-9213ad22",
      "framework": "vue",
      "profile": "build",
      "options": {
        "output": "application",
        "brand": "Aquex",
        "theme": "light",
        "payloadMode": "file"
      }
    }
    ```

    Its result:

    ```
    {
      "status": "ok",
      "framework": "vue",
      "payload": {
        "mode": "file",
        "directory": "~/.oods-foundry/payloads/code.generate-dad4e3bc814c",
        "bytes": 124446,
        "files": [
          {
            "path": "README.md",
            "bytes": 743,
            "sha256": "ff76faf406015d87e3f30252a34b2d91c2d49aeafb7063d91b299f17fe7e8444"
          },
          {
            "path": "index.html",
            "bytes": 342,
            "sha256": "c5a48bc509e907a2c050462d2d0f734a63f45f8f65db703947eff55ea00173dc"
          },
          {
            "path": "package.json",
            "bytes": 567,
            "sha256": "54378481649bcc07db1e9da9d6263f2669ea16e8854db98955ccbb783735fd7a"
          },
          {
            "path": "src/App.vue",
            "bytes": 1804,
            "sha256": "22e9e868f4a453690a43bca6f7ecb18afbe8945bd1d95ab6ad25c679c6deea95"
          },
          {
            "path": "src/GeneratedUI.vue",
            "bytes": 13939,
            "sha256": "0379ccfb53622238a2f15741dfc8454057fdaff19c4910001b3a48f391c1baee"
          },
          {
            "path": "src/app.css",
            "bytes": 511,
            "sha256": "2db3a558b73956ec7d87fc341bca6415d31b6e9f567c9710a90ded0db9a2df68"
          },
          {
            "path": "src/main.ts",
            "bytes": 92,
            "sha256": "fc77d6694de55892ab09e6957b93c62c0c1b1e0d99803099f4d16755f2540810"
          },
          {
            "path": "src/oods-brand-aquex.css",
            "bytes": 41814,
            "sha256": "bd33a39d39f7341dee6767c4c73b62b5a36afe0b272d0201b62b046b2dfdf367"
          },
          {
            "path": "tsconfig.json",
            "bytes": 333,
            "sha256": "a0c6dad213106eebefcf5e817d07e31a8b6666e4bc678a449b7c578f62f6fb3a"
          },
          {
            "path": "vite.config.mjs",
            "bytes": 110,
            "sha256": "57145ad3584db82c0773c10b461332cb827f51bad472603dc0ec802e590f7a2c"
          },
          {
            "path": "artifact.json",
            "bytes": 64191,
            "sha256": "7b7db78e7e2893dcda0574883e5f59666f3b9a6c86d1b0ba50c3d94ad20bbe3b"
          }
        ]
      },
      "code": "",
      "fileExtension": ".vue",
      "imports": [
        "vue",
        "@oods/components-vue",
        "@oods/component-styles/css",
        "@vitejs/plugin-vue"
      ],
      "warnings": [],
      "validationReceipt": {
        "profile": "build",
        "defaulted": false,
        "rationale": "Build is the default blocking gate: target, bindings, dependencies and fallbacks must resolve under static checks; the static gate does not install or run the generated application.",
        "axes": {
          "scope": "generated-artifact",
          "enforcement": "blocking",
          "fallback": "forbidden",
          "target": {
            "requested": "vue",
            "resolved": "vue",
            "source": "explicit"
          }
        },
        "checks": [
          "schema-structure",
          "component-registry",
          "state-contract",
          "target-readiness",
          "normalization-fidelity",
          "binding-contract",
          "props-contract",
          "slots-contract",
          "events-contract",
          "dependency-closure"
        ],
        "notChecked": [
          "fallback-policy",
          "rendered-evidence",
          "interaction-evidence",
          "accessibility-evidence",
          "theme-evidence",
          "determinism-evidence",
          "performance-evidence",
          "certification-evidence"
        ],
        "evidence": {
          "required": [],
          "provided": [],
          "missing": [],
          "mismatched": [],
          "accepted": [],
          "notApplicable": [],
          "artifactContentHash": "sha256:dad4e3bc814c7fda34bd3c8818591c36e56d81d8b70077b87b96d60394aae52a"
        }
      },
      "install": {
        "note": "@oods/component-contracts, @oods/component-styles, @oods/components-vue and @oods/tokens install from npm at the exact versions listed. The app's package.json pins each package the app imports, and npm install fetches those and the @oods packages they depend on.",
        "packages": [
          {
            "name": "@oods/component-contracts",
            "version": "0.6.2"
          },
          {
            "name": "@oods/component-styles",
            "version": "0.6.2"
          },
          {
            "name": "@oods/components-vue",
            "version": "0.6.2"
          },
          {
            "name": "@oods/tokens",
            "version": "0.6.2"
          }
        ],
        "steps": [
          "npm install",
          "npm run build"
        ]
      },
      "meta": {
        "nodeCount": 25,
        "componentCount": 3
      }
    }
    ```

Download recorded calls

- [draft](https://oods-foundry.com/demos/import-objects/files/calls/01-draft.json)
- [show-MicrosoftGraphEmailAddress](https://oods-foundry.com/demos/import-objects/files/calls/02-show-MicrosoftGraphEmailAddress.json)
- [show-MicrosoftGraphExtension](https://oods-foundry.com/demos/import-objects/files/calls/03-show-MicrosoftGraphExtension.json)
- [show-MicrosoftGraphMultiValueLegacyExtendedProperty](https://oods-foundry.com/demos/import-objects/files/calls/04-show-MicrosoftGraphMultiValueLegacyExtendedProperty.json)
- [show-MicrosoftGraphSingleValueLegacyExtendedProperty](https://oods-foundry.com/demos/import-objects/files/calls/05-show-MicrosoftGraphSingleValueLegacyExtendedProperty.json)
- [show-MicrosoftGraphContact](https://oods-foundry.com/demos/import-objects/files/calls/06-show-MicrosoftGraphContact.json)
- [show-MicrosoftGraphEntity](https://oods-foundry.com/demos/import-objects/files/calls/07-show-MicrosoftGraphEntity.json)
- [show-MicrosoftGraphOutlookItem](https://oods-foundry.com/demos/import-objects/files/calls/08-show-MicrosoftGraphOutlookItem.json)
- [show-MicrosoftGraphPhysicalAddress](https://oods-foundry.com/demos/import-objects/files/calls/09-show-MicrosoftGraphPhysicalAddress.json)
- [show-MicrosoftGraphProfilePhoto](https://oods-foundry.com/demos/import-objects/files/calls/10-show-MicrosoftGraphProfilePhoto.json)
- [registry-before-apply](https://oods-foundry.com/demos/import-objects/files/calls/11-registry-before-apply.json)
- [apply](https://oods-foundry.com/demos/import-objects/files/calls/12-apply.json)
- [registry-after-apply](https://oods-foundry.com/demos/import-objects/files/calls/13-registry-after-apply.json)
- [site-brand-create](https://oods-foundry.com/demos/import-objects/files/calls/14-site-brand-create.json)
- [MicrosoftGraphContact-list-compose](https://oods-foundry.com/demos/import-objects/files/calls/15-MicrosoftGraphContact-list-compose.json)
- [MicrosoftGraphContact-list-react](https://oods-foundry.com/demos/import-objects/files/calls/16-MicrosoftGraphContact-list-react.json)
- [MicrosoftGraphContact-list-vue](https://oods-foundry.com/demos/import-objects/files/calls/17-MicrosoftGraphContact-list-vue.json)
- [MicrosoftGraphContact-detail-compose](https://oods-foundry.com/demos/import-objects/files/calls/18-MicrosoftGraphContact-detail-compose.json)
- [MicrosoftGraphContact-detail-react](https://oods-foundry.com/demos/import-objects/files/calls/19-MicrosoftGraphContact-detail-react.json)
- [MicrosoftGraphContact-detail-vue](https://oods-foundry.com/demos/import-objects/files/calls/20-MicrosoftGraphContact-detail-vue.json)
- [MicrosoftGraphContact-form-compose](https://oods-foundry.com/demos/import-objects/files/calls/21-MicrosoftGraphContact-form-compose.json)
- [MicrosoftGraphContact-form-react](https://oods-foundry.com/demos/import-objects/files/calls/22-MicrosoftGraphContact-form-react.json)
- [MicrosoftGraphContact-form-vue](https://oods-foundry.com/demos/import-objects/files/calls/23-MicrosoftGraphContact-form-vue.json)
