{
  "step": "schema-render-validate",
  "tool": "schema_render",
  "input": {
    "action": "validate",
    "schemaRef": "compose-b4f8900d"
  },
  "isError": false,
  "error": null,
  "output": {
    "status": "ok",
    "mode": "full",
    "dslVersion": "2026.02",
    "registryVersion": "2026-10-06",
    "errors": [],
    "warnings": [],
    "normalizedTree": {
      "version": "2026.02",
      "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": "detail-header-1-record-title",
                  "component": "DetailHeader",
                  "props": {
                    "titleField": "name",
                    "headingLevel": 1
                  }
                },
                {
                  "id": "screen-detail-13-record-summary",
                  "component": "Stack",
                  "layout": {
                    "type": "inline",
                    "gapToken": "cluster-tight"
                  },
                  "meta": {
                    "intent": "record-summary"
                  },
                  "children": [
                    {
                      "id": "screen-detail-13-record-summary-1",
                      "component": "StatusBadge",
                      "props": {
                        "tone": "lifecycle",
                        "statusField": "status",
                        "domain": "lifecycle"
                      }
                    }
                  ]
                },
                {
                  "id": "slot-header-2",
                  "component": "Stack",
                  "meta": {
                    "intent": "slot:header",
                    "label": "header"
                  },
                  "children": [
                    {
                      "id": "ve-header-28",
                      "component": "StatusTimeline",
                      "props": {
                        "field": "status",
                        "historyField": "state_history",
                        "statesParameter": "states",
                        "showActorId": true,
                        "showReason": true
                      }
                    },
                    {
                      "id": "ve-header-29",
                      "component": "TagSummary",
                      "props": {
                        "field": "tags",
                        "countField": "tag_count",
                        "label": "Tags"
                      }
                    }
                  ],
                  "layout": {
                    "type": "stack",
                    "gapToken": "cluster-default"
                  }
                }
              ]
            },
            {
              "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": "CommunicationDetailPanel",
                          "meta": {
                            "intent": "slot:tab-0",
                            "label": "tab-0"
                          },
                          "props": {
                            "channelsField": "channel_catalog",
                            "templatesField": "template_catalog",
                            "policiesField": "delivery_policies",
                            "conversationsField": "conversations"
                          }
                        },
                        {
                          "id": "slot-tab-1-6",
                          "component": "MembershipPanel",
                          "meta": {
                            "intent": "slot:tab-1",
                            "label": "tab-1"
                          },
                          "props": {
                            "membershipsField": "membership_records",
                            "hierarchyField": "role_hierarchy_edges",
                            "roleField": "role_catalog",
                            "permissionField": "permission_catalog"
                          },
                          "children": [
                            {
                              "id": "slot-tab-1-6-membership_records-read-field",
                              "component": "Stack",
                              "children": [
                                {
                                  "id": "slot-tab-1-6-membership_records-label",
                                  "component": "Text",
                                  "props": {
                                    "as": "strong",
                                    "content": "Membership records"
                                  }
                                },
                                {
                                  "id": "slot-tab-1-6-membership_records-value",
                                  "meta": {
                                    "intent": "read-only-field"
                                  },
                                  "component": "Text",
                                  "props": {
                                    "field": "membership_records"
                                  }
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "id": "slot-tab-2-8",
                          "component": "AddressCollectionPanel",
                          "meta": {
                            "intent": "slot:tab-2",
                            "label": "tab-2"
                          },
                          "props": {
                            "field": "addresses",
                            "roleField": "address_roles",
                            "defaultRoleField": "default_address_role",
                            "roleParameter": "roles",
                            "emptyMessage": "None recorded"
                          }
                        },
                        {
                          "id": "slot-tab-3-15",
                          "component": "PreferencePanel",
                          "meta": {
                            "intent": "slot:tab-3",
                            "label": "tab-3"
                          },
                          "props": {
                            "preferencesField": "preference_document",
                            "metadataField": "preference_metadata",
                            "namespaceField": "preference_namespaces"
                          },
                          "children": [
                            {
                              "id": "slot-tab-3-15-preference_namespaces-read-field",
                              "component": "Stack",
                              "children": [
                                {
                                  "id": "slot-tab-3-15-preference_namespaces-label",
                                  "component": "Text",
                                  "props": {
                                    "as": "strong",
                                    "content": "Preference namespaces"
                                  }
                                },
                                {
                                  "id": "slot-tab-3-15-preference_namespaces-value",
                                  "meta": {
                                    "intent": "read-only-field"
                                  },
                                  "component": "Text",
                                  "props": {
                                    "field": "preference_namespaces"
                                  }
                                }
                              ]
                            },
                            {
                              "id": "slot-tab-3-15-preference_version-read-field",
                              "component": "Stack",
                              "children": [
                                {
                                  "id": "slot-tab-3-15-preference_version-label",
                                  "component": "Text",
                                  "props": {
                                    "as": "strong",
                                    "content": "Preference version"
                                  }
                                },
                                {
                                  "id": "slot-tab-3-15-preference_version-value",
                                  "meta": {
                                    "intent": "read-only-field"
                                  },
                                  "component": "Text",
                                  "props": {
                                    "field": "preference_version"
                                  }
                                }
                              ]
                            }
                          ]
                        },
                        {
                          "id": "detail-tabs-9-created_at-read-field",
                          "component": "Stack",
                          "children": [
                            {
                              "id": "detail-tabs-9-created_at-label",
                              "component": "Text",
                              "props": {
                                "as": "strong",
                                "content": "Created at"
                              }
                            },
                            {
                              "id": "detail-tabs-9-created_at-value",
                              "meta": {
                                "intent": "read-only-field"
                              },
                              "component": "Text",
                              "props": {
                                "field": "created_at"
                              }
                            }
                          ]
                        },
                        {
                          "id": "detail-tabs-9-updated_at-read-field",
                          "component": "Stack",
                          "children": [
                            {
                              "id": "detail-tabs-9-updated_at-label",
                              "component": "Text",
                              "props": {
                                "as": "strong",
                                "content": "Updated at"
                              }
                            },
                            {
                              "id": "detail-tabs-9-updated_at-value",
                              "meta": {
                                "intent": "read-only-field"
                              },
                              "component": "Text",
                              "props": {
                                "field": "updated_at"
                              }
                            }
                          ]
                        },
                        {
                          "id": "detail-tabs-9-last_event-read-field",
                          "component": "Stack",
                          "children": [
                            {
                              "id": "detail-tabs-9-last_event-label",
                              "component": "Text",
                              "props": {
                                "as": "strong",
                                "content": "Last event"
                              }
                            },
                            {
                              "id": "detail-tabs-9-last_event-value",
                              "meta": {
                                "intent": "read-only-field"
                              },
                              "component": "Text",
                              "props": {
                                "field": "last_event"
                              }
                            }
                          ]
                        },
                        {
                          "id": "detail-tabs-9-last_event_at-read-field",
                          "component": "Stack",
                          "children": [
                            {
                              "id": "detail-tabs-9-last_event_at-label",
                              "component": "Text",
                              "props": {
                                "as": "strong",
                                "content": "Last event at"
                              }
                            },
                            {
                              "id": "detail-tabs-9-last_event_at-value",
                              "meta": {
                                "intent": "read-only-field"
                              },
                              "component": "Text",
                              "props": {
                                "field": "last_event_at"
                              }
                            }
                          ]
                        },
                        {
                          "id": "detail-tabs-9-preferred_name-read-field",
                          "component": "Stack",
                          "children": [
                            {
                              "id": "detail-tabs-9-preferred_name-label",
                              "component": "Text",
                              "props": {
                                "as": "strong",
                                "content": "Preferred name"
                              }
                            },
                            {
                              "id": "detail-tabs-9-preferred_name-value",
                              "meta": {
                                "intent": "read-only-field"
                              },
                              "component": "Text",
                              "props": {
                                "field": "preferred_name"
                              }
                            }
                          ]
                        },
                        {
                          "id": "detail-tabs-9-description-read-field",
                          "component": "Stack",
                          "children": [
                            {
                              "id": "detail-tabs-9-description-label",
                              "component": "Text",
                              "props": {
                                "as": "strong",
                                "content": "Description"
                              }
                            },
                            {
                              "id": "detail-tabs-9-description-value",
                              "meta": {
                                "intent": "read-only-field"
                              },
                              "component": "Text",
                              "props": {
                                "field": "description"
                              }
                            }
                          ]
                        },
                        {
                          "id": "detail-tabs-9-primary_email-read-field",
                          "component": "Stack",
                          "children": [
                            {
                              "id": "detail-tabs-9-primary_email-label",
                              "component": "Text",
                              "props": {
                                "as": "strong",
                                "content": "Primary email"
                              }
                            },
                            {
                              "id": "detail-tabs-9-primary_email-value",
                              "meta": {
                                "intent": "read-only-field"
                              },
                              "component": "Text",
                              "props": {
                                "field": "primary_email"
                              }
                            }
                          ]
                        },
                        {
                          "id": "detail-tabs-9-role-read-field",
                          "component": "Stack",
                          "children": [
                            {
                              "id": "detail-tabs-9-role-label",
                              "component": "Text",
                              "props": {
                                "as": "strong",
                                "content": "Role"
                              }
                            },
                            {
                              "id": "detail-tabs-9-role-value",
                              "meta": {
                                "intent": "read-only-field"
                              },
                              "component": "Text",
                              "props": {
                                "field": "role"
                              }
                            }
                          ]
                        },
                        {
                          "id": "detail-tabs-9-timezone-read-field",
                          "component": "Stack",
                          "children": [
                            {
                              "id": "detail-tabs-9-timezone-label",
                              "component": "Text",
                              "props": {
                                "as": "strong",
                                "content": "Timezone"
                              }
                            },
                            {
                              "id": "detail-tabs-9-timezone-value",
                              "meta": {
                                "intent": "read-only-field"
                              },
                              "component": "Text",
                              "props": {
                                "field": "timezone"
                              }
                            }
                          ]
                        }
                      ]
                    }
                  ],
                  "props": {
                    "ariaLabel": "Record details"
                  }
                }
              ]
            }
          ],
          "bindings": {
            "onEdit": "handleEdit",
            "onDelete": "handleDelete",
            "onViewTimeline": "handleViewTimeline"
          },
          "meta": {
            "label": "User"
          }
        }
      ],
      "objectSchema": {
        "status": {
          "type": "string",
          "required": true,
          "default": "active",
          "description": "Canonical lifecycle state derived from the states parameter. This is the single source\nof truth for the entity's current lifecycle position. Consumed by Colorized to resolve\nvisual tokens, and by view extensions to render StatusBadge and StatusTimeline.\n",
          "enum": [
            "invited",
            "active",
            "suspended",
            "deactivated"
          ],
          "semanticType": "status.state",
          "examples": [
            "active",
            "active",
            "active",
            "active",
            "suspended",
            "invited",
            "deactivated",
            "active"
          ]
        },
        "state_history": {
          "type": "StateTransition[]",
          "required": false,
          "default": [],
          "description": "Chronological log of state transitions. Each entry records the before/after states,\ntimestamp, and (when governance is enabled) the actor, reason, and transition metadata.\nRendered by StatusTimeline in the detail and timeline views.\n\nEntry structure:\n  - from: string (previous state)\n  - to: string (new state)\n  - timestamp: ISO 8601 datetime\n  - actor_id: string (user/system who triggered the transition, optional)\n  - reason: string (human-readable justification, required when requireTransitionReason is true)\n  - transition_metadata: Record<string, unknown> (arbitrary context, optional)\n",
          "semanticType": "timeline.state_transition",
          "examples": [
            [
              {
                "title": "Joined",
                "from": null,
                "to": "active",
                "at": "2026-02-02T15:00:00Z",
                "reason": "Created the Northwind Traders workspace"
              },
              {
                "title": "Suspended",
                "from": "active",
                "to": "suspended",
                "at": "2026-05-11T08:20:00Z",
                "reason": "Sign-in from an unrecognised device"
              },
              {
                "title": "Reactivated",
                "from": "suspended",
                "to": "active",
                "at": "2026-05-11T09:05:00Z",
                "reason": "Identity verified and password reset"
              }
            ],
            [
              {
                "title": "Joined",
                "from": null,
                "to": "active",
                "at": "2024-10-02T21:00:00Z",
                "reason": "Invited by the Tidewater account team"
              },
              {
                "title": "Deactivated",
                "from": "active",
                "to": "deactivated",
                "at": "2025-03-14T20:00:00Z",
                "reason": "On parental leave"
              },
              {
                "title": "Reactivated",
                "from": "deactivated",
                "to": "active",
                "at": "2025-09-01T20:00:00Z",
                "reason": "Returned from leave"
              }
            ],
            [
              {
                "title": "Joined",
                "from": null,
                "to": "active",
                "at": "2026-09-19T10:00:00Z",
                "reason": "Created the Blue Harbor Studio workspace"
              },
              {
                "title": "Suspended",
                "from": "active",
                "to": "suspended",
                "at": "2026-09-20T02:10:00Z",
                "reason": "Card check failed at trial start"
              },
              {
                "title": "Reactivated",
                "from": "suspended",
                "to": "active",
                "at": "2026-09-21T09:00:00Z",
                "reason": "Card verified and trial started"
              }
            ],
            [
              {
                "title": "Joined",
                "from": null,
                "to": "active",
                "at": "2026-01-12T08:00:00Z",
                "reason": "Created the Lindqvist Bakery workspace"
              },
              {
                "title": "Suspended",
                "from": "active",
                "to": "suspended",
                "at": "2026-05-15T08:05:00Z",
                "reason": "Workspace locked after the card expired"
              },
              {
                "title": "Reactivated",
                "from": "suspended",
                "to": "active",
                "at": "2026-05-17T08:00:00Z",
                "reason": "New card added"
              }
            ],
            [
              {
                "title": "Joined",
                "from": null,
                "to": "active",
                "at": "2026-01-20T10:00:00Z",
                "reason": "Created the Kestrel Print Co. workspace"
              },
              {
                "title": "Suspended",
                "from": "active",
                "to": "suspended",
                "at": "2026-09-24T07:45:00Z",
                "reason": "Locked after repeated failed sign-ins"
              }
            ],
            [
              {
                "title": "Joined",
                "from": null,
                "to": "active",
                "at": "2025-02-10T01:00:00Z",
                "reason": "Added by Ruth Adeyemi"
              },
              {
                "title": "Deactivated",
                "from": "active",
                "to": "deactivated",
                "at": "2025-12-19T03:00:00Z",
                "reason": "Left the co-op"
              },
              {
                "title": "Invited back",
                "from": "deactivated",
                "to": "invited",
                "at": "2026-09-23T22:30:00Z",
                "reason": "Rejoined the co-op; invitation sent"
              }
            ],
            [
              {
                "title": "Joined",
                "from": null,
                "to": "active",
                "at": "2026-01-05T10:15:00Z",
                "reason": "Created the Marlow Yoga workspace"
              },
              {
                "title": "Deactivated",
                "from": "active",
                "to": "deactivated",
                "at": "2026-07-10T09:00:00Z",
                "reason": "Studio closed"
              }
            ],
            [
              {
                "title": "Joined",
                "from": null,
                "to": "active",
                "at": "2026-04-23T12:00:00Z",
                "reason": "Created the Summit Outfitters workspace"
              },
              {
                "title": "Suspended",
                "from": "active",
                "to": "suspended",
                "at": "2026-06-30T18:00:00Z",
                "reason": "Paused while single sign-on was reset"
              },
              {
                "title": "Reactivated",
                "from": "suspended",
                "to": "active",
                "at": "2026-07-01T15:00:00Z",
                "reason": "Single sign-on restored"
              }
            ]
          ]
        },
        "allowed_transitions": {
          "type": "string[]",
          "required": false,
          "default": [],
          "description": "Materialized list of valid next states from the current status, computed from the\ntransitionRules parameter. When transitionRules is null (open model), this contains\nall states except the current one. Used by StatusSelector to disable invalid options\nand by StatusBadge to indicate available paths.\n",
          "semanticType": "status.navigation"
        },
        "created_at": {
          "type": "datetime",
          "required": true,
          "description": "Timestamp recording when the entity was first created.",
          "semanticType": "audit.created_at",
          "examples": [
            "2026-02-02T15:00:00Z",
            "2024-10-02T21:00:00Z",
            "2026-09-19T10:00:00Z",
            "2026-01-12T08:00:00Z",
            "2026-01-20T10:00:00Z",
            "2025-02-10T01:00:00Z",
            "2026-01-05T10:15:00Z",
            "2026-04-23T12:00:00Z"
          ]
        },
        "updated_at": {
          "type": "datetime",
          "required": false,
          "description": "Timestamp for the most recent modification, when available.",
          "semanticType": "audit.updated_at",
          "examples": [
            "2026-05-11T09:05:00Z",
            "2026-01-12T20:00:00Z",
            "2026-09-21T09:00:00Z",
            "2026-05-17T08:00:00Z",
            "2026-09-24T07:45:00Z",
            "2026-09-23T22:30:00Z",
            "2026-07-10T09:00:00Z",
            "2026-07-01T15:00:00Z"
          ]
        },
        "last_event": {
          "type": "string",
          "required": true,
          "description": "Lifecycle event associated with the most recent timestamp mutation.",
          "enum": [
            "created",
            "profile_updated",
            "status_changed",
            "role_updated"
          ],
          "semanticType": "audit.event.type",
          "examples": [
            "status_changed",
            "role_updated",
            "status_changed",
            "status_changed",
            "status_changed",
            "status_changed",
            "status_changed",
            "status_changed"
          ]
        },
        "last_event_at": {
          "type": "datetime",
          "required": false,
          "description": "Timestamp for the lifecycle event captured in last_event.",
          "semanticType": "audit.event.timestamp",
          "examples": [
            "2026-05-11T09:05:00Z",
            "2026-01-12T20:00:00Z",
            "2026-09-21T09:00:00Z",
            "2026-05-17T08:00:00Z",
            "2026-09-24T07:45:00Z",
            "2026-09-23T22:30:00Z",
            "2026-07-10T09:00:00Z",
            "2026-07-01T15:00:00Z"
          ]
        },
        "tags": {
          "type": "string[]",
          "required": false,
          "default": [],
          "description": "Ordered list of tags assigned to the entity.",
          "semanticType": "taxonomy.tag.collection",
          "examples": [
            [
              "admin"
            ],
            [
              "vip"
            ],
            [
              "admin",
              "beta_tester"
            ],
            [],
            [
              "suspended"
            ],
            [],
            [],
            [
              "admin"
            ]
          ]
        },
        "tag_count": {
          "type": "number",
          "required": true,
          "default": 0,
          "description": "Computed number of tags assigned to the entity.",
          "semanticType": "metric.collection.count",
          "examples": [
            1,
            1,
            2,
            0,
            1,
            0,
            0,
            1
          ]
        },
        "tag_metadata": {
          "type": "object[]",
          "required": false,
          "default": [],
          "description": "Per-tag governance metadata. Each entry corresponds to a tag in the tags array and\ntracks provenance and usage for taxonomy health monitoring.\n\nEntry structure:\n  - tag: string (the tag value, matches entry in tags array)\n  - created_at: ISO 8601 datetime\n  - created_by: string (user ID or \"system\" for allow-list tags)\n  - usage_count: number (how many entities use this tag, computed)\n  - moderation_status: \"approved\" | \"pending\" | \"rejected\" (when allowTagModeration is true)\n  - canonical_form: string (resolved synonym target, when synonymResolution is enabled)\n",
          "semanticType": "taxonomy.tag.governance"
        },
        "address_roles": {
          "type": "string[]",
          "required": true,
          "default": [],
          "description": "Ordered list of roles that currently have address entries.",
          "semanticType": "location.address.roles"
        },
        "default_address_role": {
          "type": "string",
          "required": false,
          "description": "Role surfaced in UI contexts when one address must be highlighted.",
          "enum": [
            "home",
            "billing",
            "shipping"
          ],
          "semanticType": "location.address.default_role"
        },
        "addresses": {
          "type": "AddressableEntry[]",
          "required": false,
          "default": [],
          "description": "Collection of { role, address, metadata } entries keyed by role.",
          "semanticType": "location.address.collection"
        },
        "preference_document": {
          "type": "PreferenceDocument",
          "required": true,
          "default": {
            "version": "1.0.0",
            "preferences": {
              "theme": {
                "mode": "system"
              },
              "notifications": {
                "mention": {
                  "email": true,
                  "push": true
                }
              }
            },
            "metadata": {
              "schemaVersion": "1.0.0",
              "lastUpdated": "2025-11-18T00:00:00Z",
              "source": "system",
              "migrationApplied": []
            }
          },
          "description": "Normalized preference payload captured by PreferenceStore (version, preferences map, metadata).",
          "semanticType": "preferences.document"
        },
        "preference_metadata": {
          "type": "PreferenceMetadata",
          "required": true,
          "description": "Tracks schema version, lastUpdated timestamp, migration records, and source.",
          "semanticType": "preferences.metadata"
        },
        "preference_version": {
          "type": "string",
          "required": true,
          "default": "2.0.0",
          "description": "SemVer mirror of preference_document.version for indexing and analytics.",
          "semanticType": "preferences.version"
        },
        "preference_namespaces": {
          "type": "string[]",
          "required": true,
          "default": [
            "theme",
            "notifications",
            "display",
            "privacy"
          ],
          "description": "Materialized namespace list resolved from parameters/registry for auditing.",
          "semanticType": "preferences.namespaces"
        },
        "preference_mutations": {
          "type": "number",
          "required": false,
          "default": 0,
          "description": "Monotonic counter incremented whenever preferences mutate (invalidates caches)."
        },
        "role_catalog": {
          "type": "AuthzRoleDocument[]",
          "required": true,
          "default": [],
          "examples": [
            [
              {
                "id": "11111111-1111-4111-8111-111111111111",
                "name": "Owner",
                "description": "Full tenant access + invoice approval (R21.2 Table 1)."
              },
              {
                "id": "22222222-2222-4222-8222-222222222222",
                "name": "Approver",
                "description": "Workflow approver for compliance-sensitive documents."
              },
              {
                "id": "33333333-3333-4333-8333-333333333333",
                "name": "Editor",
                "description": "Contributor allowed to create + update documents in scope."
              }
            ]
          ],
          "description": "Canonical RBAC roles (R21.2 Part 4.2 TABLE 1).",
          "semanticType": "authorization.roles"
        },
        "permission_catalog": {
          "type": "AuthzPermissionDocument[]",
          "required": true,
          "default": [],
          "description": "Atomic permissions following resource:action notation (TABLE 2).",
          "semanticType": "authorization.permissions"
        },
        "role_permissions": {
          "type": "Record<string, string[]>",
          "required": true,
          "default": {},
          "description": "Junction map for role→permission edges (TABLE 3)."
        },
        "membership_records": {
          "type": "AuthzMembershipDocument[]",
          "required": true,
          "default": [],
          "description": "SaaS membership triple (user_id, organization_id, role_id) with UNIQUE constraint (TABLE 4).",
          "semanticType": "authorization.memberships"
        },
        "role_hierarchy_edges": {
          "type": "AuthzRoleHierarchyEdge[]",
          "required": false,
          "default": [],
          "description": "Parent→child adjacency list for hierarchical RBAC (Part 3.1)."
        },
        "session_roles": {
          "type": "string[]",
          "required": false,
          "default": [],
          "description": "Materialized roles granted within the current session/token exchange."
        },
        "channel_catalog": {
          "type": "Channel[]",
          "required": true,
          "default": [],
          "examples": [
            [
              {
                "id": "44444444-dddd-4ddd-8ddd-dddddddddddd",
                "name": "Primary Email (SMTP)",
                "type": "email"
              },
              {
                "id": "55555555-eeee-4eee-8eee-eeeeeeeeeeee",
                "name": "Twilio SMS",
                "type": "sms"
              },
              {
                "id": "66666666-ffff-4fff-8fff-ffffffffffff",
                "name": "FCM Push",
                "type": "push"
              },
              {
                "id": "77777777-0000-4000-8000-000000000000",
                "name": "Realtime In-App",
                "type": "in_app"
              }
            ]
          ],
          "description": "Provider configuration for each channel (SMTP/Twilio/FCM/Webhook).",
          "semanticType": "communication.channels"
        },
        "template_catalog": {
          "type": "Template[]",
          "required": true,
          "default": [],
          "examples": [
            [
              {
                "id": "88888888-1111-4111-8111-111111111111",
                "name": "Welcome Email",
                "channelType": "email",
                "subject": "Welcome to OODS Foundry, {{firstName}}!",
                "body": "Hi {{firstName}},\n\nThanks for joining {{workspaceName}}. Activate your account using {{activationLink}}.",
                "variables": [
                  "firstName",
                  "workspaceName",
                  "activationLink"
                ],
                "locale": "en-US"
              },
              {
                "id": "99999999-2222-4222-8222-222222222222",
                "name": "Password Reset Email",
                "channelType": "email",
                "subject": "Reset your OODS Foundry password",
                "body": "Hello {{firstName}},\n\nWe received a request to reset your password. Use this code: {{resetCode}}.",
                "variables": [
                  "firstName",
                  "resetCode"
                ],
                "locale": "en-US"
              },
              {
                "id": "aaaaaaa1-3333-4333-8333-333333333333",
                "name": "In-App Notification",
                "channelType": "in_app",
                "subject": "New document shared with you",
                "body": "{{actorName}} shared \"{{documentName}}\" with you. Review it before {{dueDate}}.",
                "variables": [
                  "actorName",
                  "documentName",
                  "dueDate"
                ],
                "locale": "en-US"
              }
            ]
          ],
          "description": "Localized template definitions with declared variables per R20.1 Part 2.3.",
          "semanticType": "communication.templates"
        },
        "delivery_policies": {
          "type": "DeliveryPolicy[]",
          "required": true,
          "default": [],
          "description": "Retry/throttle/quiet-hour policies (R20.1 Part 3 lifecycle).",
          "semanticType": "communication.delivery_policy"
        },
        "messages": {
          "type": "Message[]",
          "required": false,
          "default": [],
          "description": "Atomic message payloads queued for delivery (R20.6 Part 1.2 primitives).",
          "semanticType": "communication.messages"
        },
        "conversations": {
          "type": "Conversation[]",
          "required": false,
          "default": [],
          "description": "Multi-party threaded conversations with membership metadata (R20.6 Part 3.3).",
          "semanticType": "communication.conversations"
        },
        "message_statuses": {
          "type": "MessageStatusEntry[]",
          "required": false,
          "default": [],
          "description": "Delivery state machine transitions (queued → sent → delivered → failed → retried → read)."
        },
        "user_id": {
          "type": "uuid",
          "required": true,
          "description": "Primary identifier used to correlate identity across services.",
          "semanticType": "identity.user.id",
          "examples": [
            "8b2e4d6f-1a3c-4e5b-9d7f-2c4e6a8b0d01",
            "8b2e4d6f-1a3c-4e5b-9d7f-2c4e6a8b0d02",
            "8b2e4d6f-1a3c-4e5b-9d7f-2c4e6a8b0d03",
            "8b2e4d6f-1a3c-4e5b-9d7f-2c4e6a8b0d04",
            "8b2e4d6f-1a3c-4e5b-9d7f-2c4e6a8b0d05",
            "8b2e4d6f-1a3c-4e5b-9d7f-2c4e6a8b0d06",
            "8b2e4d6f-1a3c-4e5b-9d7f-2c4e6a8b0d07",
            "8b2e4d6f-1a3c-4e5b-9d7f-2c4e6a8b0d08"
          ]
        },
        "name": {
          "type": "string",
          "required": true,
          "description": "Human-friendly name rendered in headers and list contexts.",
          "semanticType": "identity.user.name",
          "examples": [
            "Dana Whitfield",
            "Ruth Adeyemi",
            "Priya Raman",
            "Tomas Lindqvist",
            "Grace Okafor",
            "Mei Chen",
            "Jonah Marlow",
            "Arjun Mehta"
          ]
        },
        "preferred_name": {
          "type": "string",
          "required": false,
          "description": "Preferred display name surfaced in collaborative tooling.",
          "semanticType": "identity.user.name_preferred",
          "examples": [
            "Dana",
            "Ruth",
            "Priya",
            "Tomas",
            "Grace",
            "Mei",
            "Jonah",
            "Arjun"
          ]
        },
        "description": {
          "type": "string",
          "required": false,
          "description": "Supporting summary rendered in detail and card contexts.",
          "semanticType": "text.summary",
          "examples": [
            "Operations director, Northwind Traders",
            "Finance manager, Tidewater Co-op",
            "Studio manager, Blue Harbor Studio",
            "Owner, Lindqvist Bakery",
            "Accounts lead, Kestrel Print Co.",
            "Field coordinator, Tidewater Co-op",
            "Founder, Marlow Yoga",
            "E-commerce manager, Summit Outfitters"
          ]
        },
        "primary_email": {
          "type": "email",
          "required": true,
          "description": "Canonical login email address for the user.",
          "semanticType": "identity.user.email",
          "examples": [
            "dana.whitfield@northwind.example",
            "ruth.adeyemi@tidewater.example",
            "priya@blueharbor.example",
            "tomas@lindqvist.example",
            "grace.okafor@kestrelprint.example",
            "mei.chen@tidewater.example",
            "jonah@marlowyoga.example",
            "arjun.mehta@summit.example"
          ]
        },
        "role": {
          "type": "string",
          "required": true,
          "default": "end_user",
          "description": "Highest privilege role currently granted to the user.",
          "enum": [
            "end_user",
            "admin",
            "owner",
            "billing"
          ],
          "semanticType": "identity.user.role",
          "examples": [
            "owner",
            "billing",
            "admin",
            "owner",
            "billing",
            "end_user",
            "owner",
            "admin"
          ]
        },
        "timezone": {
          "type": "string",
          "required": false,
          "default": "UTC",
          "description": "Preferred timezone applied when rendering timestamps.",
          "semanticType": "identity.user.timezone",
          "examples": [
            "America/Chicago",
            "Pacific/Auckland",
            "America/Los_Angeles",
            "Europe/Stockholm",
            "Europe/London",
            "Pacific/Auckland",
            "America/Chicago",
            "America/Denver"
          ]
        }
      }
    },
    "meta": {
      "screenCount": 1,
      "nodeCount": 51
    }
  }
}
