{
  "schemaVersion": 1,
  "sensitiveFieldsExcluded": true,
  "generatedAt": "1970-01-01T00:00:00.000Z",
  "packageName": "@happyvertical/smrt-support",
  "packageVersion": "0.51.10",
  "sourceManifestPath": "dist/manifest.json",
  "agentDocPath": "AGENTS.md",
  "sourceHashes": {
    "manifest": "be26cc9b016a5c83fa775766c2621a8516fb650715185fc61f517b035087ed25",
    "packageJson": "c985887c447875458bf8ef8e921f6f88293cba651bfc1c69b2016224c654ef0c",
    "agents": "57d75c4e48c549de0e7e50bfc16d739384cd37f4a0c66f0375d1985b24e6cbdd"
  },
  "exports": [
    ".",
    "./manifest",
    "./manifest.json",
    "./svelte"
  ],
  "dependencies": {
    "@happyvertical/logger": "catalog:",
    "@happyvertical/smrt-chat": "workspace:*",
    "@happyvertical/smrt-core": "workspace:*",
    "@happyvertical/smrt-jobs": "workspace:*",
    "@happyvertical/smrt-messages": "workspace:*",
    "@happyvertical/smrt-projects": "workspace:*",
    "@happyvertical/smrt-tenancy": "workspace:*",
    "@happyvertical/smrt-ui": "workspace:*",
    "@happyvertical/smrt-users": "workspace:*",
    "@happyvertical/sql": "catalog:",
    "@happyvertical/smrt-vitest": "workspace:*",
    "@sveltejs/package": "^2.5.8",
    "@sveltejs/vite-plugin-svelte": "^7.1.2",
    "@types/node": "24.13.2",
    "svelte": "^5.56.4",
    "svelte-check": "^4.7.1",
    "typescript": "5.9.3",
    "vite": "8.1.4",
    "vitest": "4.1.10"
  },
  "smrtDependencies": [
    "@happyvertical/smrt-chat",
    "@happyvertical/smrt-core",
    "@happyvertical/smrt-jobs",
    "@happyvertical/smrt-messages",
    "@happyvertical/smrt-projects",
    "@happyvertical/smrt-tenancy",
    "@happyvertical/smrt-ui",
    "@happyvertical/smrt-users",
    "@happyvertical/smrt-vitest"
  ],
  "sdkDependencies": [
    "@happyvertical/logger",
    "@happyvertical/sql"
  ],
  "tags": [
    "cross-package",
    "multi-tenant",
    "service-desk",
    "sla",
    "smrt",
    "support",
    "tickets"
  ],
  "risks": [
    "cross-package-refs:12",
    "sensitive-fields-excluded"
  ],
  "objects": [
    {
      "name": "ServiceTimeEntry",
      "qualifiedName": "@happyvertical/smrt-support:ServiceTimeEntry",
      "collection": "servicetimeentries",
      "tableName": "service_time_entries",
      "packageName": "@happyvertical/smrt-support",
      "extends": "ServiceTimeEntry",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "caseId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportCase",
          "columnType": "UUID"
        },
        {
          "name": "workRefType",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "workRefId",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "specialistId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportSpecialist",
          "columnType": "UUID"
        },
        {
          "name": "participantKind",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "participantProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "agentRef",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "source",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "description",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "startedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "endedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "durationSeconds",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "evidence",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "status",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "submittedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "submittedByProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "approvedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "approvedByProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "approvalPath",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "rejectedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "rejectedByProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "rejectionReason",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "correctionOfId",
          "type": "foreignKey",
          "required": false,
          "related": "ServiceTimeEntry",
          "columnType": "UUID"
        },
        {
          "name": "metadata",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        }
      ],
      "relationships": [
        {
          "name": "caseId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportCase",
          "columnType": "UUID"
        },
        {
          "name": "specialistId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportSpecialist",
          "columnType": "UUID"
        },
        {
          "name": "participantProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "submittedByProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "approvedByProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "rejectedByProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "correctionOfId",
          "type": "foreignKey",
          "required": false,
          "related": "ServiceTimeEntry",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "durationHours",
        "getEvidence",
        "getMetadata",
        "initialize",
        "save",
        "setEvidence",
        "setMetadata"
      ],
      "methodSignatures": [
        {
          "name": "durationHours",
          "returns": "number"
        },
        {
          "name": "getEvidence",
          "returns": "ServiceEvidence[]"
        },
        {
          "name": "getMetadata",
          "returns": "Record<string, unknown>"
        },
        {
          "name": "initialize",
          "async": true,
          "returns": "Promise<this>"
        },
        {
          "name": "save",
          "async": true,
          "returns": "Promise<this>"
        },
        {
          "name": "setEvidence",
          "params": [
            "value: ServiceEvidence[]"
          ],
          "returns": "void"
        },
        {
          "name": "setMetadata",
          "params": [
            "value: Record<string, unknown>"
          ],
          "returns": "void"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "tenant_id",
        "slug",
        "context"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "servicetimeentries.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:ServiceTimeEntry",
          "path": "/servicetimeentries",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "servicetimeentries.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:ServiceTimeEntry",
          "path": "/servicetimeentries/[id]",
          "method": "GET"
        },
        {
          "kind": "cli",
          "name": "servicetimeentry_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:ServiceTimeEntry"
        },
        {
          "kind": "cli",
          "name": "servicetimeentry_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:ServiceTimeEntry"
        },
        {
          "kind": "mcp",
          "name": "servicetimeentry_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:ServiceTimeEntry"
        },
        {
          "kind": "mcp",
          "name": "servicetimeentry_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:ServiceTimeEntry"
        }
      ],
      "withheldSurfaces": [
        {
          "kind": "api",
          "operation": "durationHours",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:ServiceTimeEntry"
        },
        {
          "kind": "api",
          "operation": "getEvidence",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:ServiceTimeEntry"
        },
        {
          "kind": "api",
          "operation": "getMetadata",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:ServiceTimeEntry"
        },
        {
          "kind": "api",
          "operation": "initialize",
          "code": "lifecycle-method",
          "reason": "`initialize` is a framework lifecycle method, not a distinct operation",
          "objectName": "@happyvertical/smrt-support:ServiceTimeEntry"
        },
        {
          "kind": "api",
          "operation": "save",
          "code": "lifecycle-method",
          "reason": "`save` is a framework lifecycle method, not a distinct operation",
          "objectName": "@happyvertical/smrt-support:ServiceTimeEntry"
        },
        {
          "kind": "api",
          "operation": "setEvidence",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:ServiceTimeEntry"
        },
        {
          "kind": "api",
          "operation": "setMetadata",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:ServiceTimeEntry"
        }
      ],
      "relationshipFeatures": [
        "crossPackageRef",
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "ServiceTimeEntryCollection",
      "qualifiedName": "@happyvertical/smrt-support:ServiceTimeEntryCollection",
      "collection": "servicetimeentries",
      "tableName": "service_time_entries",
      "packageName": "@happyvertical/smrt-support",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "forCase",
        "forSpecialist",
        "pendingApproval"
      ],
      "methodSignatures": [
        {
          "name": "forCase",
          "async": true,
          "params": [
            "caseId: string"
          ],
          "returns": "Promise<ServiceTimeEntry[]>"
        },
        {
          "name": "forSpecialist",
          "async": true,
          "params": [
            "specialistId: string"
          ],
          "returns": "Promise<ServiceTimeEntry[]>"
        },
        {
          "name": "pendingApproval",
          "async": true,
          "returns": "Promise<ServiceTimeEntry[]>"
        }
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "servicetimeentries.forCase",
          "operation": "forCase",
          "objectName": "@happyvertical/smrt-support:ServiceTimeEntryCollection",
          "path": "/servicetimeentries/forCase",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "servicetimeentries.forSpecialist",
          "operation": "forSpecialist",
          "objectName": "@happyvertical/smrt-support:ServiceTimeEntryCollection",
          "path": "/servicetimeentries/forSpecialist",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "servicetimeentries.pendingApproval",
          "operation": "pendingApproval",
          "objectName": "@happyvertical/smrt-support:ServiceTimeEntryCollection",
          "path": "/servicetimeentries/pendingApproval",
          "method": "POST"
        },
        {
          "kind": "cli",
          "name": "servicetimeentrycollection_forCase",
          "operation": "forCase",
          "objectName": "@happyvertical/smrt-support:ServiceTimeEntryCollection"
        },
        {
          "kind": "cli",
          "name": "servicetimeentrycollection_forSpecialist",
          "operation": "forSpecialist",
          "objectName": "@happyvertical/smrt-support:ServiceTimeEntryCollection"
        },
        {
          "kind": "cli",
          "name": "servicetimeentrycollection_pendingApproval",
          "operation": "pendingApproval",
          "objectName": "@happyvertical/smrt-support:ServiceTimeEntryCollection"
        },
        {
          "kind": "mcp",
          "name": "servicetimeentrycollection_forcase",
          "operation": "forCase",
          "objectName": "@happyvertical/smrt-support:ServiceTimeEntryCollection"
        },
        {
          "kind": "mcp",
          "name": "servicetimeentrycollection_forspecialist",
          "operation": "forSpecialist",
          "objectName": "@happyvertical/smrt-support:ServiceTimeEntryCollection"
        },
        {
          "kind": "mcp",
          "name": "servicetimeentrycollection_pendingapproval",
          "operation": "pendingApproval",
          "objectName": "@happyvertical/smrt-support:ServiceTimeEntryCollection"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SupportAiRun",
      "qualifiedName": "@happyvertical/smrt-support:SupportAiRun",
      "collection": "supportairuns",
      "tableName": "support_ai_runs",
      "packageName": "@happyvertical/smrt-support",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "caseId",
          "type": "foreignKey",
          "required": true,
          "related": "SupportCase",
          "columnType": "UUID"
        },
        {
          "name": "interactionId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportInteraction",
          "columnType": "UUID"
        },
        {
          "name": "phase",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "outcome",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "confidence",
          "type": "decimal",
          "required": false,
          "columnType": "REAL"
        },
        {
          "name": "classification",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "responseInteractionId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportInteraction",
          "columnType": "UUID"
        },
        {
          "name": "knowledgeRefs",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "toolCalls",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "error",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "correlationId",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "model",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "startedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "completedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "metadata",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        }
      ],
      "relationships": [
        {
          "name": "caseId",
          "type": "foreignKey",
          "required": true,
          "related": "SupportCase",
          "columnType": "UUID"
        },
        {
          "name": "interactionId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportInteraction",
          "columnType": "UUID"
        },
        {
          "name": "responseInteractionId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportInteraction",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "getClassification",
        "getKnowledgeRefs",
        "getToolCalls",
        "setClassification",
        "setKnowledgeRefs",
        "setToolCalls"
      ],
      "methodSignatures": [
        {
          "name": "getClassification",
          "returns": "Record<string, unknown>"
        },
        {
          "name": "getKnowledgeRefs",
          "returns": "Array<Record<string, unknown>>"
        },
        {
          "name": "getToolCalls",
          "returns": "Array<Record<string, unknown>>"
        },
        {
          "name": "setClassification",
          "params": [
            "value: Record<string, unknown>"
          ],
          "returns": "void"
        },
        {
          "name": "setKnowledgeRefs",
          "params": [
            "refs: Array<Record<string, unknown>>"
          ],
          "returns": "void"
        },
        {
          "name": "setToolCalls",
          "params": [
            "calls: Array<Record<string, unknown>>"
          ],
          "returns": "void"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "tenant_id",
        "slug",
        "context"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "supportairuns.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportAiRun",
          "path": "/supportairuns",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "supportairuns.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportAiRun",
          "path": "/supportairuns/[id]",
          "method": "GET"
        },
        {
          "kind": "cli",
          "name": "supportairun_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportAiRun"
        },
        {
          "kind": "cli",
          "name": "supportairun_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportAiRun"
        },
        {
          "kind": "mcp",
          "name": "supportairun_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportAiRun"
        },
        {
          "kind": "mcp",
          "name": "supportairun_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportAiRun"
        }
      ],
      "withheldSurfaces": [
        {
          "kind": "api",
          "operation": "getClassification",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportAiRun"
        },
        {
          "kind": "api",
          "operation": "getKnowledgeRefs",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportAiRun"
        },
        {
          "kind": "api",
          "operation": "getToolCalls",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportAiRun"
        },
        {
          "kind": "api",
          "operation": "setClassification",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportAiRun"
        },
        {
          "kind": "api",
          "operation": "setKnowledgeRefs",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportAiRun"
        },
        {
          "kind": "api",
          "operation": "setToolCalls",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportAiRun"
        }
      ],
      "relationshipFeatures": [
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SupportAiRunCollection",
      "qualifiedName": "@happyvertical/smrt-support:SupportAiRunCollection",
      "collection": "supportairuns",
      "tableName": "support_ai_runs",
      "packageName": "@happyvertical/smrt-support",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "forCase"
      ],
      "methodSignatures": [
        {
          "name": "forCase",
          "async": true,
          "params": [
            "caseId: string"
          ],
          "returns": "Promise<SupportAiRun[]>"
        }
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "supportairuns.forCase",
          "operation": "forCase",
          "objectName": "@happyvertical/smrt-support:SupportAiRunCollection",
          "path": "/supportairuns/forCase",
          "method": "POST"
        },
        {
          "kind": "cli",
          "name": "supportairuncollection_forCase",
          "operation": "forCase",
          "objectName": "@happyvertical/smrt-support:SupportAiRunCollection"
        },
        {
          "kind": "mcp",
          "name": "supportairuncollection_forcase",
          "operation": "forCase",
          "objectName": "@happyvertical/smrt-support:SupportAiRunCollection"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SupportCaseEvent",
      "qualifiedName": "@happyvertical/smrt-support:SupportCaseEvent",
      "collection": "supportcaseevents",
      "tableName": "support_case_events",
      "packageName": "@happyvertical/smrt-support",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "caseId",
          "type": "foreignKey",
          "required": true,
          "related": "SupportCase",
          "columnType": "UUID"
        },
        {
          "name": "eventType",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "actorKind",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "actorProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "occurredAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "summary",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "payload",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        }
      ],
      "relationships": [
        {
          "name": "caseId",
          "type": "foreignKey",
          "required": true,
          "related": "SupportCase",
          "columnType": "UUID"
        },
        {
          "name": "actorProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "getPayload",
        "setPayload"
      ],
      "methodSignatures": [
        {
          "name": "getPayload",
          "returns": "Record<string, unknown>"
        },
        {
          "name": "setPayload",
          "params": [
            "value: Record<string, unknown>"
          ],
          "returns": "void"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "tenant_id",
        "slug",
        "context"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "supportcaseevents.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportCaseEvent",
          "path": "/supportcaseevents",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "supportcaseevents.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportCaseEvent",
          "path": "/supportcaseevents/[id]",
          "method": "GET"
        },
        {
          "kind": "cli",
          "name": "supportcaseevent_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportCaseEvent"
        },
        {
          "kind": "cli",
          "name": "supportcaseevent_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportCaseEvent"
        },
        {
          "kind": "mcp",
          "name": "supportcaseevent_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportCaseEvent"
        },
        {
          "kind": "mcp",
          "name": "supportcaseevent_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportCaseEvent"
        }
      ],
      "withheldSurfaces": [
        {
          "kind": "api",
          "operation": "getPayload",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportCaseEvent"
        },
        {
          "kind": "api",
          "operation": "setPayload",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportCaseEvent"
        }
      ],
      "relationshipFeatures": [
        "crossPackageRef",
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SupportCaseEventCollection",
      "qualifiedName": "@happyvertical/smrt-support:SupportCaseEventCollection",
      "collection": "supportcaseevents",
      "tableName": "support_case_events",
      "packageName": "@happyvertical/smrt-support",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "forCase"
      ],
      "methodSignatures": [
        {
          "name": "forCase",
          "async": true,
          "params": [
            "caseId: string",
            "options?: object"
          ],
          "returns": "Promise<SupportCaseEvent[]>"
        }
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "supportcaseevents.forCase",
          "operation": "forCase",
          "objectName": "@happyvertical/smrt-support:SupportCaseEventCollection",
          "path": "/supportcaseevents/forCase",
          "method": "POST"
        },
        {
          "kind": "cli",
          "name": "supportcaseeventcollection_forCase",
          "operation": "forCase",
          "objectName": "@happyvertical/smrt-support:SupportCaseEventCollection"
        },
        {
          "kind": "mcp",
          "name": "supportcaseeventcollection_forcase",
          "operation": "forCase",
          "objectName": "@happyvertical/smrt-support:SupportCaseEventCollection"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SupportCase",
      "qualifiedName": "@happyvertical/smrt-support:SupportCase",
      "collection": "supportcases",
      "tableName": "support_cases",
      "packageName": "@happyvertical/smrt-support",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "caseNumber",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "subject",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "description",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "status",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "priority",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "severity",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "category",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "sensitive",
          "type": "boolean",
          "required": false,
          "columnType": "BOOLEAN"
        },
        {
          "name": "channelKind",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "clientProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "openedByProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "projectId",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "bindingId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportChannelBinding",
          "columnType": "UUID"
        },
        {
          "name": "threadKey",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "planId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportPlan",
          "columnType": "UUID"
        },
        {
          "name": "planSnapshot",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "assignedSpecialistId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportSpecialist",
          "columnType": "UUID"
        },
        {
          "name": "assignedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "preferredSpecialistId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportSpecialist",
          "columnType": "UUID"
        },
        {
          "name": "escalationLevel",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "escalatedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "acknowledgedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "firstRespondedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "humanRequestedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "resolvedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "resolvedByProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "resolutionKind",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "resolutionSummary",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "closedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "reopenCount",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "lastReopenedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "aiEnabled",
          "type": "boolean",
          "required": false,
          "columnType": "BOOLEAN"
        },
        {
          "name": "metadata",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        }
      ],
      "relationships": [
        {
          "name": "clientProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "openedByProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "bindingId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportChannelBinding",
          "columnType": "UUID"
        },
        {
          "name": "planId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportPlan",
          "columnType": "UUID"
        },
        {
          "name": "assignedSpecialistId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportSpecialist",
          "columnType": "UUID"
        },
        {
          "name": "preferredSpecialistId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportSpecialist",
          "columnType": "UUID"
        },
        {
          "name": "resolvedByProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "getMetadata",
        "getPlanSnapshot",
        "initialize",
        "isOpen",
        "save",
        "setMetadata",
        "setPlanSnapshot",
        "updateMetadata"
      ],
      "methodSignatures": [
        {
          "name": "getMetadata",
          "returns": "Record<string, unknown>"
        },
        {
          "name": "getPlanSnapshot",
          "returns": "Record<string, unknown>"
        },
        {
          "name": "initialize",
          "async": true,
          "returns": "Promise<this>"
        },
        {
          "name": "isOpen",
          "returns": "boolean"
        },
        {
          "name": "save",
          "async": true,
          "returns": "Promise<this>"
        },
        {
          "name": "setMetadata",
          "params": [
            "value: Record<string, unknown>"
          ],
          "returns": "void"
        },
        {
          "name": "setPlanSnapshot",
          "params": [
            "value: Record<string, unknown>"
          ],
          "returns": "void"
        },
        {
          "name": "updateMetadata",
          "params": [
            "patch: Record<string, unknown>"
          ],
          "returns": "void"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "tenant_id",
        "slug",
        "context"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "supportcases.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportCase",
          "path": "/supportcases",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "supportcases.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportCase",
          "path": "/supportcases/[id]",
          "method": "GET"
        },
        {
          "kind": "cli",
          "name": "supportcase_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportCase"
        },
        {
          "kind": "cli",
          "name": "supportcase_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportCase"
        },
        {
          "kind": "mcp",
          "name": "supportcase_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportCase"
        },
        {
          "kind": "mcp",
          "name": "supportcase_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportCase"
        }
      ],
      "withheldSurfaces": [
        {
          "kind": "api",
          "operation": "getMetadata",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportCase"
        },
        {
          "kind": "api",
          "operation": "getPlanSnapshot",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportCase"
        },
        {
          "kind": "api",
          "operation": "initialize",
          "code": "lifecycle-method",
          "reason": "`initialize` is a framework lifecycle method, not a distinct operation",
          "objectName": "@happyvertical/smrt-support:SupportCase"
        },
        {
          "kind": "api",
          "operation": "isOpen",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportCase"
        },
        {
          "kind": "api",
          "operation": "save",
          "code": "lifecycle-method",
          "reason": "`save` is a framework lifecycle method, not a distinct operation",
          "objectName": "@happyvertical/smrt-support:SupportCase"
        },
        {
          "kind": "api",
          "operation": "setMetadata",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportCase"
        },
        {
          "kind": "api",
          "operation": "setPlanSnapshot",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportCase"
        },
        {
          "kind": "api",
          "operation": "updateMetadata",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportCase"
        }
      ],
      "relationshipFeatures": [
        "crossPackageRef",
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SupportCaseCollection",
      "qualifiedName": "@happyvertical/smrt-support:SupportCaseCollection",
      "collection": "supportcases",
      "tableName": "support_cases",
      "packageName": "@happyvertical/smrt-support",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "findOpenByThreadKey",
        "findQueue"
      ],
      "methodSignatures": [
        {
          "name": "findOpenByThreadKey",
          "async": true,
          "params": [
            "threadKey: string",
            "options?: object"
          ],
          "returns": "Promise<SupportCase | null>"
        },
        {
          "name": "findQueue",
          "async": true,
          "params": [
            "options?: object"
          ],
          "returns": "Promise<SupportCase[]>"
        }
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "supportcases.findOpenByThreadKey",
          "operation": "findOpenByThreadKey",
          "objectName": "@happyvertical/smrt-support:SupportCaseCollection",
          "path": "/supportcases/findOpenByThreadKey",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "supportcases.findQueue",
          "operation": "findQueue",
          "objectName": "@happyvertical/smrt-support:SupportCaseCollection",
          "path": "/supportcases/findQueue",
          "method": "POST"
        },
        {
          "kind": "cli",
          "name": "supportcasecollection_findOpenByThreadKey",
          "operation": "findOpenByThreadKey",
          "objectName": "@happyvertical/smrt-support:SupportCaseCollection"
        },
        {
          "kind": "cli",
          "name": "supportcasecollection_findQueue",
          "operation": "findQueue",
          "objectName": "@happyvertical/smrt-support:SupportCaseCollection"
        },
        {
          "kind": "mcp",
          "name": "supportcasecollection_findopenbythreadkey",
          "operation": "findOpenByThreadKey",
          "objectName": "@happyvertical/smrt-support:SupportCaseCollection"
        },
        {
          "kind": "mcp",
          "name": "supportcasecollection_findqueue",
          "operation": "findQueue",
          "objectName": "@happyvertical/smrt-support:SupportCaseCollection"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SupportChannelBinding",
      "qualifiedName": "@happyvertical/smrt-support:SupportChannelBinding",
      "collection": "supportchannelbindings",
      "tableName": "support_channel_bindings",
      "packageName": "@happyvertical/smrt-support",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "name",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "bindingKind",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "channelKind",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "targetType",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "targetId",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "clientProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "projectId",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "planId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportPlan",
          "columnType": "UUID"
        },
        {
          "name": "enabled",
          "type": "boolean",
          "required": false,
          "columnType": "BOOLEAN"
        },
        {
          "name": "selfAddresses",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "metadata",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        }
      ],
      "relationships": [
        {
          "name": "clientProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "planId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportPlan",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "getMetadata",
        "getSelfAddresses",
        "setMetadata",
        "setSelfAddresses"
      ],
      "methodSignatures": [
        {
          "name": "getMetadata",
          "returns": "Record<string, unknown>"
        },
        {
          "name": "getSelfAddresses",
          "returns": "string[]"
        },
        {
          "name": "setMetadata",
          "params": [
            "value: Record<string, unknown>"
          ],
          "returns": "void"
        },
        {
          "name": "setSelfAddresses",
          "params": [
            "addresses: string[]"
          ],
          "returns": "void"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "target_type",
        "target_id"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "supportchannelbindings.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportChannelBinding",
          "path": "/supportchannelbindings",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "supportchannelbindings.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportChannelBinding",
          "path": "/supportchannelbindings/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "supportchannelbindings.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-support:SupportChannelBinding",
          "path": "/supportchannelbindings",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "supportchannelbindings.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-support:SupportChannelBinding",
          "path": "/supportchannelbindings/[id]",
          "method": "PATCH"
        },
        {
          "kind": "api",
          "name": "supportchannelbindings.delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-support:SupportChannelBinding",
          "path": "/supportchannelbindings/[id]",
          "method": "DELETE"
        },
        {
          "kind": "cli",
          "name": "supportchannelbinding_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportChannelBinding"
        },
        {
          "kind": "cli",
          "name": "supportchannelbinding_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportChannelBinding"
        },
        {
          "kind": "mcp",
          "name": "supportchannelbinding_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportChannelBinding"
        },
        {
          "kind": "mcp",
          "name": "supportchannelbinding_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportChannelBinding"
        }
      ],
      "withheldSurfaces": [
        {
          "kind": "api",
          "operation": "getMetadata",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportChannelBinding"
        },
        {
          "kind": "api",
          "operation": "getSelfAddresses",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportChannelBinding"
        },
        {
          "kind": "api",
          "operation": "setMetadata",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportChannelBinding"
        },
        {
          "kind": "api",
          "operation": "setSelfAddresses",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportChannelBinding"
        }
      ],
      "relationshipFeatures": [
        "crossPackageRef",
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SupportChannelBindingCollection",
      "qualifiedName": "@happyvertical/smrt-support:SupportChannelBindingCollection",
      "collection": "supportchannelbindings",
      "tableName": "support_channel_bindings",
      "packageName": "@happyvertical/smrt-support",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "findForTarget"
      ],
      "methodSignatures": [
        {
          "name": "findForTarget",
          "async": true,
          "params": [
            "targetType: string",
            "targetId: string"
          ],
          "returns": "Promise<SupportChannelBinding | null>"
        }
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "supportchannelbindings.findForTarget",
          "operation": "findForTarget",
          "objectName": "@happyvertical/smrt-support:SupportChannelBindingCollection",
          "path": "/supportchannelbindings/findForTarget",
          "method": "POST"
        },
        {
          "kind": "cli",
          "name": "supportchannelbindingcollection_findForTarget",
          "operation": "findForTarget",
          "objectName": "@happyvertical/smrt-support:SupportChannelBindingCollection"
        },
        {
          "kind": "mcp",
          "name": "supportchannelbindingcollection_findfortarget",
          "operation": "findForTarget",
          "objectName": "@happyvertical/smrt-support:SupportChannelBindingCollection"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SupportCompensationPlan",
      "qualifiedName": "@happyvertical/smrt-support:SupportCompensationPlan",
      "collection": "supportcompensationplans",
      "tableName": "support_compensation_plans",
      "packageName": "@happyvertical/smrt-support",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "specialistId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportSpecialist",
          "columnType": "UUID"
        },
        {
          "name": "name",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "hourlyRate",
          "type": "decimal",
          "required": false,
          "columnType": "REAL",
          "default": 0
        },
        {
          "name": "currency",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "effectiveFrom",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "effectiveTo",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "status",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "terms",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        }
      ],
      "relationships": [
        {
          "name": "specialistId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportSpecialist",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "getTerms",
        "isEffectiveAt",
        "setTerms"
      ],
      "methodSignatures": [
        {
          "name": "getTerms",
          "returns": "Record<string, unknown>"
        },
        {
          "name": "isEffectiveAt",
          "params": [
            "at?: Date"
          ],
          "returns": "boolean"
        },
        {
          "name": "setTerms",
          "params": [
            "value: Record<string, unknown>"
          ],
          "returns": "void"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "tenant_id",
        "specialist_id",
        "effective_from"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "supportcompensationplans.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportCompensationPlan",
          "path": "/supportcompensationplans",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "supportcompensationplans.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportCompensationPlan",
          "path": "/supportcompensationplans/[id]",
          "method": "GET"
        },
        {
          "kind": "cli",
          "name": "supportcompensationplan_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportCompensationPlan"
        },
        {
          "kind": "cli",
          "name": "supportcompensationplan_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportCompensationPlan"
        },
        {
          "kind": "mcp",
          "name": "supportcompensationplan_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportCompensationPlan"
        },
        {
          "kind": "mcp",
          "name": "supportcompensationplan_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportCompensationPlan"
        }
      ],
      "withheldSurfaces": [
        {
          "kind": "api",
          "operation": "getTerms",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportCompensationPlan"
        },
        {
          "kind": "api",
          "operation": "isEffectiveAt",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportCompensationPlan"
        },
        {
          "kind": "api",
          "operation": "setTerms",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportCompensationPlan"
        }
      ],
      "relationshipFeatures": [
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SupportCompensationPlanCollection",
      "qualifiedName": "@happyvertical/smrt-support:SupportCompensationPlanCollection",
      "collection": "supportcompensationplans",
      "tableName": "support_compensation_plans",
      "packageName": "@happyvertical/smrt-support",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "resolveForSpecialist"
      ],
      "methodSignatures": [
        {
          "name": "resolveForSpecialist",
          "async": true,
          "params": [
            "specialistId: string",
            "at?: Date",
            "options?: object"
          ],
          "returns": "Promise<SupportCompensationPlan | null>"
        }
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "supportcompensationplans.resolveForSpecialist",
          "operation": "resolveForSpecialist",
          "objectName": "@happyvertical/smrt-support:SupportCompensationPlanCollection",
          "path": "/supportcompensationplans/resolveForSpecialist",
          "method": "POST"
        },
        {
          "kind": "cli",
          "name": "supportcompensationplancollection_resolveForSpecialist",
          "operation": "resolveForSpecialist",
          "objectName": "@happyvertical/smrt-support:SupportCompensationPlanCollection"
        },
        {
          "kind": "mcp",
          "name": "supportcompensationplancollection_resolveforspecialist",
          "operation": "resolveForSpecialist",
          "objectName": "@happyvertical/smrt-support:SupportCompensationPlanCollection"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SupportInteraction",
      "qualifiedName": "@happyvertical/smrt-support:SupportInteraction",
      "collection": "supportinteractions",
      "tableName": "support_interactions",
      "packageName": "@happyvertical/smrt-support",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "caseId",
          "type": "foreignKey",
          "required": true,
          "related": "SupportCase",
          "columnType": "UUID"
        },
        {
          "name": "direction",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "channelKind",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "actorKind",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "authorProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "occurredAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "body",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "sourceType",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "sourceId",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "sourceKey",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "rfcMessageId",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "metadata",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        }
      ],
      "relationships": [
        {
          "name": "caseId",
          "type": "foreignKey",
          "required": true,
          "related": "SupportCase",
          "columnType": "UUID"
        },
        {
          "name": "authorProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "getMetadata",
        "setMetadata"
      ],
      "methodSignatures": [
        {
          "name": "getMetadata",
          "returns": "Record<string, unknown>"
        },
        {
          "name": "setMetadata",
          "params": [
            "value: Record<string, unknown>"
          ],
          "returns": "void"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "source_key"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "supportinteractions.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportInteraction",
          "path": "/supportinteractions",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "supportinteractions.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportInteraction",
          "path": "/supportinteractions/[id]",
          "method": "GET"
        },
        {
          "kind": "cli",
          "name": "supportinteraction_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportInteraction"
        },
        {
          "kind": "cli",
          "name": "supportinteraction_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportInteraction"
        },
        {
          "kind": "mcp",
          "name": "supportinteraction_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportInteraction"
        },
        {
          "kind": "mcp",
          "name": "supportinteraction_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportInteraction"
        }
      ],
      "withheldSurfaces": [
        {
          "kind": "api",
          "operation": "getMetadata",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportInteraction"
        },
        {
          "kind": "api",
          "operation": "setMetadata",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportInteraction"
        }
      ],
      "relationshipFeatures": [
        "crossPackageRef",
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SupportInteractionCollection",
      "qualifiedName": "@happyvertical/smrt-support:SupportInteractionCollection",
      "collection": "supportinteractions",
      "tableName": "support_interactions",
      "packageName": "@happyvertical/smrt-support",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "byRfcMessageId",
        "bySourceKey",
        "forCase"
      ],
      "methodSignatures": [
        {
          "name": "byRfcMessageId",
          "async": true,
          "params": [
            "rfcMessageId: string"
          ],
          "returns": "Promise<SupportInteraction | null>"
        },
        {
          "name": "bySourceKey",
          "async": true,
          "params": [
            "sourceKey: string"
          ],
          "returns": "Promise<SupportInteraction | null>"
        },
        {
          "name": "forCase",
          "async": true,
          "params": [
            "caseId: string"
          ],
          "returns": "Promise<SupportInteraction[]>"
        }
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "supportinteractions.forCase",
          "operation": "forCase",
          "objectName": "@happyvertical/smrt-support:SupportInteractionCollection",
          "path": "/supportinteractions/forCase",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "supportinteractions.bySourceKey",
          "operation": "bySourceKey",
          "objectName": "@happyvertical/smrt-support:SupportInteractionCollection",
          "path": "/supportinteractions/bySourceKey",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "supportinteractions.byRfcMessageId",
          "operation": "byRfcMessageId",
          "objectName": "@happyvertical/smrt-support:SupportInteractionCollection",
          "path": "/supportinteractions/byRfcMessageId",
          "method": "POST"
        },
        {
          "kind": "cli",
          "name": "supportinteractioncollection_forCase",
          "operation": "forCase",
          "objectName": "@happyvertical/smrt-support:SupportInteractionCollection"
        },
        {
          "kind": "cli",
          "name": "supportinteractioncollection_bySourceKey",
          "operation": "bySourceKey",
          "objectName": "@happyvertical/smrt-support:SupportInteractionCollection"
        },
        {
          "kind": "cli",
          "name": "supportinteractioncollection_byRfcMessageId",
          "operation": "byRfcMessageId",
          "objectName": "@happyvertical/smrt-support:SupportInteractionCollection"
        },
        {
          "kind": "mcp",
          "name": "supportinteractioncollection_forcase",
          "operation": "forCase",
          "objectName": "@happyvertical/smrt-support:SupportInteractionCollection"
        },
        {
          "kind": "mcp",
          "name": "supportinteractioncollection_bysourcekey",
          "operation": "bySourceKey",
          "objectName": "@happyvertical/smrt-support:SupportInteractionCollection"
        },
        {
          "kind": "mcp",
          "name": "supportinteractioncollection_byrfcmessageid",
          "operation": "byRfcMessageId",
          "objectName": "@happyvertical/smrt-support:SupportInteractionCollection"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SupportPlan",
      "qualifiedName": "@happyvertical/smrt-support:SupportPlan",
      "collection": "supportplans",
      "tableName": "support_plans",
      "packageName": "@happyvertical/smrt-support",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "planKey",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "name",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "description",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "status",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "channels",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "timezone",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "coverage",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "holidays",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "severityDefinitions",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "targets",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "pauseStatuses",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "escalationPolicy",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "availabilityFeeAmount",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "currency",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "includedMinutes",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "overageHourlyRate",
          "type": "decimal",
          "required": false,
          "columnType": "REAL",
          "default": 0
        },
        {
          "name": "onCallHourlyRate",
          "type": "decimal",
          "required": false,
          "columnType": "REAL",
          "default": 0
        },
        {
          "name": "timeApprovalPolicy",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "subscriptionPlanKey",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "metadata",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        }
      ],
      "relationships": [],
      "methods": [
        "getChannels",
        "getCoverage",
        "getEscalationPolicy",
        "getHolidays",
        "getMetadata",
        "getPauseStatuses",
        "getSeverityDefinitions",
        "getTargets",
        "getTimeApprovalPolicy",
        "setChannels",
        "setCoverage",
        "setEscalationPolicy",
        "setHolidays",
        "setMetadata",
        "setPauseStatuses",
        "setSeverityDefinitions",
        "setTargets",
        "setTimeApprovalPolicy",
        "snapshotTerms",
        "targetsForSeverity"
      ],
      "methodSignatures": [
        {
          "name": "getChannels",
          "returns": "string[]"
        },
        {
          "name": "getCoverage",
          "returns": "CoverageWindow[]"
        },
        {
          "name": "getEscalationPolicy",
          "returns": "EscalationStep[]"
        },
        {
          "name": "getHolidays",
          "returns": "string[]"
        },
        {
          "name": "getMetadata",
          "returns": "Record<string, unknown>"
        },
        {
          "name": "getPauseStatuses",
          "returns": "string[]"
        },
        {
          "name": "getSeverityDefinitions",
          "returns": "Record<string, SeverityDefinition>"
        },
        {
          "name": "getTargets",
          "returns": "Record<string, Partial<ServiceTargetMinutes>>"
        },
        {
          "name": "getTimeApprovalPolicy",
          "returns": "TimeApprovalPolicy"
        },
        {
          "name": "setChannels",
          "params": [
            "channels: string[]"
          ],
          "returns": "void"
        },
        {
          "name": "setCoverage",
          "params": [
            "windows: CoverageWindow[]"
          ],
          "returns": "void"
        },
        {
          "name": "setEscalationPolicy",
          "params": [
            "steps: EscalationStep[]"
          ],
          "returns": "void"
        },
        {
          "name": "setHolidays",
          "params": [
            "dates: string[]"
          ],
          "returns": "void"
        },
        {
          "name": "setMetadata",
          "params": [
            "value: Record<string, unknown>"
          ],
          "returns": "void"
        },
        {
          "name": "setPauseStatuses",
          "params": [
            "statuses: string[]"
          ],
          "returns": "void"
        },
        {
          "name": "setSeverityDefinitions",
          "params": [
            "defs: Record<string, SeverityDefinition>"
          ],
          "returns": "void"
        },
        {
          "name": "setTargets",
          "params": [
            "targets: Record<string, Partial<ServiceTargetMinutes>>"
          ],
          "returns": "void"
        },
        {
          "name": "setTimeApprovalPolicy",
          "params": [
            "policy: TimeApprovalPolicy"
          ],
          "returns": "void"
        },
        {
          "name": "snapshotTerms",
          "returns": "Record<string, unknown>"
        },
        {
          "name": "targetsForSeverity",
          "params": [
            "severity: string"
          ],
          "returns": "ServiceTargetMinutes"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "tenant_id",
        "plan_key"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "supportplans.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportPlan",
          "path": "/supportplans",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "supportplans.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportPlan",
          "path": "/supportplans/[id]",
          "method": "GET"
        },
        {
          "kind": "cli",
          "name": "supportplan_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportPlan"
        },
        {
          "kind": "cli",
          "name": "supportplan_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportPlan"
        },
        {
          "kind": "mcp",
          "name": "supportplan_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportPlan"
        },
        {
          "kind": "mcp",
          "name": "supportplan_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportPlan"
        }
      ],
      "withheldSurfaces": [
        {
          "kind": "api",
          "operation": "getChannels",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportPlan"
        },
        {
          "kind": "api",
          "operation": "getCoverage",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportPlan"
        },
        {
          "kind": "api",
          "operation": "getEscalationPolicy",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportPlan"
        },
        {
          "kind": "api",
          "operation": "getHolidays",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportPlan"
        },
        {
          "kind": "api",
          "operation": "getMetadata",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportPlan"
        },
        {
          "kind": "api",
          "operation": "getPauseStatuses",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportPlan"
        },
        {
          "kind": "api",
          "operation": "getSeverityDefinitions",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportPlan"
        },
        {
          "kind": "api",
          "operation": "getTargets",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportPlan"
        },
        {
          "kind": "api",
          "operation": "getTimeApprovalPolicy",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportPlan"
        },
        {
          "kind": "api",
          "operation": "setChannels",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportPlan"
        },
        {
          "kind": "api",
          "operation": "setCoverage",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportPlan"
        },
        {
          "kind": "api",
          "operation": "setEscalationPolicy",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportPlan"
        },
        {
          "kind": "api",
          "operation": "setHolidays",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportPlan"
        },
        {
          "kind": "api",
          "operation": "setMetadata",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportPlan"
        },
        {
          "kind": "api",
          "operation": "setPauseStatuses",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportPlan"
        },
        {
          "kind": "api",
          "operation": "setSeverityDefinitions",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportPlan"
        },
        {
          "kind": "api",
          "operation": "setTargets",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportPlan"
        },
        {
          "kind": "api",
          "operation": "setTimeApprovalPolicy",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportPlan"
        },
        {
          "kind": "api",
          "operation": "snapshotTerms",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportPlan"
        },
        {
          "kind": "api",
          "operation": "targetsForSeverity",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportPlan"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SupportPlanCollection",
      "qualifiedName": "@happyvertical/smrt-support:SupportPlanCollection",
      "collection": "supportplans",
      "tableName": "support_plans",
      "packageName": "@happyvertical/smrt-support",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "byPlanKey"
      ],
      "methodSignatures": [
        {
          "name": "byPlanKey",
          "async": true,
          "params": [
            "planKey: string"
          ],
          "returns": "Promise<SupportPlan | null>"
        }
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "supportplans.byPlanKey",
          "operation": "byPlanKey",
          "objectName": "@happyvertical/smrt-support:SupportPlanCollection",
          "path": "/supportplans/byPlanKey",
          "method": "POST"
        },
        {
          "kind": "cli",
          "name": "supportplancollection_byPlanKey",
          "operation": "byPlanKey",
          "objectName": "@happyvertical/smrt-support:SupportPlanCollection"
        },
        {
          "kind": "mcp",
          "name": "supportplancollection_byplankey",
          "operation": "byPlanKey",
          "objectName": "@happyvertical/smrt-support:SupportPlanCollection"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SupportPolicy",
      "qualifiedName": "@happyvertical/smrt-support:SupportPolicy",
      "collection": "supportpolicies",
      "tableName": "support_policies",
      "packageName": "@happyvertical/smrt-support",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "name",
          "type": "text",
          "required": false,
          "columnType": "TEXT",
          "default": ""
        },
        {
          "name": "planId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportPlan",
          "columnType": "UUID"
        },
        {
          "name": "projectId",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "enabled",
          "type": "boolean",
          "required": false,
          "columnType": "BOOLEAN"
        },
        {
          "name": "autoAcknowledge",
          "type": "boolean",
          "required": false,
          "columnType": "BOOLEAN"
        },
        {
          "name": "autoClassify",
          "type": "boolean",
          "required": false,
          "columnType": "BOOLEAN"
        },
        {
          "name": "autoAnswer",
          "type": "boolean",
          "required": false,
          "columnType": "BOOLEAN"
        },
        {
          "name": "autoTroubleshoot",
          "type": "boolean",
          "required": false,
          "columnType": "BOOLEAN"
        },
        {
          "name": "autoResolve",
          "type": "boolean",
          "required": false,
          "columnType": "BOOLEAN"
        },
        {
          "name": "autoResolveMaxSeverity",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "confidenceThreshold",
          "type": "decimal",
          "required": false,
          "columnType": "REAL",
          "default": 0.7
        },
        {
          "name": "maxAutoAttempts",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 1
        },
        {
          "name": "autoSendEmailReplies",
          "type": "boolean",
          "required": false,
          "columnType": "BOOLEAN"
        },
        {
          "name": "sensitiveCategories",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "allowedTools",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "metadata",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        }
      ],
      "relationships": [
        {
          "name": "planId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportPlan",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "getAllowedTools",
        "getMetadata",
        "getSensitiveCategories",
        "scopeRank",
        "setAllowedTools",
        "setMetadata",
        "setSensitiveCategories"
      ],
      "methodSignatures": [
        {
          "name": "getAllowedTools",
          "returns": "string[]"
        },
        {
          "name": "getMetadata",
          "returns": "Record<string, unknown>"
        },
        {
          "name": "getSensitiveCategories",
          "returns": "string[]"
        },
        {
          "name": "scopeRank",
          "returns": "number"
        },
        {
          "name": "setAllowedTools",
          "params": [
            "tools: string[]"
          ],
          "returns": "void"
        },
        {
          "name": "setMetadata",
          "params": [
            "value: Record<string, unknown>"
          ],
          "returns": "void"
        },
        {
          "name": "setSensitiveCategories",
          "params": [
            "categories: string[]"
          ],
          "returns": "void"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "tenant_id",
        "name"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "supportpolicies.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportPolicy",
          "path": "/supportpolicies",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "supportpolicies.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportPolicy",
          "path": "/supportpolicies/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "supportpolicies.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-support:SupportPolicy",
          "path": "/supportpolicies",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "supportpolicies.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-support:SupportPolicy",
          "path": "/supportpolicies/[id]",
          "method": "PATCH"
        },
        {
          "kind": "api",
          "name": "supportpolicies.delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-support:SupportPolicy",
          "path": "/supportpolicies/[id]",
          "method": "DELETE"
        },
        {
          "kind": "cli",
          "name": "supportpolicy_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportPolicy"
        },
        {
          "kind": "cli",
          "name": "supportpolicy_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportPolicy"
        },
        {
          "kind": "mcp",
          "name": "supportpolicy_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportPolicy"
        },
        {
          "kind": "mcp",
          "name": "supportpolicy_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportPolicy"
        }
      ],
      "withheldSurfaces": [
        {
          "kind": "api",
          "operation": "getAllowedTools",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportPolicy"
        },
        {
          "kind": "api",
          "operation": "getMetadata",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportPolicy"
        },
        {
          "kind": "api",
          "operation": "getSensitiveCategories",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportPolicy"
        },
        {
          "kind": "api",
          "operation": "scopeRank",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportPolicy"
        },
        {
          "kind": "api",
          "operation": "setAllowedTools",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportPolicy"
        },
        {
          "kind": "api",
          "operation": "setMetadata",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportPolicy"
        },
        {
          "kind": "api",
          "operation": "setSensitiveCategories",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportPolicy"
        }
      ],
      "relationshipFeatures": [
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SupportPolicyCollection",
      "qualifiedName": "@happyvertical/smrt-support:SupportPolicyCollection",
      "collection": "supportpolicies",
      "tableName": "support_policies",
      "packageName": "@happyvertical/smrt-support",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "resolveForScope"
      ],
      "methodSignatures": [
        {
          "name": "resolveForScope",
          "async": true,
          "params": [
            "options: object"
          ],
          "returns": "Promise<SupportPolicy | null>"
        }
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "supportpolicies.resolveForScope",
          "operation": "resolveForScope",
          "objectName": "@happyvertical/smrt-support:SupportPolicyCollection",
          "path": "/supportpolicies/resolveForScope",
          "method": "POST"
        },
        {
          "kind": "cli",
          "name": "supportpolicycollection_resolveForScope",
          "operation": "resolveForScope",
          "objectName": "@happyvertical/smrt-support:SupportPolicyCollection"
        },
        {
          "kind": "mcp",
          "name": "supportpolicycollection_resolveforscope",
          "operation": "resolveForScope",
          "objectName": "@happyvertical/smrt-support:SupportPolicyCollection"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SupportServiceTarget",
      "qualifiedName": "@happyvertical/smrt-support:SupportServiceTarget",
      "collection": "supportservicetargets",
      "tableName": "support_service_targets",
      "packageName": "@happyvertical/smrt-support",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "caseId",
          "type": "foreignKey",
          "required": true,
          "related": "SupportCase",
          "columnType": "UUID"
        },
        {
          "name": "targetType",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "cycle",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "severity",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "baseMinutes",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "startedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "dueAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "status",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "pausedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "pausedTotalSeconds",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "satisfiedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "breachedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "cancelledAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "escalationJobId",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "metadata",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        }
      ],
      "relationships": [
        {
          "name": "caseId",
          "type": "foreignKey",
          "required": true,
          "related": "SupportCase",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "checkAndEscalate",
        "getMetadata",
        "isRunning",
        "setMetadata"
      ],
      "methodSignatures": [
        {
          "name": "checkAndEscalate",
          "async": true,
          "params": [
            "args?: Record<string, unknown>",
            "_context?: unknown"
          ],
          "returns": "Promise<CheckAndEscalateResult>"
        },
        {
          "name": "getMetadata",
          "returns": "Record<string, unknown>"
        },
        {
          "name": "isRunning",
          "returns": "boolean"
        },
        {
          "name": "setMetadata",
          "params": [
            "value: Record<string, unknown>"
          ],
          "returns": "void"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "case_id",
        "target_type",
        "cycle"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "supportservicetargets.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportServiceTarget",
          "path": "/supportservicetargets",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "supportservicetargets.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportServiceTarget",
          "path": "/supportservicetargets/[id]",
          "method": "GET"
        },
        {
          "kind": "cli",
          "name": "supportservicetarget_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportServiceTarget"
        },
        {
          "kind": "cli",
          "name": "supportservicetarget_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportServiceTarget"
        },
        {
          "kind": "mcp",
          "name": "supportservicetarget_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportServiceTarget"
        },
        {
          "kind": "mcp",
          "name": "supportservicetarget_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportServiceTarget"
        }
      ],
      "withheldSurfaces": [
        {
          "kind": "api",
          "operation": "checkAndEscalate",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportServiceTarget"
        },
        {
          "kind": "api",
          "operation": "getMetadata",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportServiceTarget"
        },
        {
          "kind": "api",
          "operation": "isRunning",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportServiceTarget"
        },
        {
          "kind": "api",
          "operation": "setMetadata",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportServiceTarget"
        }
      ],
      "relationshipFeatures": [
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SupportServiceTargetCollection",
      "qualifiedName": "@happyvertical/smrt-support:SupportServiceTargetCollection",
      "collection": "supportservicetargets",
      "tableName": "support_service_targets",
      "packageName": "@happyvertical/smrt-support",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "activeTarget",
        "forCase"
      ],
      "methodSignatures": [
        {
          "name": "activeTarget",
          "async": true,
          "params": [
            "caseId: string",
            "targetType: ServiceTargetType"
          ],
          "returns": "Promise<SupportServiceTarget | null>"
        },
        {
          "name": "forCase",
          "async": true,
          "params": [
            "caseId: string"
          ],
          "returns": "Promise<SupportServiceTarget[]>"
        }
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "supportservicetargets.forCase",
          "operation": "forCase",
          "objectName": "@happyvertical/smrt-support:SupportServiceTargetCollection",
          "path": "/supportservicetargets/forCase",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "supportservicetargets.activeTarget",
          "operation": "activeTarget",
          "objectName": "@happyvertical/smrt-support:SupportServiceTargetCollection",
          "path": "/supportservicetargets/activeTarget",
          "method": "POST"
        },
        {
          "kind": "cli",
          "name": "supportservicetargetcollection_forCase",
          "operation": "forCase",
          "objectName": "@happyvertical/smrt-support:SupportServiceTargetCollection"
        },
        {
          "kind": "cli",
          "name": "supportservicetargetcollection_activeTarget",
          "operation": "activeTarget",
          "objectName": "@happyvertical/smrt-support:SupportServiceTargetCollection"
        },
        {
          "kind": "mcp",
          "name": "supportservicetargetcollection_forcase",
          "operation": "forCase",
          "objectName": "@happyvertical/smrt-support:SupportServiceTargetCollection"
        },
        {
          "kind": "mcp",
          "name": "supportservicetargetcollection_activetarget",
          "operation": "activeTarget",
          "objectName": "@happyvertical/smrt-support:SupportServiceTargetCollection"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SupportEscalation",
      "qualifiedName": "@happyvertical/smrt-support:SupportEscalation",
      "collection": "supportescalations",
      "tableName": "support_escalations",
      "packageName": "@happyvertical/smrt-support",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "caseId",
          "type": "foreignKey",
          "required": true,
          "related": "SupportCase",
          "columnType": "UUID"
        },
        {
          "name": "level",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 1
        },
        {
          "name": "reason",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "targetId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportServiceTarget",
          "columnType": "UUID"
        },
        {
          "name": "targetType",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "action",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "fromSpecialistId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportSpecialist",
          "columnType": "UUID"
        },
        {
          "name": "toSpecialistId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportSpecialist",
          "columnType": "UUID"
        },
        {
          "name": "notifiedProfileIds",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "occurredAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "note",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        }
      ],
      "relationships": [
        {
          "name": "caseId",
          "type": "foreignKey",
          "required": true,
          "related": "SupportCase",
          "columnType": "UUID"
        },
        {
          "name": "targetId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportServiceTarget",
          "columnType": "UUID"
        },
        {
          "name": "fromSpecialistId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportSpecialist",
          "columnType": "UUID"
        },
        {
          "name": "toSpecialistId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportSpecialist",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "getNotifiedProfileIds",
        "setNotifiedProfileIds"
      ],
      "methodSignatures": [
        {
          "name": "getNotifiedProfileIds",
          "returns": "string[]"
        },
        {
          "name": "setNotifiedProfileIds",
          "params": [
            "ids: string[]"
          ],
          "returns": "void"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "tenant_id",
        "slug",
        "context"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "supportescalations.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportEscalation",
          "path": "/supportescalations",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "supportescalations.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportEscalation",
          "path": "/supportescalations/[id]",
          "method": "GET"
        },
        {
          "kind": "cli",
          "name": "supportescalation_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportEscalation"
        },
        {
          "kind": "cli",
          "name": "supportescalation_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportEscalation"
        },
        {
          "kind": "mcp",
          "name": "supportescalation_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportEscalation"
        },
        {
          "kind": "mcp",
          "name": "supportescalation_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportEscalation"
        }
      ],
      "withheldSurfaces": [
        {
          "kind": "api",
          "operation": "getNotifiedProfileIds",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportEscalation"
        },
        {
          "kind": "api",
          "operation": "setNotifiedProfileIds",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportEscalation"
        }
      ],
      "relationshipFeatures": [
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SupportEscalationCollection",
      "qualifiedName": "@happyvertical/smrt-support:SupportEscalationCollection",
      "collection": "supportescalations",
      "tableName": "support_escalations",
      "packageName": "@happyvertical/smrt-support",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "forCase"
      ],
      "methodSignatures": [
        {
          "name": "forCase",
          "async": true,
          "params": [
            "caseId: string"
          ],
          "returns": "Promise<SupportEscalation[]>"
        }
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "supportescalations.forCase",
          "operation": "forCase",
          "objectName": "@happyvertical/smrt-support:SupportEscalationCollection",
          "path": "/supportescalations/forCase",
          "method": "POST"
        },
        {
          "kind": "cli",
          "name": "supportescalationcollection_forCase",
          "operation": "forCase",
          "objectName": "@happyvertical/smrt-support:SupportEscalationCollection"
        },
        {
          "kind": "mcp",
          "name": "supportescalationcollection_forcase",
          "operation": "forCase",
          "objectName": "@happyvertical/smrt-support:SupportEscalationCollection"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SupportCharge",
      "qualifiedName": "@happyvertical/smrt-support:SupportCharge",
      "collection": "supportcharges",
      "tableName": "support_charges",
      "packageName": "@happyvertical/smrt-support",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "timeEntryId",
          "type": "foreignKey",
          "required": true,
          "related": "ServiceTimeEntry",
          "columnType": "UUID"
        },
        {
          "name": "caseId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportCase",
          "columnType": "UUID"
        },
        {
          "name": "planId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportPlan",
          "columnType": "UUID"
        },
        {
          "name": "amount",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "currency",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "billableSeconds",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "includedSecondsApplied",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "rateSnapshot",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "status",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "finalizedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "metadata",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        }
      ],
      "relationships": [
        {
          "name": "timeEntryId",
          "type": "foreignKey",
          "required": true,
          "related": "ServiceTimeEntry",
          "columnType": "UUID"
        },
        {
          "name": "caseId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportCase",
          "columnType": "UUID"
        },
        {
          "name": "planId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportPlan",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "getRateSnapshot",
        "setRateSnapshot"
      ],
      "methodSignatures": [
        {
          "name": "getRateSnapshot",
          "returns": "Record<string, unknown>"
        },
        {
          "name": "setRateSnapshot",
          "params": [
            "value: Record<string, unknown>"
          ],
          "returns": "void"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "time_entry_id"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "supportcharges.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportCharge",
          "path": "/supportcharges",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "supportcharges.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportCharge",
          "path": "/supportcharges/[id]",
          "method": "GET"
        },
        {
          "kind": "cli",
          "name": "supportcharge_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportCharge"
        },
        {
          "kind": "cli",
          "name": "supportcharge_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportCharge"
        },
        {
          "kind": "mcp",
          "name": "supportcharge_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportCharge"
        },
        {
          "kind": "mcp",
          "name": "supportcharge_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportCharge"
        }
      ],
      "withheldSurfaces": [
        {
          "kind": "api",
          "operation": "getRateSnapshot",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportCharge"
        },
        {
          "kind": "api",
          "operation": "setRateSnapshot",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportCharge"
        }
      ],
      "relationshipFeatures": [
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SupportChargeCollection",
      "qualifiedName": "@happyvertical/smrt-support:SupportChargeCollection",
      "collection": "supportcharges",
      "tableName": "support_charges",
      "packageName": "@happyvertical/smrt-support",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "forCase",
        "forTimeEntry"
      ],
      "methodSignatures": [
        {
          "name": "forCase",
          "async": true,
          "params": [
            "caseId: string"
          ],
          "returns": "Promise<SupportCharge[]>"
        },
        {
          "name": "forTimeEntry",
          "async": true,
          "params": [
            "timeEntryId: string"
          ],
          "returns": "Promise<SupportCharge | null>"
        }
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "supportcharges.forTimeEntry",
          "operation": "forTimeEntry",
          "objectName": "@happyvertical/smrt-support:SupportChargeCollection",
          "path": "/supportcharges/forTimeEntry",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "supportcharges.forCase",
          "operation": "forCase",
          "objectName": "@happyvertical/smrt-support:SupportChargeCollection",
          "path": "/supportcharges/forCase",
          "method": "POST"
        },
        {
          "kind": "cli",
          "name": "supportchargecollection_forTimeEntry",
          "operation": "forTimeEntry",
          "objectName": "@happyvertical/smrt-support:SupportChargeCollection"
        },
        {
          "kind": "cli",
          "name": "supportchargecollection_forCase",
          "operation": "forCase",
          "objectName": "@happyvertical/smrt-support:SupportChargeCollection"
        },
        {
          "kind": "mcp",
          "name": "supportchargecollection_fortimeentry",
          "operation": "forTimeEntry",
          "objectName": "@happyvertical/smrt-support:SupportChargeCollection"
        },
        {
          "kind": "mcp",
          "name": "supportchargecollection_forcase",
          "operation": "forCase",
          "objectName": "@happyvertical/smrt-support:SupportChargeCollection"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SupportCompensation",
      "qualifiedName": "@happyvertical/smrt-support:SupportCompensation",
      "collection": "supportcompensations",
      "tableName": "support_compensations",
      "packageName": "@happyvertical/smrt-support",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "timeEntryId",
          "type": "foreignKey",
          "required": true,
          "related": "ServiceTimeEntry",
          "columnType": "UUID"
        },
        {
          "name": "specialistId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportSpecialist",
          "columnType": "UUID"
        },
        {
          "name": "compensationPlanId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportCompensationPlan",
          "columnType": "UUID"
        },
        {
          "name": "amount",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "currency",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "payableSeconds",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "rateSnapshot",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "status",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "finalizedAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "metadata",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        }
      ],
      "relationships": [
        {
          "name": "timeEntryId",
          "type": "foreignKey",
          "required": true,
          "related": "ServiceTimeEntry",
          "columnType": "UUID"
        },
        {
          "name": "specialistId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportSpecialist",
          "columnType": "UUID"
        },
        {
          "name": "compensationPlanId",
          "type": "foreignKey",
          "required": false,
          "related": "SupportCompensationPlan",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "getRateSnapshot",
        "setRateSnapshot"
      ],
      "methodSignatures": [
        {
          "name": "getRateSnapshot",
          "returns": "Record<string, unknown>"
        },
        {
          "name": "setRateSnapshot",
          "params": [
            "value: Record<string, unknown>"
          ],
          "returns": "void"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "time_entry_id"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "supportcompensations.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportCompensation",
          "path": "/supportcompensations",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "supportcompensations.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportCompensation",
          "path": "/supportcompensations/[id]",
          "method": "GET"
        },
        {
          "kind": "cli",
          "name": "supportcompensation_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportCompensation"
        },
        {
          "kind": "cli",
          "name": "supportcompensation_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportCompensation"
        },
        {
          "kind": "mcp",
          "name": "supportcompensation_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportCompensation"
        },
        {
          "kind": "mcp",
          "name": "supportcompensation_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportCompensation"
        }
      ],
      "withheldSurfaces": [
        {
          "kind": "api",
          "operation": "getRateSnapshot",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportCompensation"
        },
        {
          "kind": "api",
          "operation": "setRateSnapshot",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportCompensation"
        }
      ],
      "relationshipFeatures": [
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SupportCompensationCollection",
      "qualifiedName": "@happyvertical/smrt-support:SupportCompensationCollection",
      "collection": "supportcompensations",
      "tableName": "support_compensations",
      "packageName": "@happyvertical/smrt-support",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "forSpecialist",
        "forTimeEntry"
      ],
      "methodSignatures": [
        {
          "name": "forSpecialist",
          "async": true,
          "params": [
            "specialistId: string"
          ],
          "returns": "Promise<SupportCompensation[]>"
        },
        {
          "name": "forTimeEntry",
          "async": true,
          "params": [
            "timeEntryId: string"
          ],
          "returns": "Promise<SupportCompensation | null>"
        }
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "supportcompensations.forTimeEntry",
          "operation": "forTimeEntry",
          "objectName": "@happyvertical/smrt-support:SupportCompensationCollection",
          "path": "/supportcompensations/forTimeEntry",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "supportcompensations.forSpecialist",
          "operation": "forSpecialist",
          "objectName": "@happyvertical/smrt-support:SupportCompensationCollection",
          "path": "/supportcompensations/forSpecialist",
          "method": "POST"
        },
        {
          "kind": "cli",
          "name": "supportcompensationcollection_forTimeEntry",
          "operation": "forTimeEntry",
          "objectName": "@happyvertical/smrt-support:SupportCompensationCollection"
        },
        {
          "kind": "cli",
          "name": "supportcompensationcollection_forSpecialist",
          "operation": "forSpecialist",
          "objectName": "@happyvertical/smrt-support:SupportCompensationCollection"
        },
        {
          "kind": "mcp",
          "name": "supportcompensationcollection_fortimeentry",
          "operation": "forTimeEntry",
          "objectName": "@happyvertical/smrt-support:SupportCompensationCollection"
        },
        {
          "kind": "mcp",
          "name": "supportcompensationcollection_forspecialist",
          "operation": "forSpecialist",
          "objectName": "@happyvertical/smrt-support:SupportCompensationCollection"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SupportSpecialist",
      "qualifiedName": "@happyvertical/smrt-support:SupportSpecialist",
      "collection": "supportspecialists",
      "tableName": "support_specialists",
      "packageName": "@happyvertical/smrt-support",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "profileId",
          "type": "crossPackageRef",
          "required": true,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "displayName",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "status",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "languages",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "timezone",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "maxConcurrentCases",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 10
        },
        {
          "name": "onCallPriority",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "notes",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "metadata",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        }
      ],
      "relationships": [
        {
          "name": "profileId",
          "type": "crossPackageRef",
          "required": true,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "getLanguages",
        "getMetadata",
        "isActive",
        "setLanguages",
        "setMetadata"
      ],
      "methodSignatures": [
        {
          "name": "getLanguages",
          "returns": "string[]"
        },
        {
          "name": "getMetadata",
          "returns": "Record<string, unknown>"
        },
        {
          "name": "isActive",
          "returns": "boolean"
        },
        {
          "name": "setLanguages",
          "params": [
            "languages: string[]"
          ],
          "returns": "void"
        },
        {
          "name": "setMetadata",
          "params": [
            "value: Record<string, unknown>"
          ],
          "returns": "void"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "tenant_id",
        "profile_id"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "supportspecialists.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportSpecialist",
          "path": "/supportspecialists",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "supportspecialists.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportSpecialist",
          "path": "/supportspecialists/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "supportspecialists.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-support:SupportSpecialist",
          "path": "/supportspecialists",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "supportspecialists.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-support:SupportSpecialist",
          "path": "/supportspecialists/[id]",
          "method": "PATCH"
        },
        {
          "kind": "api",
          "name": "supportspecialists.delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-support:SupportSpecialist",
          "path": "/supportspecialists/[id]",
          "method": "DELETE"
        },
        {
          "kind": "cli",
          "name": "supportspecialist_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportSpecialist"
        },
        {
          "kind": "cli",
          "name": "supportspecialist_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportSpecialist"
        },
        {
          "kind": "mcp",
          "name": "supportspecialist_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportSpecialist"
        },
        {
          "kind": "mcp",
          "name": "supportspecialist_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportSpecialist"
        }
      ],
      "withheldSurfaces": [
        {
          "kind": "api",
          "operation": "getLanguages",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportSpecialist"
        },
        {
          "kind": "api",
          "operation": "getMetadata",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportSpecialist"
        },
        {
          "kind": "api",
          "operation": "isActive",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportSpecialist"
        },
        {
          "kind": "api",
          "operation": "setLanguages",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportSpecialist"
        },
        {
          "kind": "api",
          "operation": "setMetadata",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportSpecialist"
        }
      ],
      "relationshipFeatures": [
        "crossPackageRef",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SupportSpecialistCollection",
      "qualifiedName": "@happyvertical/smrt-support:SupportSpecialistCollection",
      "collection": "supportspecialists",
      "tableName": "support_specialists",
      "packageName": "@happyvertical/smrt-support",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "byProfile",
        "findActive"
      ],
      "methodSignatures": [
        {
          "name": "byProfile",
          "async": true,
          "params": [
            "profileId: string"
          ],
          "returns": "Promise<SupportSpecialist | null>"
        },
        {
          "name": "findActive",
          "async": true,
          "returns": "Promise<SupportSpecialist[]>"
        }
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "supportspecialists.findActive",
          "operation": "findActive",
          "objectName": "@happyvertical/smrt-support:SupportSpecialistCollection",
          "path": "/supportspecialists/findActive",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "supportspecialists.byProfile",
          "operation": "byProfile",
          "objectName": "@happyvertical/smrt-support:SupportSpecialistCollection",
          "path": "/supportspecialists/byProfile",
          "method": "POST"
        },
        {
          "kind": "cli",
          "name": "supportspecialistcollection_findActive",
          "operation": "findActive",
          "objectName": "@happyvertical/smrt-support:SupportSpecialistCollection"
        },
        {
          "kind": "cli",
          "name": "supportspecialistcollection_byProfile",
          "operation": "byProfile",
          "objectName": "@happyvertical/smrt-support:SupportSpecialistCollection"
        },
        {
          "kind": "mcp",
          "name": "supportspecialistcollection_findactive",
          "operation": "findActive",
          "objectName": "@happyvertical/smrt-support:SupportSpecialistCollection"
        },
        {
          "kind": "mcp",
          "name": "supportspecialistcollection_byprofile",
          "operation": "byProfile",
          "objectName": "@happyvertical/smrt-support:SupportSpecialistCollection"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SupportQualification",
      "qualifiedName": "@happyvertical/smrt-support:SupportQualification",
      "collection": "supportqualifications",
      "tableName": "support_qualifications",
      "packageName": "@happyvertical/smrt-support",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "specialistId",
          "type": "foreignKey",
          "required": true,
          "related": "SupportSpecialist",
          "columnType": "UUID"
        },
        {
          "name": "projectId",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "level",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "effectiveFrom",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "effectiveTo",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "grantedByProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        },
        {
          "name": "notes",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        }
      ],
      "relationships": [
        {
          "name": "specialistId",
          "type": "foreignKey",
          "required": true,
          "related": "SupportSpecialist",
          "columnType": "UUID"
        },
        {
          "name": "grantedByProfileId",
          "type": "crossPackageRef",
          "required": false,
          "related": "@happyvertical/smrt-profiles:Profile",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "isEffectiveAt"
      ],
      "methodSignatures": [
        {
          "name": "isEffectiveAt",
          "params": [
            "at?: Date"
          ],
          "returns": "boolean"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "specialist_id",
        "project_id"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "supportqualifications.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportQualification",
          "path": "/supportqualifications",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "supportqualifications.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportQualification",
          "path": "/supportqualifications/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "supportqualifications.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-support:SupportQualification",
          "path": "/supportqualifications",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "supportqualifications.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-support:SupportQualification",
          "path": "/supportqualifications/[id]",
          "method": "PATCH"
        },
        {
          "kind": "api",
          "name": "supportqualifications.delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-support:SupportQualification",
          "path": "/supportqualifications/[id]",
          "method": "DELETE"
        },
        {
          "kind": "cli",
          "name": "supportqualification_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportQualification"
        },
        {
          "kind": "cli",
          "name": "supportqualification_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportQualification"
        },
        {
          "kind": "mcp",
          "name": "supportqualification_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportQualification"
        },
        {
          "kind": "mcp",
          "name": "supportqualification_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportQualification"
        }
      ],
      "withheldSurfaces": [
        {
          "kind": "api",
          "operation": "isEffectiveAt",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportQualification"
        }
      ],
      "relationshipFeatures": [
        "crossPackageRef",
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SupportQualificationCollection",
      "qualifiedName": "@happyvertical/smrt-support:SupportQualificationCollection",
      "collection": "supportqualifications",
      "tableName": "support_qualifications",
      "packageName": "@happyvertical/smrt-support",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "forProject",
        "forSpecialist"
      ],
      "methodSignatures": [
        {
          "name": "forProject",
          "async": true,
          "params": [
            "projectId: string"
          ],
          "returns": "Promise<SupportQualification[]>"
        },
        {
          "name": "forSpecialist",
          "async": true,
          "params": [
            "specialistId: string"
          ],
          "returns": "Promise<SupportQualification[]>"
        }
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "supportqualifications.forSpecialist",
          "operation": "forSpecialist",
          "objectName": "@happyvertical/smrt-support:SupportQualificationCollection",
          "path": "/supportqualifications/forSpecialist",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "supportqualifications.forProject",
          "operation": "forProject",
          "objectName": "@happyvertical/smrt-support:SupportQualificationCollection",
          "path": "/supportqualifications/forProject",
          "method": "POST"
        },
        {
          "kind": "cli",
          "name": "supportqualificationcollection_forSpecialist",
          "operation": "forSpecialist",
          "objectName": "@happyvertical/smrt-support:SupportQualificationCollection"
        },
        {
          "kind": "cli",
          "name": "supportqualificationcollection_forProject",
          "operation": "forProject",
          "objectName": "@happyvertical/smrt-support:SupportQualificationCollection"
        },
        {
          "kind": "mcp",
          "name": "supportqualificationcollection_forspecialist",
          "operation": "forSpecialist",
          "objectName": "@happyvertical/smrt-support:SupportQualificationCollection"
        },
        {
          "kind": "mcp",
          "name": "supportqualificationcollection_forproject",
          "operation": "forProject",
          "objectName": "@happyvertical/smrt-support:SupportQualificationCollection"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SupportAvailability",
      "qualifiedName": "@happyvertical/smrt-support:SupportAvailability",
      "collection": "supportavailabilities",
      "tableName": "support_availability_windows",
      "packageName": "@happyvertical/smrt-support",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "specialistId",
          "type": "foreignKey",
          "required": true,
          "related": "SupportSpecialist",
          "columnType": "UUID"
        },
        {
          "name": "kind",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "weekday",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER"
        },
        {
          "name": "startMinute",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "endMinute",
          "type": "integer",
          "required": false,
          "columnType": "INTEGER",
          "default": 0
        },
        {
          "name": "startsAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "endsAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "notes",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        }
      ],
      "relationships": [
        {
          "name": "specialistId",
          "type": "foreignKey",
          "required": true,
          "related": "SupportSpecialist",
          "columnType": "UUID"
        }
      ],
      "methods": [],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "tenant_id",
        "slug",
        "context"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "supportavailabilities.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportAvailability",
          "path": "/supportavailabilities",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "supportavailabilities.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportAvailability",
          "path": "/supportavailabilities/[id]",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "supportavailabilities.create",
          "operation": "create",
          "objectName": "@happyvertical/smrt-support:SupportAvailability",
          "path": "/supportavailabilities",
          "method": "POST"
        },
        {
          "kind": "api",
          "name": "supportavailabilities.update",
          "operation": "update",
          "objectName": "@happyvertical/smrt-support:SupportAvailability",
          "path": "/supportavailabilities/[id]",
          "method": "PATCH"
        },
        {
          "kind": "api",
          "name": "supportavailabilities.delete",
          "operation": "delete",
          "objectName": "@happyvertical/smrt-support:SupportAvailability",
          "path": "/supportavailabilities/[id]",
          "method": "DELETE"
        },
        {
          "kind": "cli",
          "name": "supportavailability_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportAvailability"
        },
        {
          "kind": "cli",
          "name": "supportavailability_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportAvailability"
        },
        {
          "kind": "mcp",
          "name": "supportavailability_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportAvailability"
        },
        {
          "kind": "mcp",
          "name": "supportavailability_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportAvailability"
        }
      ],
      "relationshipFeatures": [
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SupportAvailabilityCollection",
      "qualifiedName": "@happyvertical/smrt-support:SupportAvailabilityCollection",
      "collection": "supportavailabilities",
      "tableName": "support_availability_windows",
      "packageName": "@happyvertical/smrt-support",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "forSpecialist"
      ],
      "methodSignatures": [
        {
          "name": "forSpecialist",
          "async": true,
          "params": [
            "specialistId: string"
          ],
          "returns": "Promise<SupportAvailability[]>"
        }
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "supportavailabilities.forSpecialist",
          "operation": "forSpecialist",
          "objectName": "@happyvertical/smrt-support:SupportAvailabilityCollection",
          "path": "/supportavailabilities/forSpecialist",
          "method": "POST"
        },
        {
          "kind": "cli",
          "name": "supportavailabilitycollection_forSpecialist",
          "operation": "forSpecialist",
          "objectName": "@happyvertical/smrt-support:SupportAvailabilityCollection"
        },
        {
          "kind": "mcp",
          "name": "supportavailabilitycollection_forspecialist",
          "operation": "forSpecialist",
          "objectName": "@happyvertical/smrt-support:SupportAvailabilityCollection"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SupportWorkLink",
      "qualifiedName": "@happyvertical/smrt-support:SupportWorkLink",
      "collection": "supportworklinks",
      "tableName": "support_work_links",
      "packageName": "@happyvertical/smrt-support",
      "extends": "SmrtObject",
      "fields": [
        {
          "name": "tenantId",
          "type": "text",
          "required": false,
          "columnType": "UUID"
        },
        {
          "name": "caseId",
          "type": "foreignKey",
          "required": true,
          "related": "SupportCase",
          "columnType": "UUID"
        },
        {
          "name": "linkKind",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "targetType",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "targetId",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "targetLabel",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "externalUrl",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "status",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        },
        {
          "name": "lastStatusAt",
          "type": "datetime",
          "required": false,
          "columnType": "TIMESTAMP"
        },
        {
          "name": "metadata",
          "type": "text",
          "required": false,
          "columnType": "TEXT"
        }
      ],
      "relationships": [
        {
          "name": "caseId",
          "type": "foreignKey",
          "required": true,
          "related": "SupportCase",
          "columnType": "UUID"
        }
      ],
      "methods": [
        "getMetadata",
        "setMetadata"
      ],
      "methodSignatures": [
        {
          "name": "getMetadata",
          "returns": "Record<string, unknown>"
        },
        {
          "name": "setMetadata",
          "params": [
            "value: Record<string, unknown>"
          ],
          "returns": "void"
        }
      ],
      "tenant": {
        "scoped": true,
        "mode": "optional",
        "field": "tenantId"
      },
      "conflictColumns": [
        "case_id",
        "target_type",
        "target_id"
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "supportworklinks.list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportWorkLink",
          "path": "/supportworklinks",
          "method": "GET"
        },
        {
          "kind": "api",
          "name": "supportworklinks.get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportWorkLink",
          "path": "/supportworklinks/[id]",
          "method": "GET"
        },
        {
          "kind": "cli",
          "name": "supportworklink_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportWorkLink"
        },
        {
          "kind": "cli",
          "name": "supportworklink_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportWorkLink"
        },
        {
          "kind": "mcp",
          "name": "supportworklink_list",
          "operation": "list",
          "objectName": "@happyvertical/smrt-support:SupportWorkLink"
        },
        {
          "kind": "mcp",
          "name": "supportworklink_get",
          "operation": "get",
          "objectName": "@happyvertical/smrt-support:SupportWorkLink"
        }
      ],
      "withheldSurfaces": [
        {
          "kind": "api",
          "operation": "getMetadata",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportWorkLink"
        },
        {
          "kind": "api",
          "operation": "setMetadata",
          "code": "not-included",
          "reason": "not listed in api.include",
          "objectName": "@happyvertical/smrt-support:SupportWorkLink"
        }
      ],
      "relationshipFeatures": [
        "foreignKey",
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    },
    {
      "name": "SupportWorkLinkCollection",
      "qualifiedName": "@happyvertical/smrt-support:SupportWorkLinkCollection",
      "collection": "supportworklinks",
      "tableName": "support_work_links",
      "packageName": "@happyvertical/smrt-support",
      "extends": "SmrtCollection",
      "fields": [],
      "relationships": [],
      "methods": [
        "forCase"
      ],
      "methodSignatures": [
        {
          "name": "forCase",
          "async": true,
          "params": [
            "caseId: string"
          ],
          "returns": "Promise<SupportWorkLink[]>"
        }
      ],
      "surfaces": [
        {
          "kind": "api",
          "name": "supportworklinks.forCase",
          "operation": "forCase",
          "objectName": "@happyvertical/smrt-support:SupportWorkLinkCollection",
          "path": "/supportworklinks/forCase",
          "method": "POST"
        },
        {
          "kind": "cli",
          "name": "supportworklinkcollection_forCase",
          "operation": "forCase",
          "objectName": "@happyvertical/smrt-support:SupportWorkLinkCollection"
        },
        {
          "kind": "mcp",
          "name": "supportworklinkcollection_forcase",
          "operation": "forCase",
          "objectName": "@happyvertical/smrt-support:SupportWorkLinkCollection"
        }
      ],
      "relationshipFeatures": [
        "uuidColumns"
      ],
      "tags": [],
      "risks": []
    }
  ],
  "surfaces": [
    {
      "kind": "api",
      "name": "servicetimeentries.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:ServiceTimeEntry",
      "path": "/servicetimeentries",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "servicetimeentries.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:ServiceTimeEntry",
      "path": "/servicetimeentries/[id]",
      "method": "GET"
    },
    {
      "kind": "cli",
      "name": "servicetimeentry_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:ServiceTimeEntry"
    },
    {
      "kind": "cli",
      "name": "servicetimeentry_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:ServiceTimeEntry"
    },
    {
      "kind": "mcp",
      "name": "servicetimeentry_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:ServiceTimeEntry"
    },
    {
      "kind": "mcp",
      "name": "servicetimeentry_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:ServiceTimeEntry"
    },
    {
      "kind": "api",
      "name": "servicetimeentries.forCase",
      "operation": "forCase",
      "objectName": "@happyvertical/smrt-support:ServiceTimeEntryCollection",
      "path": "/servicetimeentries/forCase",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "servicetimeentries.forSpecialist",
      "operation": "forSpecialist",
      "objectName": "@happyvertical/smrt-support:ServiceTimeEntryCollection",
      "path": "/servicetimeentries/forSpecialist",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "servicetimeentries.pendingApproval",
      "operation": "pendingApproval",
      "objectName": "@happyvertical/smrt-support:ServiceTimeEntryCollection",
      "path": "/servicetimeentries/pendingApproval",
      "method": "POST"
    },
    {
      "kind": "cli",
      "name": "servicetimeentrycollection_forCase",
      "operation": "forCase",
      "objectName": "@happyvertical/smrt-support:ServiceTimeEntryCollection"
    },
    {
      "kind": "cli",
      "name": "servicetimeentrycollection_forSpecialist",
      "operation": "forSpecialist",
      "objectName": "@happyvertical/smrt-support:ServiceTimeEntryCollection"
    },
    {
      "kind": "cli",
      "name": "servicetimeentrycollection_pendingApproval",
      "operation": "pendingApproval",
      "objectName": "@happyvertical/smrt-support:ServiceTimeEntryCollection"
    },
    {
      "kind": "mcp",
      "name": "servicetimeentrycollection_forcase",
      "operation": "forCase",
      "objectName": "@happyvertical/smrt-support:ServiceTimeEntryCollection"
    },
    {
      "kind": "mcp",
      "name": "servicetimeentrycollection_forspecialist",
      "operation": "forSpecialist",
      "objectName": "@happyvertical/smrt-support:ServiceTimeEntryCollection"
    },
    {
      "kind": "mcp",
      "name": "servicetimeentrycollection_pendingapproval",
      "operation": "pendingApproval",
      "objectName": "@happyvertical/smrt-support:ServiceTimeEntryCollection"
    },
    {
      "kind": "api",
      "name": "supportairuns.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportAiRun",
      "path": "/supportairuns",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "supportairuns.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportAiRun",
      "path": "/supportairuns/[id]",
      "method": "GET"
    },
    {
      "kind": "cli",
      "name": "supportairun_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportAiRun"
    },
    {
      "kind": "cli",
      "name": "supportairun_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportAiRun"
    },
    {
      "kind": "mcp",
      "name": "supportairun_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportAiRun"
    },
    {
      "kind": "mcp",
      "name": "supportairun_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportAiRun"
    },
    {
      "kind": "api",
      "name": "supportairuns.forCase",
      "operation": "forCase",
      "objectName": "@happyvertical/smrt-support:SupportAiRunCollection",
      "path": "/supportairuns/forCase",
      "method": "POST"
    },
    {
      "kind": "cli",
      "name": "supportairuncollection_forCase",
      "operation": "forCase",
      "objectName": "@happyvertical/smrt-support:SupportAiRunCollection"
    },
    {
      "kind": "mcp",
      "name": "supportairuncollection_forcase",
      "operation": "forCase",
      "objectName": "@happyvertical/smrt-support:SupportAiRunCollection"
    },
    {
      "kind": "api",
      "name": "supportcaseevents.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportCaseEvent",
      "path": "/supportcaseevents",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "supportcaseevents.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportCaseEvent",
      "path": "/supportcaseevents/[id]",
      "method": "GET"
    },
    {
      "kind": "cli",
      "name": "supportcaseevent_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportCaseEvent"
    },
    {
      "kind": "cli",
      "name": "supportcaseevent_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportCaseEvent"
    },
    {
      "kind": "mcp",
      "name": "supportcaseevent_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportCaseEvent"
    },
    {
      "kind": "mcp",
      "name": "supportcaseevent_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportCaseEvent"
    },
    {
      "kind": "api",
      "name": "supportcaseevents.forCase",
      "operation": "forCase",
      "objectName": "@happyvertical/smrt-support:SupportCaseEventCollection",
      "path": "/supportcaseevents/forCase",
      "method": "POST"
    },
    {
      "kind": "cli",
      "name": "supportcaseeventcollection_forCase",
      "operation": "forCase",
      "objectName": "@happyvertical/smrt-support:SupportCaseEventCollection"
    },
    {
      "kind": "mcp",
      "name": "supportcaseeventcollection_forcase",
      "operation": "forCase",
      "objectName": "@happyvertical/smrt-support:SupportCaseEventCollection"
    },
    {
      "kind": "api",
      "name": "supportcases.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportCase",
      "path": "/supportcases",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "supportcases.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportCase",
      "path": "/supportcases/[id]",
      "method": "GET"
    },
    {
      "kind": "cli",
      "name": "supportcase_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportCase"
    },
    {
      "kind": "cli",
      "name": "supportcase_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportCase"
    },
    {
      "kind": "mcp",
      "name": "supportcase_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportCase"
    },
    {
      "kind": "mcp",
      "name": "supportcase_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportCase"
    },
    {
      "kind": "api",
      "name": "supportcases.findOpenByThreadKey",
      "operation": "findOpenByThreadKey",
      "objectName": "@happyvertical/smrt-support:SupportCaseCollection",
      "path": "/supportcases/findOpenByThreadKey",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "supportcases.findQueue",
      "operation": "findQueue",
      "objectName": "@happyvertical/smrt-support:SupportCaseCollection",
      "path": "/supportcases/findQueue",
      "method": "POST"
    },
    {
      "kind": "cli",
      "name": "supportcasecollection_findOpenByThreadKey",
      "operation": "findOpenByThreadKey",
      "objectName": "@happyvertical/smrt-support:SupportCaseCollection"
    },
    {
      "kind": "cli",
      "name": "supportcasecollection_findQueue",
      "operation": "findQueue",
      "objectName": "@happyvertical/smrt-support:SupportCaseCollection"
    },
    {
      "kind": "mcp",
      "name": "supportcasecollection_findopenbythreadkey",
      "operation": "findOpenByThreadKey",
      "objectName": "@happyvertical/smrt-support:SupportCaseCollection"
    },
    {
      "kind": "mcp",
      "name": "supportcasecollection_findqueue",
      "operation": "findQueue",
      "objectName": "@happyvertical/smrt-support:SupportCaseCollection"
    },
    {
      "kind": "api",
      "name": "supportchannelbindings.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportChannelBinding",
      "path": "/supportchannelbindings",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "supportchannelbindings.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportChannelBinding",
      "path": "/supportchannelbindings/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "supportchannelbindings.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-support:SupportChannelBinding",
      "path": "/supportchannelbindings",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "supportchannelbindings.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-support:SupportChannelBinding",
      "path": "/supportchannelbindings/[id]",
      "method": "PATCH"
    },
    {
      "kind": "api",
      "name": "supportchannelbindings.delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-support:SupportChannelBinding",
      "path": "/supportchannelbindings/[id]",
      "method": "DELETE"
    },
    {
      "kind": "cli",
      "name": "supportchannelbinding_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportChannelBinding"
    },
    {
      "kind": "cli",
      "name": "supportchannelbinding_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportChannelBinding"
    },
    {
      "kind": "mcp",
      "name": "supportchannelbinding_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportChannelBinding"
    },
    {
      "kind": "mcp",
      "name": "supportchannelbinding_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportChannelBinding"
    },
    {
      "kind": "api",
      "name": "supportchannelbindings.findForTarget",
      "operation": "findForTarget",
      "objectName": "@happyvertical/smrt-support:SupportChannelBindingCollection",
      "path": "/supportchannelbindings/findForTarget",
      "method": "POST"
    },
    {
      "kind": "cli",
      "name": "supportchannelbindingcollection_findForTarget",
      "operation": "findForTarget",
      "objectName": "@happyvertical/smrt-support:SupportChannelBindingCollection"
    },
    {
      "kind": "mcp",
      "name": "supportchannelbindingcollection_findfortarget",
      "operation": "findForTarget",
      "objectName": "@happyvertical/smrt-support:SupportChannelBindingCollection"
    },
    {
      "kind": "api",
      "name": "supportcompensationplans.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportCompensationPlan",
      "path": "/supportcompensationplans",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "supportcompensationplans.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportCompensationPlan",
      "path": "/supportcompensationplans/[id]",
      "method": "GET"
    },
    {
      "kind": "cli",
      "name": "supportcompensationplan_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportCompensationPlan"
    },
    {
      "kind": "cli",
      "name": "supportcompensationplan_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportCompensationPlan"
    },
    {
      "kind": "mcp",
      "name": "supportcompensationplan_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportCompensationPlan"
    },
    {
      "kind": "mcp",
      "name": "supportcompensationplan_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportCompensationPlan"
    },
    {
      "kind": "api",
      "name": "supportcompensationplans.resolveForSpecialist",
      "operation": "resolveForSpecialist",
      "objectName": "@happyvertical/smrt-support:SupportCompensationPlanCollection",
      "path": "/supportcompensationplans/resolveForSpecialist",
      "method": "POST"
    },
    {
      "kind": "cli",
      "name": "supportcompensationplancollection_resolveForSpecialist",
      "operation": "resolveForSpecialist",
      "objectName": "@happyvertical/smrt-support:SupportCompensationPlanCollection"
    },
    {
      "kind": "mcp",
      "name": "supportcompensationplancollection_resolveforspecialist",
      "operation": "resolveForSpecialist",
      "objectName": "@happyvertical/smrt-support:SupportCompensationPlanCollection"
    },
    {
      "kind": "api",
      "name": "supportinteractions.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportInteraction",
      "path": "/supportinteractions",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "supportinteractions.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportInteraction",
      "path": "/supportinteractions/[id]",
      "method": "GET"
    },
    {
      "kind": "cli",
      "name": "supportinteraction_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportInteraction"
    },
    {
      "kind": "cli",
      "name": "supportinteraction_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportInteraction"
    },
    {
      "kind": "mcp",
      "name": "supportinteraction_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportInteraction"
    },
    {
      "kind": "mcp",
      "name": "supportinteraction_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportInteraction"
    },
    {
      "kind": "api",
      "name": "supportinteractions.forCase",
      "operation": "forCase",
      "objectName": "@happyvertical/smrt-support:SupportInteractionCollection",
      "path": "/supportinteractions/forCase",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "supportinteractions.bySourceKey",
      "operation": "bySourceKey",
      "objectName": "@happyvertical/smrt-support:SupportInteractionCollection",
      "path": "/supportinteractions/bySourceKey",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "supportinteractions.byRfcMessageId",
      "operation": "byRfcMessageId",
      "objectName": "@happyvertical/smrt-support:SupportInteractionCollection",
      "path": "/supportinteractions/byRfcMessageId",
      "method": "POST"
    },
    {
      "kind": "cli",
      "name": "supportinteractioncollection_forCase",
      "operation": "forCase",
      "objectName": "@happyvertical/smrt-support:SupportInteractionCollection"
    },
    {
      "kind": "cli",
      "name": "supportinteractioncollection_bySourceKey",
      "operation": "bySourceKey",
      "objectName": "@happyvertical/smrt-support:SupportInteractionCollection"
    },
    {
      "kind": "cli",
      "name": "supportinteractioncollection_byRfcMessageId",
      "operation": "byRfcMessageId",
      "objectName": "@happyvertical/smrt-support:SupportInteractionCollection"
    },
    {
      "kind": "mcp",
      "name": "supportinteractioncollection_forcase",
      "operation": "forCase",
      "objectName": "@happyvertical/smrt-support:SupportInteractionCollection"
    },
    {
      "kind": "mcp",
      "name": "supportinteractioncollection_bysourcekey",
      "operation": "bySourceKey",
      "objectName": "@happyvertical/smrt-support:SupportInteractionCollection"
    },
    {
      "kind": "mcp",
      "name": "supportinteractioncollection_byrfcmessageid",
      "operation": "byRfcMessageId",
      "objectName": "@happyvertical/smrt-support:SupportInteractionCollection"
    },
    {
      "kind": "api",
      "name": "supportplans.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportPlan",
      "path": "/supportplans",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "supportplans.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportPlan",
      "path": "/supportplans/[id]",
      "method": "GET"
    },
    {
      "kind": "cli",
      "name": "supportplan_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportPlan"
    },
    {
      "kind": "cli",
      "name": "supportplan_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportPlan"
    },
    {
      "kind": "mcp",
      "name": "supportplan_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportPlan"
    },
    {
      "kind": "mcp",
      "name": "supportplan_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportPlan"
    },
    {
      "kind": "api",
      "name": "supportplans.byPlanKey",
      "operation": "byPlanKey",
      "objectName": "@happyvertical/smrt-support:SupportPlanCollection",
      "path": "/supportplans/byPlanKey",
      "method": "POST"
    },
    {
      "kind": "cli",
      "name": "supportplancollection_byPlanKey",
      "operation": "byPlanKey",
      "objectName": "@happyvertical/smrt-support:SupportPlanCollection"
    },
    {
      "kind": "mcp",
      "name": "supportplancollection_byplankey",
      "operation": "byPlanKey",
      "objectName": "@happyvertical/smrt-support:SupportPlanCollection"
    },
    {
      "kind": "api",
      "name": "supportpolicies.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportPolicy",
      "path": "/supportpolicies",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "supportpolicies.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportPolicy",
      "path": "/supportpolicies/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "supportpolicies.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-support:SupportPolicy",
      "path": "/supportpolicies",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "supportpolicies.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-support:SupportPolicy",
      "path": "/supportpolicies/[id]",
      "method": "PATCH"
    },
    {
      "kind": "api",
      "name": "supportpolicies.delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-support:SupportPolicy",
      "path": "/supportpolicies/[id]",
      "method": "DELETE"
    },
    {
      "kind": "cli",
      "name": "supportpolicy_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportPolicy"
    },
    {
      "kind": "cli",
      "name": "supportpolicy_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportPolicy"
    },
    {
      "kind": "mcp",
      "name": "supportpolicy_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportPolicy"
    },
    {
      "kind": "mcp",
      "name": "supportpolicy_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportPolicy"
    },
    {
      "kind": "api",
      "name": "supportpolicies.resolveForScope",
      "operation": "resolveForScope",
      "objectName": "@happyvertical/smrt-support:SupportPolicyCollection",
      "path": "/supportpolicies/resolveForScope",
      "method": "POST"
    },
    {
      "kind": "cli",
      "name": "supportpolicycollection_resolveForScope",
      "operation": "resolveForScope",
      "objectName": "@happyvertical/smrt-support:SupportPolicyCollection"
    },
    {
      "kind": "mcp",
      "name": "supportpolicycollection_resolveforscope",
      "operation": "resolveForScope",
      "objectName": "@happyvertical/smrt-support:SupportPolicyCollection"
    },
    {
      "kind": "api",
      "name": "supportservicetargets.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportServiceTarget",
      "path": "/supportservicetargets",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "supportservicetargets.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportServiceTarget",
      "path": "/supportservicetargets/[id]",
      "method": "GET"
    },
    {
      "kind": "cli",
      "name": "supportservicetarget_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportServiceTarget"
    },
    {
      "kind": "cli",
      "name": "supportservicetarget_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportServiceTarget"
    },
    {
      "kind": "mcp",
      "name": "supportservicetarget_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportServiceTarget"
    },
    {
      "kind": "mcp",
      "name": "supportservicetarget_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportServiceTarget"
    },
    {
      "kind": "api",
      "name": "supportservicetargets.forCase",
      "operation": "forCase",
      "objectName": "@happyvertical/smrt-support:SupportServiceTargetCollection",
      "path": "/supportservicetargets/forCase",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "supportservicetargets.activeTarget",
      "operation": "activeTarget",
      "objectName": "@happyvertical/smrt-support:SupportServiceTargetCollection",
      "path": "/supportservicetargets/activeTarget",
      "method": "POST"
    },
    {
      "kind": "cli",
      "name": "supportservicetargetcollection_forCase",
      "operation": "forCase",
      "objectName": "@happyvertical/smrt-support:SupportServiceTargetCollection"
    },
    {
      "kind": "cli",
      "name": "supportservicetargetcollection_activeTarget",
      "operation": "activeTarget",
      "objectName": "@happyvertical/smrt-support:SupportServiceTargetCollection"
    },
    {
      "kind": "mcp",
      "name": "supportservicetargetcollection_forcase",
      "operation": "forCase",
      "objectName": "@happyvertical/smrt-support:SupportServiceTargetCollection"
    },
    {
      "kind": "mcp",
      "name": "supportservicetargetcollection_activetarget",
      "operation": "activeTarget",
      "objectName": "@happyvertical/smrt-support:SupportServiceTargetCollection"
    },
    {
      "kind": "api",
      "name": "supportescalations.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportEscalation",
      "path": "/supportescalations",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "supportescalations.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportEscalation",
      "path": "/supportescalations/[id]",
      "method": "GET"
    },
    {
      "kind": "cli",
      "name": "supportescalation_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportEscalation"
    },
    {
      "kind": "cli",
      "name": "supportescalation_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportEscalation"
    },
    {
      "kind": "mcp",
      "name": "supportescalation_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportEscalation"
    },
    {
      "kind": "mcp",
      "name": "supportescalation_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportEscalation"
    },
    {
      "kind": "api",
      "name": "supportescalations.forCase",
      "operation": "forCase",
      "objectName": "@happyvertical/smrt-support:SupportEscalationCollection",
      "path": "/supportescalations/forCase",
      "method": "POST"
    },
    {
      "kind": "cli",
      "name": "supportescalationcollection_forCase",
      "operation": "forCase",
      "objectName": "@happyvertical/smrt-support:SupportEscalationCollection"
    },
    {
      "kind": "mcp",
      "name": "supportescalationcollection_forcase",
      "operation": "forCase",
      "objectName": "@happyvertical/smrt-support:SupportEscalationCollection"
    },
    {
      "kind": "api",
      "name": "supportcharges.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportCharge",
      "path": "/supportcharges",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "supportcharges.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportCharge",
      "path": "/supportcharges/[id]",
      "method": "GET"
    },
    {
      "kind": "cli",
      "name": "supportcharge_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportCharge"
    },
    {
      "kind": "cli",
      "name": "supportcharge_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportCharge"
    },
    {
      "kind": "mcp",
      "name": "supportcharge_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportCharge"
    },
    {
      "kind": "mcp",
      "name": "supportcharge_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportCharge"
    },
    {
      "kind": "api",
      "name": "supportcharges.forTimeEntry",
      "operation": "forTimeEntry",
      "objectName": "@happyvertical/smrt-support:SupportChargeCollection",
      "path": "/supportcharges/forTimeEntry",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "supportcharges.forCase",
      "operation": "forCase",
      "objectName": "@happyvertical/smrt-support:SupportChargeCollection",
      "path": "/supportcharges/forCase",
      "method": "POST"
    },
    {
      "kind": "cli",
      "name": "supportchargecollection_forTimeEntry",
      "operation": "forTimeEntry",
      "objectName": "@happyvertical/smrt-support:SupportChargeCollection"
    },
    {
      "kind": "cli",
      "name": "supportchargecollection_forCase",
      "operation": "forCase",
      "objectName": "@happyvertical/smrt-support:SupportChargeCollection"
    },
    {
      "kind": "mcp",
      "name": "supportchargecollection_fortimeentry",
      "operation": "forTimeEntry",
      "objectName": "@happyvertical/smrt-support:SupportChargeCollection"
    },
    {
      "kind": "mcp",
      "name": "supportchargecollection_forcase",
      "operation": "forCase",
      "objectName": "@happyvertical/smrt-support:SupportChargeCollection"
    },
    {
      "kind": "api",
      "name": "supportcompensations.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportCompensation",
      "path": "/supportcompensations",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "supportcompensations.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportCompensation",
      "path": "/supportcompensations/[id]",
      "method": "GET"
    },
    {
      "kind": "cli",
      "name": "supportcompensation_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportCompensation"
    },
    {
      "kind": "cli",
      "name": "supportcompensation_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportCompensation"
    },
    {
      "kind": "mcp",
      "name": "supportcompensation_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportCompensation"
    },
    {
      "kind": "mcp",
      "name": "supportcompensation_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportCompensation"
    },
    {
      "kind": "api",
      "name": "supportcompensations.forTimeEntry",
      "operation": "forTimeEntry",
      "objectName": "@happyvertical/smrt-support:SupportCompensationCollection",
      "path": "/supportcompensations/forTimeEntry",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "supportcompensations.forSpecialist",
      "operation": "forSpecialist",
      "objectName": "@happyvertical/smrt-support:SupportCompensationCollection",
      "path": "/supportcompensations/forSpecialist",
      "method": "POST"
    },
    {
      "kind": "cli",
      "name": "supportcompensationcollection_forTimeEntry",
      "operation": "forTimeEntry",
      "objectName": "@happyvertical/smrt-support:SupportCompensationCollection"
    },
    {
      "kind": "cli",
      "name": "supportcompensationcollection_forSpecialist",
      "operation": "forSpecialist",
      "objectName": "@happyvertical/smrt-support:SupportCompensationCollection"
    },
    {
      "kind": "mcp",
      "name": "supportcompensationcollection_fortimeentry",
      "operation": "forTimeEntry",
      "objectName": "@happyvertical/smrt-support:SupportCompensationCollection"
    },
    {
      "kind": "mcp",
      "name": "supportcompensationcollection_forspecialist",
      "operation": "forSpecialist",
      "objectName": "@happyvertical/smrt-support:SupportCompensationCollection"
    },
    {
      "kind": "api",
      "name": "supportspecialists.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportSpecialist",
      "path": "/supportspecialists",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "supportspecialists.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportSpecialist",
      "path": "/supportspecialists/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "supportspecialists.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-support:SupportSpecialist",
      "path": "/supportspecialists",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "supportspecialists.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-support:SupportSpecialist",
      "path": "/supportspecialists/[id]",
      "method": "PATCH"
    },
    {
      "kind": "api",
      "name": "supportspecialists.delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-support:SupportSpecialist",
      "path": "/supportspecialists/[id]",
      "method": "DELETE"
    },
    {
      "kind": "cli",
      "name": "supportspecialist_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportSpecialist"
    },
    {
      "kind": "cli",
      "name": "supportspecialist_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportSpecialist"
    },
    {
      "kind": "mcp",
      "name": "supportspecialist_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportSpecialist"
    },
    {
      "kind": "mcp",
      "name": "supportspecialist_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportSpecialist"
    },
    {
      "kind": "api",
      "name": "supportspecialists.findActive",
      "operation": "findActive",
      "objectName": "@happyvertical/smrt-support:SupportSpecialistCollection",
      "path": "/supportspecialists/findActive",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "supportspecialists.byProfile",
      "operation": "byProfile",
      "objectName": "@happyvertical/smrt-support:SupportSpecialistCollection",
      "path": "/supportspecialists/byProfile",
      "method": "POST"
    },
    {
      "kind": "cli",
      "name": "supportspecialistcollection_findActive",
      "operation": "findActive",
      "objectName": "@happyvertical/smrt-support:SupportSpecialistCollection"
    },
    {
      "kind": "cli",
      "name": "supportspecialistcollection_byProfile",
      "operation": "byProfile",
      "objectName": "@happyvertical/smrt-support:SupportSpecialistCollection"
    },
    {
      "kind": "mcp",
      "name": "supportspecialistcollection_findactive",
      "operation": "findActive",
      "objectName": "@happyvertical/smrt-support:SupportSpecialistCollection"
    },
    {
      "kind": "mcp",
      "name": "supportspecialistcollection_byprofile",
      "operation": "byProfile",
      "objectName": "@happyvertical/smrt-support:SupportSpecialistCollection"
    },
    {
      "kind": "api",
      "name": "supportqualifications.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportQualification",
      "path": "/supportqualifications",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "supportqualifications.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportQualification",
      "path": "/supportqualifications/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "supportqualifications.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-support:SupportQualification",
      "path": "/supportqualifications",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "supportqualifications.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-support:SupportQualification",
      "path": "/supportqualifications/[id]",
      "method": "PATCH"
    },
    {
      "kind": "api",
      "name": "supportqualifications.delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-support:SupportQualification",
      "path": "/supportqualifications/[id]",
      "method": "DELETE"
    },
    {
      "kind": "cli",
      "name": "supportqualification_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportQualification"
    },
    {
      "kind": "cli",
      "name": "supportqualification_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportQualification"
    },
    {
      "kind": "mcp",
      "name": "supportqualification_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportQualification"
    },
    {
      "kind": "mcp",
      "name": "supportqualification_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportQualification"
    },
    {
      "kind": "api",
      "name": "supportqualifications.forSpecialist",
      "operation": "forSpecialist",
      "objectName": "@happyvertical/smrt-support:SupportQualificationCollection",
      "path": "/supportqualifications/forSpecialist",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "supportqualifications.forProject",
      "operation": "forProject",
      "objectName": "@happyvertical/smrt-support:SupportQualificationCollection",
      "path": "/supportqualifications/forProject",
      "method": "POST"
    },
    {
      "kind": "cli",
      "name": "supportqualificationcollection_forSpecialist",
      "operation": "forSpecialist",
      "objectName": "@happyvertical/smrt-support:SupportQualificationCollection"
    },
    {
      "kind": "cli",
      "name": "supportqualificationcollection_forProject",
      "operation": "forProject",
      "objectName": "@happyvertical/smrt-support:SupportQualificationCollection"
    },
    {
      "kind": "mcp",
      "name": "supportqualificationcollection_forspecialist",
      "operation": "forSpecialist",
      "objectName": "@happyvertical/smrt-support:SupportQualificationCollection"
    },
    {
      "kind": "mcp",
      "name": "supportqualificationcollection_forproject",
      "operation": "forProject",
      "objectName": "@happyvertical/smrt-support:SupportQualificationCollection"
    },
    {
      "kind": "api",
      "name": "supportavailabilities.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportAvailability",
      "path": "/supportavailabilities",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "supportavailabilities.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportAvailability",
      "path": "/supportavailabilities/[id]",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "supportavailabilities.create",
      "operation": "create",
      "objectName": "@happyvertical/smrt-support:SupportAvailability",
      "path": "/supportavailabilities",
      "method": "POST"
    },
    {
      "kind": "api",
      "name": "supportavailabilities.update",
      "operation": "update",
      "objectName": "@happyvertical/smrt-support:SupportAvailability",
      "path": "/supportavailabilities/[id]",
      "method": "PATCH"
    },
    {
      "kind": "api",
      "name": "supportavailabilities.delete",
      "operation": "delete",
      "objectName": "@happyvertical/smrt-support:SupportAvailability",
      "path": "/supportavailabilities/[id]",
      "method": "DELETE"
    },
    {
      "kind": "cli",
      "name": "supportavailability_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportAvailability"
    },
    {
      "kind": "cli",
      "name": "supportavailability_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportAvailability"
    },
    {
      "kind": "mcp",
      "name": "supportavailability_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportAvailability"
    },
    {
      "kind": "mcp",
      "name": "supportavailability_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportAvailability"
    },
    {
      "kind": "api",
      "name": "supportavailabilities.forSpecialist",
      "operation": "forSpecialist",
      "objectName": "@happyvertical/smrt-support:SupportAvailabilityCollection",
      "path": "/supportavailabilities/forSpecialist",
      "method": "POST"
    },
    {
      "kind": "cli",
      "name": "supportavailabilitycollection_forSpecialist",
      "operation": "forSpecialist",
      "objectName": "@happyvertical/smrt-support:SupportAvailabilityCollection"
    },
    {
      "kind": "mcp",
      "name": "supportavailabilitycollection_forspecialist",
      "operation": "forSpecialist",
      "objectName": "@happyvertical/smrt-support:SupportAvailabilityCollection"
    },
    {
      "kind": "api",
      "name": "supportworklinks.list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportWorkLink",
      "path": "/supportworklinks",
      "method": "GET"
    },
    {
      "kind": "api",
      "name": "supportworklinks.get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportWorkLink",
      "path": "/supportworklinks/[id]",
      "method": "GET"
    },
    {
      "kind": "cli",
      "name": "supportworklink_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportWorkLink"
    },
    {
      "kind": "cli",
      "name": "supportworklink_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportWorkLink"
    },
    {
      "kind": "mcp",
      "name": "supportworklink_list",
      "operation": "list",
      "objectName": "@happyvertical/smrt-support:SupportWorkLink"
    },
    {
      "kind": "mcp",
      "name": "supportworklink_get",
      "operation": "get",
      "objectName": "@happyvertical/smrt-support:SupportWorkLink"
    },
    {
      "kind": "api",
      "name": "supportworklinks.forCase",
      "operation": "forCase",
      "objectName": "@happyvertical/smrt-support:SupportWorkLinkCollection",
      "path": "/supportworklinks/forCase",
      "method": "POST"
    },
    {
      "kind": "cli",
      "name": "supportworklinkcollection_forCase",
      "operation": "forCase",
      "objectName": "@happyvertical/smrt-support:SupportWorkLinkCollection"
    },
    {
      "kind": "mcp",
      "name": "supportworklinkcollection_forcase",
      "operation": "forCase",
      "objectName": "@happyvertical/smrt-support:SupportWorkLinkCollection"
    }
  ],
  "prompts": [],
  "relationshipsV2": {
    "foreignKeyFields": 29,
    "crossPackageRefFields": 12,
    "junctionCollections": 0,
    "hierarchicalObjects": 0,
    "polymorphicAssociations": 0,
    "uuidColumns": 150
  },
  "agentDoc": "# @happyvertical/smrt-support\n\nAI-first Support Cases for the SMRT framework (epic #1934). Every inbound\nsupport interaction — chat message or email — creates or joins one canonical,\ntenant-scoped **Support Case**; channels stay transports, never separate\nsystems of record. The package owns the case lifecycle, channel intake, the\nAutomated Support Response workflow with lossless **Human Handoff**,\nProject-qualified routing, **Service Target** clocks with timed escalation,\nand auditable **Service Time Entries** whose client charges and provider\ncompensation stay separate. Since #1955 the canonical `ServiceTimeEntry` class\nis owned by `smrt-projects`; this package exposes a compatibility subtype that\nrestates the shared fields for isolated manifest scanning. Both imports use the\nunchanged `service_time_entries` table, so no data is duplicated.\n\n**Boundary (FR-29a):** Support owns tickets, interactions, routing, and\nservice targets. Delivery Operations owns repository work — a **Delivery\nHandoff** links a case to a Development Work Item (e.g.\n`@happyvertical/smrt-projects:Issue`) via a `SupportWorkLink` without ever\ndriving its execution; the delivery side reports status echoes back.\n\n## Models\n\nCase-side models are **internal**: generated API/CLI/MCP surfaces are\nread-only (`list`/`get`) and every write goes through the service facades\n(the `smrt-chat` `ChatService` idiom). Operational configuration models\n(bindings, policies, specialists, qualifications, availability) expose full\ngenerated CRUD; **commercial terms** (`SupportPlan`,\n`SupportCompensationPlan`) are read-only too — their writes flow through the\n`support.manage-plans`-gated `SupportPlanAdminService`.\n\n### Case core (#1926)\n\n- **SupportCase** (`support_cases`) — canonical ticket: `caseNumber`,\n  `subject`, `status` (`new → triaged → assigned → in_progress →\n  waiting_on_client|escalated → resolved → closed`, guarded at save time via\n  the WeakMap + authoritative-DB-read idiom from S5 #1390), `priority`,\n  `severity` (plan-defined key), `category`, `sensitive`, `channelKind`,\n  `clientProfileId`/`openedByProfileId` (crossPackageRef → Profile),\n  `projectId` (app-defined string — deliberately not an FK), `bindingId`,\n  `threadKey` (create-or-join dedup key), `planId` + `planSnapshot` (terms\n  frozen at apply time), assignment fields, response stamps\n  (`acknowledgedAt`, `firstRespondedAt`), `humanRequestedAt`, resolution\n  fields, `reopenCount`/`lastReopenedAt`, `aiEnabled`.\n- **SupportInteraction** (`support_interactions`,\n  `conflictColumns: ['source_key']`) — channel-neutral transport record:\n  `direction` (`inbound`/`outbound`/`internal`), `channelKind`, `actorKind`\n  (`client`/`specialist`/`agent`/`system`), denormalized `body`, and the\n  qualified `sourceType`/`sourceId` + globally unique `sourceKey`\n  (`chat:<messageId>`, `email:<emailId>`, `manual:<uuid>`) that makes\n  re-ingestion idempotent.\n- **SupportCaseEvent** (`support_case_events`) — append-only audit trail\n  (transitions, assignments, AI runs, handoffs, escalations, target state,\n  work links, reopens). Together with interactions this is the complete\n  context a Human Handoff transfers.\n- **SupportChannelBinding** (`support_channel_bindings`,\n  `conflictColumns: ['target_type','target_id']`) — marks a container as a\n  support intake channel: `bindingKind` (`chat_room`/`email_account`),\n  qualified `targetType` + `targetId`, default client/project/plan,\n  `selfAddresses` (email direction heuristic). Unbound containers are never\n  touched.\n- **SupportWorkLink** (`support_work_links`) — Support/Development Work Item\n  links with a read-only `status` echo.\n\n### AI workflow (#1928)\n\n- **SupportPolicy** (`support_policies`) — what the AI may do without a\n  human: `autoAcknowledge`/`autoClassify`/`autoAnswer` (on by default),\n  `autoTroubleshoot`/`autoResolve` (off by default),\n  `autoResolveMaxSeverity`, `confidenceThreshold`, `maxAutoAttempts`,\n  `sensitiveCategories`, `allowedTools`, `autoSendEmailReplies` (off —\n  email replies are drafted, not sent). Resolution is most-specific-wins on\n  `(planId, projectId)`; no row → `DEFAULT_SUPPORT_POLICY` (conservative).\n- **SupportAiRun** (`support_ai_runs`) — append-only audit of each phase\n  (`acknowledge`/`classify`/`answer`/`troubleshoot`/`resolve`) with\n  `confidence`, classification output, knowledge refs, tool calls, outcome\n  (`completed`/`skipped`/`failed`/`handed_off`), and `correlationId`.\n\n### Routing, targets, escalation (#1929)\n\n- **SupportSpecialist** (`support_specialists`) — specialist role record on a\n  Profile (the commerce `Customer` role-record idiom): `languages`,\n  `timezone`, `maxConcurrentCases`, `onCallPriority`, status.\n- **SupportQualification** (`support_qualifications`) — effective-dated\n  Project Support Qualification (`trainee`/`qualified`/`expert`).\n- **SupportAvailability** (`support_availability_windows`) — weekly windows\n  plus `on_call`/`time_off` spans.\n- **SupportPlan** (`support_plans`, `conflictColumns:\n  ['tenant_id','plan_key']`) — the Managed Support Plan: coverage calendar +\n  holidays + timezone, channels, severity definitions, per-severity\n  acknowledgement/response/update/resolution target minutes, `pauseStatuses`\n  (clocks pause only when the plan says so), escalation policy steps,\n  availability fee, `includedMinutes`, `overageHourlyRate`,\n  `onCallHourlyRate`, time-approval policy, optional\n  `subscriptionPlanKey` binding (string, not a dependency).\n  `snapshotTerms()` feeds `SupportCase.planSnapshot`.\n- **SupportServiceTarget** (`support_service_targets`,\n  `conflictColumns: ['case_id','target_type','cycle']`) — one clock per\n  target type (update clocks recur via `cycle`), with pause accounting and\n  `escalationJobId` (the one-shot `_smrt_jobs` row scheduled at `dueAt`,\n  cancelled on satisfy).\n- **SupportEscalation** (`support_escalations`) — the audit record of one\n  escalation firing.\n- **SupportCompensationPlan** (`support_compensation_plans`) —\n  effective-dated Support Specialist earning terms; specialist-specific plan\n  wins over the tenant default at the work instant. Deliberately separate\n  from `SupportPlan` (client pricing) so margin stays measurable.\n\n### Service time (#1930)\n\n- **ServiceTimeEntry** (`service_time_entries`) — auditable Professional\n  Service duration: work-context-generic (`caseId` and/or polymorphic\n  `workRefType`/`workRefId`), delivering Participant (`participantKind`\n  `human`/`agent` + `participantProfileId`/`agentRef`), `source`\n  (`timer`/`manual`/`import`/`agent` — one shared validation/audit\n  contract), evidence JSON, and lifecycle `draft → submitted →\n  approved|rejected`, `approved → corrected` only. **Approved entries are\n  immutable**: the work-defining fields are frozen at save time (the\n  `LicenseSale` WeakMap-freeze idiom, backed by an authoritative DB-row\n  comparison); disputes create explicit corrections via `correctionOfId`.\n- **SupportCharge** / **SupportCompensation** (`support_charges` /\n  `support_compensations`, one per time entry) — derived commercial\n  snapshots: client amount from the Managed Support Plan (included-time\n  consumption then metered overage) vs provider amount from the Support\n  Compensation Plan, each with a frozen `rateSnapshot`. Margin = charge −\n  compensation, computed by readers; settlement/invoicing composes at the\n  app/accounting boundary (#1925) and is out of scope here.\n\n## Services\n\n- **SupportCaseService** — the closed write facade: `openCase`,\n  `recordInteraction` (idempotent on `sourceKey`; stamps\n  `acknowledgedAt`/`firstRespondedAt`; inbound un-parks\n  `waiting_on_client`), `transition`, `assign`, `resolve`, `close`,\n  `reopen` (preserves prior resolution in the reopen event), `requestHuman`,\n  `linkWork`/`recordWorkStatus` (Delivery Handoff), `recordEvent`,\n  `getTimeline` (merged interactions + events).\n- **SupportIntakeService** — create-or-join intake for both channels:\n  `ingestChatMessage` (bound `ChatRoom`; `chat:<roomId>[:<threadId>]` thread\n  keys; only `role: 'user'` messages), `ingestEmail` (bound `EmailAccount`;\n  RFC-thread joins via `inReplyTo`; `selfAddresses` skip; unresolved senders\n  park the case with `metadata.unresolvedClient`), plus\n  `registerSupportIntake()` — an opt-in `GlobalInterceptors.afterSave`\n  observer keyed on the `ChatMessage`/`Email` class names that never throws\n  into the source package's save path. Join semantics: open case → join;\n  resolved → reopen; closed → new case.\n- **SupportAiWorkflow** — the Automated Support Response (FR-28a):\n  `processIntake`/`processCase` run acknowledge → classify → answer →\n  resolve under the resolved `SupportPolicy` (conservative defaults), each\n  phase writing a `SupportAiRun` + `ai_run` case event. AI calls go through\n  the injected `SupportAiBoundary` (default uses `supportCase.do()` with\n  defensive JSON parsing that fails toward the human); knowledge comes from\n  the pluggable `SupportKnowledgeProvider` (default no-op). Classification\n  never overwrites human triage; email answers are drafted\n  (`metadata.draft`) unless the policy allows sending. Handoff triggers —\n  `client_request`, `low_confidence`, `high_severity`, `sensitive`,\n  `failed_resolution`, `policy` (attempt budget) — are always active.\n- **HumanHandoffService** — the lossless Human Handoff (FR-28b):\n  `handoff` assembles the full context package (case state + compact\n  timeline + AI runs) into the `handoff` event, stamps\n  `metadata.activeHandoff` for the no-repeat guarantee (repeat triggers are\n  deduped events), routes through the injected `assignSpecialist` seam\n  (#1929's routing service plugs in; default queues `new` cases to\n  `triaged`), and `releaseHandoff` clears the flag.\n- **ServiceTargetEngine** — Service Target clocks (FR-30/31):\n  `startTargetsForCase` derives per-severity clocks from the case's\n  `planSnapshot` (live plan fallback) with due times computed in covered\n  time (`coverage-calendar.ts`: timezone-aware weekly windows + holidays;\n  empty coverage = 24×7) and schedules one-shot `_smrt_jobs` escalation jobs\n  at `dueAt`; `onInteractionRecorded` satisfies acknowledgement/response and\n  recurs `update` cycles; `onCaseTransition` pauses/resumes clocks only when\n  the plan's `pauseStatuses` say so (recomputing remaining covered minutes)\n  and settles targets on resolve. Breach → `SupportServiceTarget.\n  checkAndEscalate` (background-eligible, at-least-once-safe) marks the\n  breach and escalates through the plan's policy steps (notify/reassign,\n  delayed follow-up levels), transitioning the case to `escalated`.\n- **SupportPlanAdminService** — the permission-gated write surface for\n  commercial terms: create/update/archive for Managed Support Plans and\n  Support Compensation Plans, every act behind `support.manage-plans` with\n  cross-tenant writes refused (generated CRUD on both models is read-only).\n- **SupportRoutingService** — explainable ranked routing (FR-30):\n  `rankSpecialists` hard-filters on active status, effective Project\n  Support Qualification, workload cap, and availability windows (specialist\n  timezone), then scores preferred-specialist, qualification level, on-call,\n  workload headroom, and language (weights in `ROUTING_WEIGHTS`; every\n  factor recorded so ineligible specialists show why); `autoAssign` writes\n  the assignment with its rationale; `reassign` is gated by\n  `support.reassign-case` and refuses cross-tenant principals.\n- **ServiceTimeEntryService** — the ONE recording contract for all four\n  entry sources (FR-40): `record` validates duration (explicit or derived\n  from the period; `timer` needs both bounds), participant coherence\n  (`human` → `participantProfileId`, `agent` → `agentRef`), and the work\n  context (case and/or work ref; case entries copy the tenant and append a\n  `time_recorded` event); `submit` stamps the submitter.\n- **TimeEntryApprovalService** — the approval gate and only writer of the\n  commercial snapshots (FR-36): `approve` resolves the governing terms (case\n  `planSnapshot` first, live plan fallback, zero-rate default), gates by\n  policy path (`automatic`/`threshold`/`operator`/`client`; operator paths\n  behind `support.approve-time-entry`; cross-tenant principals refused), then\n  derives the `SupportCharge` (included time first, then overage/on-call) and\n  `SupportCompensation` (effective-dated plan) rows; `reject` and `correct`\n  (supersede + linked fresh draft via `correctionOfId`) round out the\n  lifecycle. Case events carry the charge amount only — compensation never\n  leaks case-side.\n\n## Permissions\n\nContributed to the runtime catalog on import (the\n`personas.activate-directive` pattern): `support.reassign-case`,\n`support.approve-time-entry`, `support.manage-plans`. Privileged service\noperations take a `SupportPrincipal` (`can(slug)`), built from explicit slugs\nor a `PermissionResolver`.\n\n## Svelte UI\n\n`@happyvertical/smrt-support/svelte` ships presentational Svelte 5 surfaces:\n`CaseQueue` (priority/status/assignment/channel at a glance, `onselect`),\n`CaseDetail` (header, meta, linked work, merged timeline), `TargetList`\n(Service Target clocks with due/paused/satisfied/breached badges),\n`RoutingRationale` (ranked specialists with eligibility + factor chips and\nan optional reassign action), and `TimeEntryApprovalQueue`\n(date/hours/description/worker/status/amount with\napprove/reject-with-reason actions on submitted rows). Hosts adapt models\nwith `toSupportCaseView` / `toCaseTimelineItemView` / `toServiceTargetView`\n/ `toSupportTimeEntryView` — the time-entry view's first eight fields\ndeliberately match `smrt-projects`' presentation `TimeEntry` contract.\nComponents use `smrt-ui` primitives (`smrtRawPrimitives: \"strict\"`).\n\n## Dependencies\n\nPackage dependencies: `smrt-core`, `smrt-tenancy`, `smrt-projects`,\n`smrt-chat`, `smrt-messages`, `smrt-jobs`, `smrt-users`, `smrt-ui`,\n`@happyvertical/logger`, `@happyvertical/sql`. Profile and subscriptions\nreferences are `@crossPackageRef` string ids or plain string\nkeys. `smrt-projects` is the intentional shared delivery/evidence edge added\nby #1955. No inter-`smrt-*` `peerDependencies`.\n\n## Validation\n\n```sh\npnpm --filter @happyvertical/smrt-support test\npnpm --filter @happyvertical/smrt-support test:postgres\npnpm --filter @happyvertical/smrt-support typecheck\npnpm --filter @happyvertical/smrt-support build\n```\n\n`test:postgres` is the lane that holds the money/rate line — SQLite's type\naffinity stores a REAL in an INTEGER column without complaint, so a money field\nthat reverted to DECIMAL passes every SQLite suite.\n\n## Money and rates\n\n- **Money is integer minor units** (cents) — `$19.99` is `1999`.\n  `SupportPlan.availabilityFeeAmount`, `SupportCharge.amount` and\n  `SupportCompensation.amount` initialize `= 0`, never `= 0.0`: the integer\n  literal is what maps them to INTEGER columns (BIGINT on fresh PostgreSQL/DuckDB databases; #2401, #2373).\n- **Rates stay DECIMAL but their unit changed.**\n  `SupportPlan.overageHourlyRate` / `onCallHourlyRate` and\n  `SupportCompensationPlan.hourlyRate` are **minor units per hour**, so\n  `hours * rate` yields minor units. INTEGER would truncate a sub-unit rate to\n  zero, which is why they keep a decimal initializer.\n- **`roundMoney()` is the single rate↔money boundary.** It rounds\n  `(seconds / 3600) * hourlyRate` to a whole minor unit, which is what lets the\n  `thresholdAmount` comparison in `determinePath()` be an exact `>` with no\n  tolerance. `TimeApprovalPolicy.thresholdAmount` is in the same unit as\n  `SupportCharge.amount`.\n- **Migrating an existing database**: `preflightSupportMoneyMinorUnits(db)`\n  reports which columns still hold major units and which rows would be rounded\n  or exceed JavaScript's safe-integer range; `migrateSupportMoneyToMinorUnits(db)` converts them\n  (idempotent via `_smrt_backfills`). The **rate columns are not in that list**\n  — their type does not change, but their stored values must still be\n  multiplied by the same scale in the same deploy step. Frozen `rateSnapshot`\n  JSON on settled charges is history and is left alone. On SQLite the values\n  are rescaled but the declared type needs the table-rebuild path (#2370).\n  Fresh PostgreSQL/DuckDB INTEGER columns are BIGINT and hydration rejects\n  values outside JavaScript's safe-integer range; existing PostgreSQL `int4`\n  columns require #2424.\n\n## Gotchas\n\n- **Writes go through the facades** — the case-side generated routes are\n  read-only on purpose; `create`/`update` on them is not a bug to \"fix\".\n- **`projectId` is an app-defined string** — the consuming app owns the\n  Project concept; don't turn it into an FK or a crossPackageRef to\n  `smrt-projects:Project` (that class is a provider board, not a client\n  initiative).\n- **`SupportCase.threadKey` + `SupportInteraction.sourceKey` carry intake\n  correctness** — `sourceKey` is globally unique (`conflictColumns`), so\n  replayed transport rows are no-ops; new manual interactions must use a\n  fresh `manual:<uuid>` key.\n- **High-volume models avoid the inherited `name` field** (`subject`,\n  `displayName`, …) so the default `(slug, context, _meta_type)` unique index\n  falls back to id-derived slugs; named config models carry\n  `conflictColumns` instead (which replaces that index).\n- **Approved time entries never change** — corrections are new rows linked\n  by `correctionOfId`; the original flips to `corrected` with its snapshot\n  intact.\n- **Plan edits never rewrite history** — cases keep `planSnapshot`, charges\n  and compensation keep `rateSnapshot`.\n- **Create-or-join and included-time consumption serialize in-process** —\n  `SupportIntakeService` (per conversation key) and\n  `TimeEntryApprovalService` (per case) use a `KeyedMutex`, which covers the\n  single-app-process deployment these paths run in. Multi-replica\n  deployments must serialize at the app layer (route a conversation's\n  intake / a case's approvals through one worker, or add an app-level\n  claim) — the framework exposes no cross-adapter transaction primitive at\n  this seam. Escalation is additionally idempotent per `(target, level)`,\n  so at-least-once job redelivery never stacks duplicate escalations.\n"
}