{
  "generatedAt": "2026-07-27T08:52:19.101Z",
  "repo": "Lawhive/platform-v3",
  "branch": "develop",
  "schemaCommit": "fe921d074c9548407bb400cc403231919041a277",
  "interpretedCommit": "fe921d074c9548407bb400cc403231919041a277",
  "interpretationVersion": 2,
  "inngestGeneratedAt": "2026-07-27T08:52:11.647Z",
  "totals": {
    "domains": 12,
    "services": 16,
    "models": 179,
    "enums": 145,
    "fields": 2102,
    "interpreted": 179,
    "tiers": {
      "core": 67,
      "supporting": 97,
      "legacy": 15
    },
    "drift": 0
  },
  "drift": {
    "uninterpreted": [],
    "removed": [],
    "staleFields": [],
    "commitGap": null
  },
  "overview": {
    "standfirst": "Twelve business domains, each owning its own database, connected by prefixed string ids and events — with the legal case (the Matter) at the centre.",
    "conventions": [
      {
        "title": "Prefixed ids, never foreign keys",
        "body": "Every record's id is a prefixed nanoid (mat_ matter, pers_ person, firm_ firm, quot_ quote, cont_ content). There are no foreign keys across databases: a domain references another domain's entity by storing its string id. The prefix tells you who owns it; resolving a reference at runtime means an authenticated call to the owning domain, never a database join."
      },
      {
        "title": "Domains talk through events",
        "body": "When something happens in one domain that others care about, it publishes an event (matter.created, email.matched, reconciliation.created) and interested domains react. The big cross-domain processes — filing an email onto a matter, settling a payment — are event choreographies."
      }
    ],
    "pillars": [
      {
        "id": "people",
        "label": "People & firms",
        "sub": "identities · firms · teams · contacts",
        "domains": [
          "people"
        ]
      },
      {
        "id": "sales",
        "label": "Sales funnel",
        "sub": "prospects · leads · meetings",
        "domains": [
          "sales"
        ]
      },
      {
        "id": "deal",
        "label": "The deal",
        "sub": "quotes · fee agreements · assignments",
        "domains": [
          "deal"
        ]
      },
      {
        "id": "matter",
        "label": "The case",
        "sub": "participants · tasks · documents · files",
        "domains": [
          "matters",
          "content"
        ]
      },
      {
        "id": "money",
        "label": "Money",
        "sub": "bills · invoices · payments · reconciliation · ledger",
        "domains": [
          "money"
        ]
      },
      {
        "id": "comms",
        "label": "Communication",
        "sub": "",
        "domains": [
          "email",
          "chat",
          "voice",
          "post"
        ]
      },
      {
        "id": "ai",
        "label": "AI",
        "sub": "Lawrence threads · skills · agent runs",
        "domains": [
          "ai"
        ]
      }
    ],
    "edges": [
      {
        "from": "sales",
        "to": "deal",
        "label": "lead converts",
        "style": "flow"
      },
      {
        "from": "deal",
        "to": "matter",
        "label": "creates (marketplace)",
        "style": "flow"
      },
      {
        "from": "people",
        "to": "matter",
        "label": "firm opens directly",
        "style": "flow"
      },
      {
        "from": "deal",
        "to": "money",
        "label": "bills via",
        "style": "flow"
      },
      {
        "from": "matter",
        "to": "comms",
        "label": "all work happens here",
        "style": "flow"
      },
      {
        "from": "people",
        "to": "matter",
        "label": "referenced by everything",
        "style": "ref"
      },
      {
        "from": "ai",
        "to": "matter",
        "label": "reads context from",
        "style": "ref"
      },
      {
        "from": "ai",
        "to": "comms",
        "label": "reads context from",
        "style": "ref"
      }
    ],
    "birthPaths": [
      {
        "title": "The marketplace journey",
        "body": "A client arrives as a prospect with a lead (sales funnel) → gets a quote whose acceptance creates fee agreements and a matter (the deal) → a lawyer at a firm is assigned → the legal work happens on the matter → the client pays a bill, the firm gets invoiced, payments are reconciled and posted to the ledger → Lawrence watches everything on the matter to assist. Matter.source = MARKETPLACE."
      },
      {
        "title": "The direct (practice-management) path",
        "body": "A firm member with the right permission opens a matter themselves (title, jurisdiction, lead lawyer, optionally from a matter template with the firm's custom fields) — no lead, quote, or assignment involved. Everything from the matter onward (work, communication, AI, and later billing via follow-on quotes) behaves identically. Matter.source = ADMIN."
      }
    ]
  },
  "domains": [
    {
      "id": "people",
      "order": 1,
      "name": "People & firms",
      "services": [
        "identity-service",
        "auth-service"
      ],
      "databases": [
        "identity-db",
        "auth-db"
      ],
      "tagline": "Who exists on the platform: people, law firms, teams, and each firm's address book.",
      "whatItIs": "The who's-who of the platform. Every person who can log in (lawyers, firm staff, clients, admins) has an Identity here, every law firm is a Firm with its teams and bank accounts, and each firm keeps its own Contact address book of the people and companies it deals with. The firm-level extras live here too: custom fields, conflict-of-interest checks, peer reviews, letterheads, and out-of-office schedules. User accounts sync in from Clerk; everything else is managed on the platform itself.",
      "howItConnects": "Almost every other domain points here, because almost everything belongs to a person or a firm. A matter is served by a firm, an email belongs to a lawyer's mailbox, a payment involves a firm's bank account. In the other direction this domain barely points anywhere: conflict checks and reviews can reference a matter, and billing details reach into Stripe. Whenever something changes here (an identity, a contact, a bank account), the change goes out as an event so other domains can react.",
      "lifecycle": null,
      "flows": [],
      "notes": [
        {
          "kind": "companion",
          "body": "auth-service (better-auth based) is a technical companion, not a separate pillar: it runs mounted inside identity-service, owns login sessions, organizations, and API keys, and mirrors Identities by id — its User rows are created with the Identity's own id. Treat People & firms as one domain with auth-db as its session/credential sidecar."
        }
      ],
      "events": {
        "publishes": [
          {
            "name": "platform-api/entityActivity.registered",
            "service": "identity-service",
            "live": "silent"
          }
        ],
        "consumes": [
          {
            "name": "webhook/clerk/user.updated",
            "service": "identity-service",
            "live": "active"
          }
        ]
      },
      "servicesDetail": [
        {
          "name": "identity-service",
          "group": "services",
          "db": "identity-db",
          "enums": [
            {
              "name": "AdminRole",
              "file": "services/identity-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "SUPER_ADMIN",
                  "doc": null
                },
                {
                  "name": "ADMIN_MANAGER",
                  "doc": null
                },
                {
                  "name": "OPS_VIEWER",
                  "doc": null
                },
                {
                  "name": "OPS_MANAGER",
                  "doc": null
                },
                {
                  "name": "MARKETPLACE_VIEWER",
                  "doc": null
                },
                {
                  "name": "MARKETPLACE_MANAGER",
                  "doc": null
                }
              ]
            },
            {
              "name": "AssignmentAvailabilityStatus",
              "file": "services/identity-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "ACTIVE",
                  "doc": null
                },
                {
                  "name": "INACTIVE",
                  "doc": null
                }
              ]
            },
            {
              "name": "AuthenticatorMethod",
              "file": "services/identity-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "CLERK",
                  "doc": null
                }
              ]
            },
            {
              "name": "ConflictCheckOutcome",
              "file": "services/identity-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "CONFLICT",
                  "doc": null
                },
                {
                  "name": "NO_CONFLICT",
                  "doc": null
                },
                {
                  "name": "RISK_OF_CONFLICT",
                  "doc": null
                }
              ]
            },
            {
              "name": "ConflictCheckStatus",
              "file": "services/identity-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "NEW",
                  "doc": null
                },
                {
                  "name": "COMPLETED",
                  "doc": null
                }
              ]
            },
            {
              "name": "ContactInfoType",
              "file": "services/identity-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "EMAIL",
                  "doc": null
                },
                {
                  "name": "PHONE",
                  "doc": null
                },
                {
                  "name": "OTHER",
                  "doc": null
                }
              ]
            },
            {
              "name": "ContactState",
              "file": "services/identity-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "ACTIVE",
                  "doc": null
                },
                {
                  "name": "DELETED",
                  "doc": null
                }
              ]
            },
            {
              "name": "ContactType",
              "file": "services/identity-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "INDIVIDUAL",
                  "doc": null
                },
                {
                  "name": "COMPANY",
                  "doc": null
                }
              ]
            },
            {
              "name": "Currency",
              "file": "services/identity-service/prisma/shared-models/currency.prisma",
              "doc": null,
              "values": [
                {
                  "name": "GBP",
                  "doc": null
                },
                {
                  "name": "USD",
                  "doc": null
                },
                {
                  "name": "EUR",
                  "doc": null
                }
              ]
            },
            {
              "name": "EventType",
              "file": "services/identity-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "aggregate",
                  "doc": null
                },
                {
                  "name": "ephemeral",
                  "doc": null
                }
              ]
            },
            {
              "name": "FieldEntityType",
              "file": "services/identity-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "MATTER",
                  "doc": null
                },
                {
                  "name": "CONTACT",
                  "doc": null
                }
              ]
            },
            {
              "name": "FieldType",
              "file": "services/identity-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "TEXT",
                  "doc": null
                },
                {
                  "name": "NUMBER",
                  "doc": null
                },
                {
                  "name": "DATE",
                  "doc": null
                },
                {
                  "name": "DATETIME",
                  "doc": null
                },
                {
                  "name": "BOOLEAN",
                  "doc": null
                },
                {
                  "name": "MONEY",
                  "doc": null
                },
                {
                  "name": "SELECT",
                  "doc": null
                },
                {
                  "name": "ADDRESS",
                  "doc": null
                },
                {
                  "name": "REFERENCE",
                  "doc": null
                }
              ]
            },
            {
              "name": "FirmBankAccountRole",
              "file": "services/identity-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "OFFICE",
                  "doc": null
                },
                {
                  "name": "CLIENT",
                  "doc": null
                }
              ]
            },
            {
              "name": "FirmBankAccountStatus",
              "file": "services/identity-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "ACTIVE",
                  "doc": null
                },
                {
                  "name": "ARCHIVED",
                  "doc": null
                }
              ]
            },
            {
              "name": "FirmMemberRole",
              "file": "services/identity-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "ADMIN",
                  "doc": null
                },
                {
                  "name": "LAWYER",
                  "doc": null
                },
                {
                  "name": "SUPPORT",
                  "doc": null
                }
              ]
            },
            {
              "name": "IdentityType",
              "file": "services/identity-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "USER",
                  "doc": null
                }
              ]
            },
            {
              "name": "LogoPosition",
              "file": "services/identity-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "LEFT",
                  "doc": null
                },
                {
                  "name": "MIDDLE",
                  "doc": null
                },
                {
                  "name": "RIGHT",
                  "doc": null
                }
              ]
            },
            {
              "name": "Market",
              "file": "services/identity-service/prisma/shared-models/market.prisma",
              "doc": null,
              "values": [
                {
                  "name": "US",
                  "doc": null
                },
                {
                  "name": "GB",
                  "doc": null
                }
              ]
            },
            {
              "name": "ReviewSourceType",
              "file": "services/identity-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "MATTER",
                  "doc": null
                }
              ]
            },
            {
              "name": "TeamMemberRole",
              "file": "services/identity-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "OWNER",
                  "doc": null
                },
                {
                  "name": "MEMBER",
                  "doc": null
                }
              ]
            }
          ],
          "models": [
            {
              "name": "AdminProfile",
              "service": "identity-service",
              "db": "identity-db",
              "file": "services/identity-service/prisma/schema.prisma",
              "line": 277,
              "idPrefix": "admprof_",
              "doc": null,
              "fieldCount": 8,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "identityId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "identity",
                  "type": "Identity",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "roles",
                  "type": "AdminRole",
                  "list": true,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "markets",
                  "type": "Market",
                  "list": true,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "isActive",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "Marks an Identity as internal Lawhive staff, with admin roles and the markets they may operate in.",
              "keyFields": [
                {
                  "name": "roles",
                  "meaning": "admin roles: SUPER_ADMIN, OPS_MANAGER, MARKETPLACE_MANAGER, etc."
                },
                {
                  "name": "markets",
                  "meaning": "which markets (US/GB) the admin's powers apply to"
                },
                {
                  "name": "isActive",
                  "meaning": "deactivated profiles keep history but grant nothing"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Company",
              "service": "identity-service",
              "db": "identity-db",
              "file": "services/identity-service/prisma/schema.prisma",
              "line": 427,
              "idPrefix": "comp_",
              "doc": "Company/organization entity",
              "fieldCount": 10,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "name",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "tradingAsName",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "registrationNumber",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "taxNumber",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "otherData",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Anything that's custom data entered by the user",
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "contactId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "contact",
                  "type": "Contact",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "The organisation-shaped detail record behind a COMPANY contact: legal and trading names, registration and tax numbers.",
              "keyFields": [
                {
                  "name": "name",
                  "meaning": "registered company name"
                },
                {
                  "name": "tradingAsName",
                  "meaning": "trading name if different"
                },
                {
                  "name": "registrationNumber",
                  "meaning": "companies-register number"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "ConflictCheck",
              "service": "identity-service",
              "db": "identity-db",
              "file": "services/identity-service/prisma/schema.prisma",
              "line": 515,
              "idPrefix": "cchk_",
              "doc": null,
              "fieldCount": 19,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firm",
                  "type": "Firm",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "status",
                  "type": "ConflictCheckStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "outcome",
                  "type": "ConflictCheckOutcome",
                  "list": false,
                  "optional": true,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "note",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdById",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdBy",
                  "type": "Identity",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "completedById",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "completedBy",
                  "type": "Identity",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "completedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "reportUrl",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "deletedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "deletedById",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "deletedBy",
                  "type": "Identity",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "search",
                  "type": "ConflictCheckSearch",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "attachments",
                  "type": "ConflictCheckAttachment",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "core",
              "meaning": "A firm's conflict-of-interest check: searches over the address book, completed with an outcome, attachable to matters.",
              "keyFields": [
                {
                  "name": "status",
                  "meaning": "NEW → COMPLETED"
                },
                {
                  "name": "outcome",
                  "meaning": "CONFLICT, NO_CONFLICT, or RISK_OF_CONFLICT"
                },
                {
                  "name": "note",
                  "meaning": "the checker's reasoning"
                },
                {
                  "name": "reportUrl",
                  "meaning": "link to the generated conflict report"
                },
                {
                  "name": "completedById",
                  "meaning": "who signed the check off"
                }
              ],
              "references": [],
              "lifecycle": "NEW → COMPLETED",
              "grouped": [
                "ConflictCheckSearch",
                "ConflictCheckAttachment"
              ]
            },
            {
              "name": "ConflictCheckAttachment",
              "service": "identity-service",
              "db": "identity-db",
              "file": "services/identity-service/prisma/schema.prisma",
              "line": 561,
              "idPrefix": "ccat_",
              "doc": null,
              "fieldCount": 11,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "conflictCheckId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "conflictCheck",
                  "type": "ConflictCheck",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdById",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdBy",
                  "type": "Identity",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "deletedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "deletedById",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "deletedBy",
                  "type": "Identity",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "matterId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "Pins a completed conflict check to a matter, so the case carries its clearance record.",
              "keyFields": [
                {
                  "name": "matterId",
                  "meaning": "the matter the check is attached to"
                },
                {
                  "name": "deletedAt",
                  "meaning": "soft-delete when detached"
                }
              ],
              "references": [
                {
                  "field": "matterId",
                  "target": "matters",
                  "meaning": "the matter this conflict check clears"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "ConflictCheckSearch",
              "service": "identity-service",
              "db": "identity-db",
              "file": "services/identity-service/prisma/schema.prisma",
              "line": 547,
              "idPrefix": "ccsr_",
              "doc": null,
              "fieldCount": 8,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "conflictCheckId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "conflictCheck",
                  "type": "ConflictCheck",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "input",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "output",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matchingContactIds",
                  "type": "String",
                  "list": true,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "The recorded search behind a conflict check: what was searched, what came back, and which contacts matched.",
              "keyFields": [
                {
                  "name": "input",
                  "meaning": "the search terms as entered"
                },
                {
                  "name": "output",
                  "meaning": "the raw search results"
                },
                {
                  "name": "matchingContactIds",
                  "meaning": "contacts flagged as potential conflicts"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Contact",
              "service": "identity-service",
              "db": "identity-db",
              "file": "services/identity-service/prisma/schema.prisma",
              "line": 362,
              "idPrefix": "ctct_",
              "doc": "Unified Contact - can be either an Individual or a Company",
              "fieldCount": 18,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firm",
                  "type": "Firm",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "type",
                  "type": "ContactType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "company",
                  "type": "Company",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "individual",
                  "type": "Individual",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "state",
                  "type": "ContactState",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "notes",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "contactMethods",
                  "type": "ContactMethod",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Contact details (can have multiple of each)",
                  "fk": false
                },
                {
                  "name": "addresses",
                  "type": "ContactAddress",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Basic audit",
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdById",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdBy",
                  "type": "Identity",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "identityId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Optional because not all contacts are actual users.",
                  "fk": false
                },
                {
                  "name": "identity",
                  "type": "Identity",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "parentRelations",
                  "type": "ContactRelation",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Contact relationships (generic parent/child relationships)",
                  "fk": false
                },
                {
                  "name": "childRelations",
                  "type": "ContactRelation",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "core",
              "meaning": "A firm's address-book entry — an individual or a company: opposing parties, witnesses, related businesses. Optionally linked to an Identity when the contact is also a platform user.",
              "keyFields": [
                {
                  "name": "type",
                  "meaning": "INDIVIDUAL or COMPANY — which detail record it carries"
                },
                {
                  "name": "firmId",
                  "meaning": "the firm whose address book this belongs to"
                },
                {
                  "name": "state",
                  "meaning": "ACTIVE → DELETED (soft delete, restorable)"
                },
                {
                  "name": "identityId",
                  "meaning": "set when the contact is also a real user"
                },
                {
                  "name": "notes",
                  "meaning": "free-text notes about the contact"
                }
              ],
              "references": [],
              "lifecycle": "ACTIVE → DELETED",
              "grouped": [
                "Individual",
                "Company",
                "ContactMethod",
                "ContactAddress",
                "ContactRelation"
              ]
            },
            {
              "name": "ContactAddress",
              "service": "identity-service",
              "db": "identity-db",
              "file": "services/identity-service/prisma/schema.prisma",
              "line": 470,
              "idPrefix": "cadr_",
              "doc": null,
              "fieldCount": 12,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "contactId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "contact",
                  "type": "Contact",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "lines",
                  "type": "String",
                  "list": true,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "city",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "province",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "postalCode",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "country",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "label",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "isPrimary",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A postal address for a contact, with a label and a primary flag.",
              "keyFields": [
                {
                  "name": "lines",
                  "meaning": "the street-address lines"
                },
                {
                  "name": "country",
                  "meaning": "country of the address"
                },
                {
                  "name": "isPrimary",
                  "meaning": "the contact's main address"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "ContactMethod",
              "service": "identity-service",
              "db": "identity-db",
              "file": "services/identity-service/prisma/schema.prisma",
              "line": 452,
              "idPrefix": "ctinf_",
              "doc": null,
              "fieldCount": 9,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "contactId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "contact",
                  "type": "Contact",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "label",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "value",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "type",
                  "type": "ContactInfoType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "isPrimary",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "One way to reach a contact — an email, phone number, or other channel; a contact can have several.",
              "keyFields": [
                {
                  "name": "type",
                  "meaning": "EMAIL, PHONE, or OTHER"
                },
                {
                  "name": "value",
                  "meaning": "the address or number itself"
                },
                {
                  "name": "isPrimary",
                  "meaning": "the preferred method of its type"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "ContactRelation",
              "service": "identity-service",
              "db": "identity-db",
              "file": "services/identity-service/prisma/schema.prisma",
              "line": 492,
              "idPrefix": "crel_",
              "doc": "Generic relationship between contacts (replaces CompanyMembership)",
              "fieldCount": 8,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "parentContactId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "parentContact",
                  "type": "Contact",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "childContactId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "childContact",
                  "type": "Contact",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "role",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A generic parent/child link between two contacts with a role — e.g. a person as director of a company. Replaces the old CompanyMembership.",
              "keyFields": [
                {
                  "name": "parentContactId",
                  "meaning": "the containing contact (usually a company)"
                },
                {
                  "name": "childContactId",
                  "meaning": "the related contact (usually a person)"
                },
                {
                  "name": "role",
                  "meaning": "free-text role, e.g. director"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Credential",
              "service": "identity-service",
              "db": "identity-db",
              "file": "services/identity-service/prisma/schema.prisma",
              "line": 261,
              "idPrefix": "cred_",
              "doc": null,
              "fieldCount": 8,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "authenticatorMethod",
                  "type": "AuthenticatorMethod",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "externalId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "externalProviderInstanceId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "identityId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": "Relations",
                  "fk": false
                },
                {
                  "name": "identity",
                  "type": "Identity",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "externalId",
                "externalProviderInstanceId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "Links an Identity to its external authenticator user — today only Clerk (authenticatorMethod: CLERK).",
              "keyFields": [
                {
                  "name": "authenticatorMethod",
                  "meaning": "the auth provider; CLERK is the only value"
                },
                {
                  "name": "externalId",
                  "meaning": "the user's id in the provider"
                },
                {
                  "name": "externalProviderInstanceId",
                  "meaning": "which provider instance (Clerk environment) the id belongs to"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Event",
              "service": "identity-service",
              "db": "identity-db",
              "file": "services/identity-service/prisma/schema.prisma",
              "line": 704,
              "idPrefix": "evt_",
              "doc": null,
              "fieldCount": 7,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "timestamp",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "type",
                  "type": "EventType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "key",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "aggregateId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "aggregateType",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "payload",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "aggregateId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "The domain's internal append-only event log: every published event lands here with its aggregate id, giving per-record history.",
              "keyFields": [
                {
                  "name": "key",
                  "meaning": "the event name, e.g. contact.methodsUpdated"
                },
                {
                  "name": "aggregateId",
                  "meaning": "the record the event is about"
                },
                {
                  "name": "type",
                  "meaning": "aggregate (kept as history) or ephemeral"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "FieldApplication",
              "service": "identity-service",
              "db": "identity-db",
              "file": "services/identity-service/prisma/schema.prisma",
              "line": 669,
              "idPrefix": "fapl_",
              "doc": null,
              "fieldCount": 12,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firm",
                  "type": "Firm",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "entityId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Type derived from prefix via id-schemas brands at the API boundary",
                  "fk": false
                },
                {
                  "name": "fieldDefinitionId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "fieldDefinition",
                  "type": "FieldDefinition",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "value",
                  "type": "Json",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "deletedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdById",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdBy",
                  "type": "Identity",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "entityId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A custom field applied to one entity (a matter or contact) with its current value.",
              "keyFields": [
                {
                  "name": "entityId",
                  "meaning": "the matter or contact the value sits on; type read from the id prefix"
                },
                {
                  "name": "value",
                  "meaning": "the applied value as JSON"
                },
                {
                  "name": "deletedAt",
                  "meaning": "soft-delete when the field is removed from the entity"
                }
              ],
              "references": [
                {
                  "field": "entityId",
                  "target": "matters",
                  "meaning": "the matter carrying the value, when applied to a matter"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "FieldDefinition",
              "service": "identity-service",
              "db": "identity-db",
              "file": "services/identity-service/prisma/schema.prisma",
              "line": 605,
              "idPrefix": "fdef_",
              "doc": null,
              "fieldCount": 15,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firm",
                  "type": "Firm",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "entityTypes",
                  "type": "FieldEntityType",
                  "list": true,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "type",
                  "type": "FieldType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "label",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "description",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "constraints",
                  "type": "Json",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "archivedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdById",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdBy",
                  "type": "Identity",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "applications",
                  "type": "FieldApplication",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "optionSet",
                  "type": "FieldOptionSet",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "core",
              "meaning": "A firm-defined custom field (text, money, date, select, reference…) applicable to matters and contacts.",
              "keyFields": [
                {
                  "name": "type",
                  "meaning": "TEXT, NUMBER, DATE, MONEY, SELECT, ADDRESS, REFERENCE…"
                },
                {
                  "name": "entityTypes",
                  "meaning": "where it can apply: MATTER and/or CONTACT"
                },
                {
                  "name": "label",
                  "meaning": "the field's display name"
                },
                {
                  "name": "constraints",
                  "meaning": "validation rules as JSON"
                },
                {
                  "name": "archivedAt",
                  "meaning": "archived definitions stop accepting new values"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": [
                "FieldApplication",
                "FieldOptionSet",
                "FieldOption"
              ]
            },
            {
              "name": "FieldOption",
              "service": "identity-service",
              "db": "identity-db",
              "file": "services/identity-service/prisma/schema.prisma",
              "line": 648,
              "idPrefix": "fopt_",
              "doc": null,
              "fieldCount": 10,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firm",
                  "type": "Firm",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "optionSetId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "optionSet",
                  "type": "FieldOptionSet",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "label",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "position",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "archivedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "One choosable option in a SELECT field's option set, ordered by position.",
              "keyFields": [
                {
                  "name": "label",
                  "meaning": "the option text"
                },
                {
                  "name": "position",
                  "meaning": "sort order in the dropdown"
                },
                {
                  "name": "archivedAt",
                  "meaning": "hidden from new picks but kept for old values"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "FieldOptionSet",
              "service": "identity-service",
              "db": "identity-db",
              "file": "services/identity-service/prisma/schema.prisma",
              "line": 634,
              "idPrefix": "fopts_",
              "doc": "One FieldOptionSet per SELECT FieldDefinition.",
              "fieldCount": 8,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firm",
                  "type": "Firm",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "fieldDefinitionId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "fieldDefinition",
                  "type": "FieldDefinition",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "options",
                  "type": "FieldOption",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "The option list for one SELECT field definition — exactly one set per SELECT field.",
              "keyFields": [
                {
                  "name": "fieldDefinitionId",
                  "meaning": "the SELECT definition it belongs to"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Firm",
              "service": "identity-service",
              "db": "identity-db",
              "file": "services/identity-service/prisma/schema.prisma",
              "line": 177,
              "idPrefix": "firm_",
              "doc": null,
              "fieldCount": 22,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "name",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "employerIdentificationNumber",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "address",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "market",
                  "type": "Market",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "metadata",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "caseAlertsEnabled",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "defaultJurisdictionId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "enrolledToMarketplace",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "members",
                  "type": "FirmMember",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Relations",
                  "fk": false
                },
                {
                  "name": "teams",
                  "type": "Team",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "letterheads",
                  "type": "FirmLetterhead",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "contacts",
                  "type": "Contact",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "conflictChecks",
                  "type": "ConflictCheck",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "marketFirmOfRecords",
                  "type": "MarketFirmOfRecord",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmBankAccounts",
                  "type": "FirmBankAccount",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "fieldDefinitions",
                  "type": "FieldDefinition",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "fieldOptionSets",
                  "type": "FieldOptionSet",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "fieldOptions",
                  "type": "FieldOption",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "fieldApplications",
                  "type": "FieldApplication",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "defaultJurisdictionId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "A law firm: name, address, market, and marketplace enrolment. The firm_ id that everything else points at.",
              "keyFields": [
                {
                  "name": "market",
                  "meaning": "US or GB — which market the firm operates in"
                },
                {
                  "name": "enrolledToMarketplace",
                  "meaning": "whether the firm takes marketplace work"
                },
                {
                  "name": "employerIdentificationNumber",
                  "meaning": "the firm's tax/company identifier"
                },
                {
                  "name": "defaultJurisdictionId",
                  "meaning": "default jurisdiction for new matters"
                },
                {
                  "name": "caseAlertsEnabled",
                  "meaning": "whether the firm receives case alert notifications"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": [
                "FirmMember",
                "Team",
                "TeamMember",
                "FirmBankAccount",
                "FirmLetterhead",
                "MarketFirmOfRecord"
              ]
            },
            {
              "name": "FirmBankAccount",
              "service": "identity-service",
              "db": "identity-db",
              "file": "services/identity-service/prisma/schema.prisma",
              "line": 206,
              "idPrefix": "fba_",
              "doc": null,
              "fieldCount": 10,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firm",
                  "type": "Firm",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "role",
                  "type": "FirmBankAccountRole",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "currency",
                  "type": "Currency",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "isDefault",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "status",
                  "type": "FirmBankAccountStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "bankMetadata",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "core",
              "meaning": "A firm's bank account, split by role: OFFICE money vs CLIENT money. The seed of the accounting domain.",
              "keyFields": [
                {
                  "name": "role",
                  "meaning": "OFFICE or CLIENT — which side of the client-money wall"
                },
                {
                  "name": "currency",
                  "meaning": "GBP, USD, or EUR"
                },
                {
                  "name": "isDefault",
                  "meaning": "the default account for its role"
                },
                {
                  "name": "status",
                  "meaning": "ACTIVE → ARCHIVED"
                },
                {
                  "name": "bankMetadata",
                  "meaning": "provider-specific account details"
                }
              ],
              "references": [],
              "lifecycle": "ACTIVE → ARCHIVED",
              "grouped": []
            },
            {
              "name": "FirmLetterhead",
              "service": "identity-service",
              "db": "identity-db",
              "file": "services/identity-service/prisma/schema.prisma",
              "line": 310,
              "idPrefix": "flth_",
              "doc": null,
              "fieldCount": 10,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firm",
                  "type": "Firm",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "logoImg",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "logoPosition",
                  "type": "LogoPosition",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "footerEnabled",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "footerText",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "footerHelpEmail",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A firm's document branding: logo, logo position, and optional footer text used when rendering documents.",
              "keyFields": [
                {
                  "name": "logoImg",
                  "meaning": "the letterhead logo image"
                },
                {
                  "name": "logoPosition",
                  "meaning": "LEFT, MIDDLE, or RIGHT"
                },
                {
                  "name": "footerEnabled",
                  "meaning": "whether the footer block renders"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "FirmMember",
              "service": "identity-service",
              "db": "identity-db",
              "file": "services/identity-service/prisma/schema.prisma",
              "line": 239,
              "idPrefix": "fmbr_",
              "doc": null,
              "fieldCount": 12,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "role",
                  "type": "FirmMemberRole",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "isLeadFirmContact",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "jobTitle",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Relations",
                  "fk": false
                },
                {
                  "name": "firm",
                  "type": "Firm",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "identityId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "identity",
                  "type": "Identity",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "isDeleted",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "savedFilterViews",
                  "type": "SavedFilterView",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "core",
              "meaning": "An Identity's membership in a Firm, with a role that drives permissions.",
              "keyFields": [
                {
                  "name": "role",
                  "meaning": "ADMIN, LAWYER, or SUPPORT"
                },
                {
                  "name": "isLeadFirmContact",
                  "meaning": "the firm's main point of contact"
                },
                {
                  "name": "jobTitle",
                  "meaning": "free-text title shown in the product"
                },
                {
                  "name": "isDeleted",
                  "meaning": "soft-delete; leaving a firm keeps the history row"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Identity",
              "service": "identity-service",
              "db": "identity-db",
              "file": "services/identity-service/prisma/schema.prisma",
              "line": 94,
              "idPrefix": "pers_",
              "doc": null,
              "fieldCount": 31,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "type",
                  "type": "IdentityType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "isDeleted",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firstName",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "lastName",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "imageUrl",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "contactEmail",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "contactPhone",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "stripeCustomerId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "knockSubscribed",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "assignmentAvailabilityStatus",
                  "type": "AssignmentAvailabilityStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "metadata",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "credentials",
                  "type": "Credential",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Relations",
                  "fk": false
                },
                {
                  "name": "outOfOfficeSchedules",
                  "type": "OutOfOfficeSchedule",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmMemberships",
                  "type": "FirmMember",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "teamMemberships",
                  "type": "TeamMember",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "sentReviews",
                  "type": "Review",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "receivedReviews",
                  "type": "Review",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "legalRegistrations",
                  "type": "LegalRegistration",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "adminProfile",
                  "type": "AdminProfile",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdContacts",
                  "type": "Contact",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "contacts",
                  "type": "Contact",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdConflictChecks",
                  "type": "ConflictCheck",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "completedConflictChecks",
                  "type": "ConflictCheck",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "deletedConflictChecks",
                  "type": "ConflictCheck",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdConflictCheckAttachments",
                  "type": "ConflictCheckAttachment",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "deletedConflictCheckAttachments",
                  "type": "ConflictCheckAttachment",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdFieldDefinitions",
                  "type": "FieldDefinition",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdFieldApplications",
                  "type": "FieldApplication",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "stripeCustomerId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "A person: lawyer, firm staff, client, or admin. The pers_ id that nearly every other domain points at.",
              "keyFields": [
                {
                  "name": "type",
                  "meaning": "identity kind; today always USER"
                },
                {
                  "name": "contactEmail",
                  "meaning": "primary email, kept in sync with the auth layer"
                },
                {
                  "name": "stripeCustomerId",
                  "meaning": "the person's Stripe customer for payments"
                },
                {
                  "name": "assignmentAvailabilityStatus",
                  "meaning": "ACTIVE/INACTIVE — whether they can take marketplace assignments"
                },
                {
                  "name": "isDeleted",
                  "meaning": "soft-delete flag; identities are never hard-deleted"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": [
                "Credential",
                "AdminProfile",
                "LegalRegistration",
                "OutOfOfficeSchedule"
              ]
            },
            {
              "name": "Individual",
              "service": "identity-service",
              "db": "identity-db",
              "file": "services/identity-service/prisma/schema.prisma",
              "line": 402,
              "idPrefix": "indv_",
              "doc": "Individual person entity",
              "fieldCount": 12,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firstName",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Commonly required fields",
                  "fk": false
                },
                {
                  "name": "lastName",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "middleName",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Optional structured fields useful everywhere",
                  "fk": false
                },
                {
                  "name": "preferredName",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "title",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "gender",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "otherData",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Anything that's custom to the individual",
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "contactId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "contact",
                  "type": "Contact",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "The person-shaped detail record behind an INDIVIDUAL contact: names, title, gender, plus custom data.",
              "keyFields": [
                {
                  "name": "firstName",
                  "meaning": "given name"
                },
                {
                  "name": "lastName",
                  "meaning": "family name"
                },
                {
                  "name": "otherData",
                  "meaning": "user-entered custom fields as JSON"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "LegalRegistration",
              "service": "identity-service",
              "db": "identity-db",
              "file": "services/identity-service/prisma/schema.prisma",
              "line": 164,
              "idPrefix": "legr_",
              "doc": null,
              "fieldCount": 7,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "jurisdictionId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "registrationNumber",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "identityId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "identity",
                  "type": "Identity",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "jurisdictionId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A lawyer's licence to practise in one jurisdiction, with their registration number.",
              "keyFields": [
                {
                  "name": "jurisdictionId",
                  "meaning": "the jurisdiction the licence covers"
                },
                {
                  "name": "registrationNumber",
                  "meaning": "the bar/regulator registration number"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "MarketFirmOfRecord",
              "service": "identity-service",
              "db": "identity-db",
              "file": "services/identity-service/prisma/schema.prisma",
              "line": 227,
              "idPrefix": null,
              "doc": "Per market firmOfRecord for marketplace matters.",
              "fieldCount": 5,
              "fields": [
                {
                  "name": "market",
                  "type": "Market",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firm",
                  "type": "Firm",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "Which firm fronts marketplace matters in each market — one firm-of-record per market.",
              "keyFields": [
                {
                  "name": "market",
                  "meaning": "US or GB; the primary key"
                },
                {
                  "name": "firmId",
                  "meaning": "the firm acting as firm of record there"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "OutOfOfficeSchedule",
              "service": "identity-service",
              "db": "identity-db",
              "file": "services/identity-service/prisma/schema.prisma",
              "line": 151,
              "idPrefix": "ooffsche_",
              "doc": null,
              "fieldCount": 8,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "identityId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "identity",
                  "type": "Identity",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "startDate",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "endDate",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "message",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A dated out-of-office window for an Identity; feeds assignment availability.",
              "keyFields": [
                {
                  "name": "startDate",
                  "meaning": "when the absence begins"
                },
                {
                  "name": "endDate",
                  "meaning": "when the absence ends"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Review",
              "service": "identity-service",
              "db": "identity-db",
              "file": "services/identity-service/prisma/schema.prisma",
              "line": 289,
              "idPrefix": "rev_",
              "doc": null,
              "fieldCount": 14,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "rating",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "review",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "reviewingIdentityId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Relations",
                  "fk": false
                },
                {
                  "name": "reviewingIdentity",
                  "type": "Identity",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "reviewedIdentityId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "reviewedIdentity",
                  "type": "Identity",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "reviewSourceId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "reviewSourceType",
                  "type": "ReviewSourceType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "shouldCountTowardsOverallRating",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "isPubliclyVisible",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "superseded",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "reviewSourceId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "A rating one person leaves about another, sourced from a matter; controls what counts toward the public rating.",
              "keyFields": [
                {
                  "name": "rating",
                  "meaning": "the numeric score"
                },
                {
                  "name": "reviewSourceId",
                  "meaning": "the matter the review came from"
                },
                {
                  "name": "shouldCountTowardsOverallRating",
                  "meaning": "included in the rating average or not"
                },
                {
                  "name": "isPubliclyVisible",
                  "meaning": "shown on the public profile"
                },
                {
                  "name": "superseded",
                  "meaning": "replaced by a later review of the same source"
                }
              ],
              "references": [
                {
                  "field": "reviewSourceId",
                  "target": "matters",
                  "meaning": "the matter the review is about (reviewSourceType: MATTER)"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "SavedFilterView",
              "service": "identity-service",
              "db": "identity-db",
              "file": "services/identity-service/prisma/schema.prisma",
              "line": 134,
              "idPrefix": "sfv_",
              "doc": null,
              "fieldCount": 8,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmMemberId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "owner",
                  "type": "FirmMember",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "surface",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "name",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "snapshot",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A firm member's saved filter configuration for a list surface — personal UI state, nothing more.",
              "keyFields": [
                {
                  "name": "surface",
                  "meaning": "which list screen the view belongs to"
                },
                {
                  "name": "name",
                  "meaning": "the saved view's name"
                },
                {
                  "name": "snapshot",
                  "meaning": "the filter state as JSON"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Team",
              "service": "identity-service",
              "db": "identity-db",
              "file": "services/identity-service/prisma/schema.prisma",
              "line": 325,
              "idPrefix": "team_",
              "doc": null,
              "fieldCount": 8,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firm",
                  "type": "Firm",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "name",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "members",
                  "type": "TeamMember",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Relations",
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "deletedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "core",
              "meaning": "A sub-group within a firm (a practice group); matters can grant access to a whole team.",
              "keyFields": [
                {
                  "name": "name",
                  "meaning": "the team's display name"
                },
                {
                  "name": "firmId",
                  "meaning": "the owning firm"
                },
                {
                  "name": "deletedAt",
                  "meaning": "soft-delete timestamp"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "TeamMember",
              "service": "identity-service",
              "db": "identity-db",
              "file": "services/identity-service/prisma/schema.prisma",
              "line": 340,
              "idPrefix": "tmbr_",
              "doc": null,
              "fieldCount": 9,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "role",
                  "type": "TeamMemberRole",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "teamId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Relations",
                  "fk": false
                },
                {
                  "name": "team",
                  "type": "Team",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "identityId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "identity",
                  "type": "Identity",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "deletedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "An Identity's place on a Team, as OWNER or MEMBER.",
              "keyFields": [
                {
                  "name": "role",
                  "meaning": "OWNER or MEMBER"
                },
                {
                  "name": "deletedAt",
                  "meaning": "soft-delete timestamp"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            }
          ]
        },
        {
          "name": "auth-service",
          "group": "services",
          "db": "auth-db",
          "enums": [],
          "models": [
            {
              "name": "Account",
              "service": "auth-service",
              "db": "auth-db",
              "file": "services/auth-service/prisma/schema.prisma",
              "line": 46,
              "idPrefix": null,
              "doc": null,
              "fieldCount": 14,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "accountId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "providerId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "userId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "user",
                  "type": "User",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "accessToken",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "refreshToken",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "idToken",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "accessTokenExpiresAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "refreshTokenExpiresAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "scope",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "password",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "accountId",
                "providerId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A user's link to one auth provider (or password), holding its tokens — standard better-auth plumbing.",
              "keyFields": [
                {
                  "name": "providerId",
                  "meaning": "which auth provider the account is with"
                },
                {
                  "name": "accessToken",
                  "meaning": "the provider access token"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Apikey",
              "service": "auth-service",
              "db": "auth-db",
              "file": "services/auth-service/prisma/schema.prisma",
              "line": 123,
              "idPrefix": null,
              "doc": null,
              "fieldCount": 22,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "configId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "name",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "start",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "referenceId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "prefix",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "key",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "refillInterval",
                  "type": "Int",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "refillAmount",
                  "type": "Int",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "lastRefillAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "enabled",
                  "type": "Boolean",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "rateLimitEnabled",
                  "type": "Boolean",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "rateLimitTimeWindow",
                  "type": "Int",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "rateLimitMax",
                  "type": "Int",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "requestCount",
                  "type": "Int",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "remaining",
                  "type": "Int",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "lastRequest",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "expiresAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "permissions",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "metadata",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "configId",
                "referenceId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "An API key for programmatic access, tied to an identity, with rate limits, refill, and expiry.",
              "keyFields": [
                {
                  "name": "referenceId",
                  "meaning": "the identity/owner the key acts as"
                },
                {
                  "name": "prefix",
                  "meaning": "the visible key prefix for identification"
                },
                {
                  "name": "enabled",
                  "meaning": "kill switch without deletion"
                },
                {
                  "name": "rateLimitMax",
                  "meaning": "max requests per rate-limit window"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Invitation",
              "service": "auth-service",
              "db": "auth-db",
              "file": "services/auth-service/prisma/schema.prisma",
              "line": 106,
              "idPrefix": null,
              "doc": null,
              "fieldCount": 10,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "organizationId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "organization",
                  "type": "Organization",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "email",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "role",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "status",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "expiresAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "inviterId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "user",
                  "type": "User",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A pending invitation to join an auth organization by email, with a role and expiry.",
              "keyFields": [
                {
                  "name": "email",
                  "meaning": "who's invited"
                },
                {
                  "name": "status",
                  "meaning": "the invitation's state"
                },
                {
                  "name": "expiresAt",
                  "meaning": "when the invite lapses"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Member",
              "service": "auth-service",
              "db": "auth-db",
              "file": "services/auth-service/prisma/schema.prisma",
              "line": 92,
              "idPrefix": null,
              "doc": null,
              "fieldCount": 7,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "organizationId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "organization",
                  "type": "Organization",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "userId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "user",
                  "type": "User",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "role",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A user's membership in an auth organization; FirmMember roles map to better-auth's owner/member.",
              "keyFields": [
                {
                  "name": "role",
                  "meaning": "owner (from firm ADMIN) or member"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Organization",
              "service": "auth-service",
              "db": "auth-db",
              "file": "services/auth-service/prisma/schema.prisma",
              "line": 78,
              "idPrefix": null,
              "doc": null,
              "fieldCount": 8,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "name",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "slug",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "logo",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "metadata",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "members",
                  "type": "Member",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "invitations",
                  "type": "Invitation",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "better-auth's organization, mirroring a Firm for session scoping; a session's activeOrganizationId points here.",
              "keyFields": [
                {
                  "name": "slug",
                  "meaning": "URL-safe organization handle"
                },
                {
                  "name": "name",
                  "meaning": "display name, mirrored from the firm"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": [
                "Member",
                "Invitation"
              ]
            },
            {
              "name": "Session",
              "service": "auth-service",
              "db": "auth-db",
              "file": "services/auth-service/prisma/schema.prisma",
              "line": 29,
              "idPrefix": null,
              "doc": null,
              "fieldCount": 10,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "expiresAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "token",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "ipAddress",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "userAgent",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "userId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "user",
                  "type": "User",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "activeOrganizationId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "activeOrganizationId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "One login session: token, expiry, device info, and which organization (firm) is currently active.",
              "keyFields": [
                {
                  "name": "token",
                  "meaning": "the session token"
                },
                {
                  "name": "expiresAt",
                  "meaning": "when the session dies"
                },
                {
                  "name": "activeOrganizationId",
                  "meaning": "the firm context the user is acting in"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "User",
              "service": "auth-service",
              "db": "auth-db",
              "file": "services/auth-service/prisma/schema.prisma",
              "line": 12,
              "idPrefix": null,
              "doc": null,
              "fieldCount": 11,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "name",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "email",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "emailVerified",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "image",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "sessions",
                  "type": "Session",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "accounts",
                  "type": "Account",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "members",
                  "type": "Member",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "invitations",
                  "type": "Invitation",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "better-auth's user record, mirroring an Identity: created with the Identity's own id, email and name kept in sync.",
              "keyFields": [
                {
                  "name": "id",
                  "meaning": "same id as the mirrored Identity"
                },
                {
                  "name": "email",
                  "meaning": "synced from the Identity's contactEmail"
                },
                {
                  "name": "emailVerified",
                  "meaning": "set when the Identity has a contact email"
                }
              ],
              "references": [
                {
                  "field": "id",
                  "target": "people",
                  "meaning": "the Identity this auth user mirrors, by shared id"
                }
              ],
              "lifecycle": null,
              "grouped": [
                "Session",
                "Account",
                "Verification"
              ]
            },
            {
              "name": "Verification",
              "service": "auth-service",
              "db": "auth-db",
              "file": "services/auth-service/prisma/schema.prisma",
              "line": 66,
              "idPrefix": null,
              "doc": null,
              "fieldCount": 6,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "identifier",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "value",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "expiresAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A short-lived verification token (email confirmation, magic link) — better-auth plumbing.",
              "keyFields": [
                {
                  "name": "identifier",
                  "meaning": "what's being verified, usually an email"
                },
                {
                  "name": "expiresAt",
                  "meaning": "token expiry"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            }
          ]
        }
      ]
    },
    {
      "id": "matters",
      "order": 2,
      "name": "Matters: the legal case",
      "services": [
        "matter-service"
      ],
      "databases": [
        "matter-db"
      ],
      "tagline": "The centre of the platform: one Matter per legal case, everything else hangs off it.",
      "whatItIs": "A Matter is one legal case, and it is the centre of the platform. Everything about a piece of legal work lives on it: who is involved, what needs doing and by when, the documents being drafted, the files uploaded, the notes taken, the calls recorded, and the emails filed against it. Matters open in two ways: automatically when a marketplace client accepts a quote, or by hand when a firm opens a case for itself. From there the firm manages participants and team access, runs tasks and key dates, drafts and finalises documents, requests approvals, and can build templates to open the next case faster. It is the biggest schema on the platform (37 models) for exactly that reason.",
      "howItConnects": "If the platform has a hub, this is it. Every other domain refers back to the matter it is working on: chat channels are created per matter, emails and scanned post get filed onto matters, bills are raised against matters, and Lawrence reads the matter to stay useful. The matter itself leans on People & firms for who is involved, on Content for document bodies, on the deal for the quote that created it, and on money for what has been paid. When a matter is created, an event fans out and the rest of the platform sets itself up around it.",
      "lifecycle": "OPENING → ACTIVE → COMPLETED / CANCELLED",
      "flows": [
        {
          "id": "matter-lifecycle",
          "title": "Matter lifecycle",
          "mermaid": "stateDiagram-v2\n    [*] --> OPENING\n    OPENING --> ACTIVE\n    ACTIVE --> COMPLETED\n    ACTIVE --> CANCELLED\n    COMPLETED --> ACTIVE: reopen",
          "caption": "Matches the MatterStatus enum. Completed matters can be reopened; cancellation is terminal."
        }
      ],
      "notes": [
        {
          "kind": "legacy",
          "body": "MatterArtifact (+ MatterArtifactVersion, LegalFormMatterArtifact) is the older generated-document model, mid-migration into MatterDocument — the schema carries sourceMatterArtifactId and migrationStatus for the cutover. Channel, ChannelMember, Message, and MatterChannel are dead Sendbird-era chat tables with zero code reads; live chat is the Chat domain. The matterChannel router that still exists only validates chat access against Matter and MatterParticipant — it never touches these tables."
        }
      ],
      "events": {
        "publishes": [
          {
            "name": "legl/engage.readyForReview",
            "service": "matter-service",
            "live": "active"
          },
          {
            "name": "legl/engage.reviewed",
            "service": "matter-service",
            "live": "active"
          },
          {
            "name": "matter-service/backfillMatterTeamAccess",
            "service": "matter-service",
            "live": "silent"
          },
          {
            "name": "matter-service/call.attendance-note.requested",
            "service": "matter-service",
            "live": "active"
          },
          {
            "name": "matter-service/call.transcription.requested",
            "service": "matter-service",
            "live": "active"
          },
          {
            "name": "matter-service/email.matched",
            "service": "matter-service",
            "live": "rare"
          },
          {
            "name": "matter-service/file.deleted",
            "service": "matter-service",
            "live": "active"
          },
          {
            "name": "matter-service/file.matterUpdated",
            "service": "matter-service",
            "live": "silent"
          },
          {
            "name": "matter-service/file.uploaded",
            "service": "matter-service",
            "live": "active"
          },
          {
            "name": "matter-service/matter.cancelled",
            "service": "matter-service",
            "live": "active"
          },
          {
            "name": "matter-service/matter.created",
            "service": "matter-service",
            "live": "active"
          },
          {
            "name": "matter-service/migrateMatterArtifactToDocument",
            "service": "matter-service",
            "live": "rare"
          },
          {
            "name": "matter-service/note.created",
            "service": "matter-service",
            "live": "active"
          },
          {
            "name": "matter-service/note.updated",
            "service": "matter-service",
            "live": "rare"
          }
        ],
        "consumes": [
          {
            "name": "email-service/attachment.refiled",
            "service": "matter-service",
            "live": "silent"
          },
          {
            "name": "email-service/attachment.removed",
            "service": "matter-service",
            "live": "silent"
          },
          {
            "name": "email-service/attachment.uploaded",
            "service": "matter-service",
            "live": "rare"
          },
          {
            "name": "email-service/message.created",
            "service": "matter-service",
            "live": "active"
          },
          {
            "name": "legl/engage.readyForReview",
            "service": "matter-service",
            "live": "active"
          },
          {
            "name": "legl/engage.reviewed",
            "service": "matter-service",
            "live": "active"
          },
          {
            "name": "matter-service/backfillClientContacts",
            "service": "matter-service",
            "live": "silent"
          },
          {
            "name": "matter-service/backfillMatterNotes",
            "service": "matter-service",
            "live": "silent"
          },
          {
            "name": "matter-service/backfillMatterTeamAccess",
            "service": "matter-service",
            "live": "silent"
          },
          {
            "name": "matter-service/call.conference.updated",
            "service": "matter-service",
            "live": "active"
          },
          {
            "name": "matter-service/call.failed",
            "service": "matter-service",
            "live": "silent"
          },
          {
            "name": "matter-service/call.recording.completed",
            "service": "matter-service",
            "live": "active"
          },
          {
            "name": "matter-service/call.transcription.requested",
            "service": "matter-service",
            "live": "active"
          },
          {
            "name": "matter-service/migrateMatterArtifactsToDocuments",
            "service": "matter-service",
            "live": "rare"
          },
          {
            "name": "matter-service/migrateMatterArtifactToDocument",
            "service": "matter-service",
            "live": "rare"
          },
          {
            "name": "matter-service/rollbackMatterArtifactMigration",
            "service": "matter-service",
            "live": "rare"
          },
          {
            "name": "webhook/s3/malwareScan.completed",
            "service": "matter-service",
            "live": "active"
          },
          {
            "name": "webhook/s3/malwareScan.failed",
            "service": "matter-service",
            "live": "silent"
          },
          {
            "name": "webhook/s3/malwareScan.skipped",
            "service": "matter-service",
            "live": "silent"
          },
          {
            "name": "webhooks/v3/tally/submission.received",
            "service": "matter-service",
            "live": "silent"
          }
        ]
      },
      "servicesDetail": [
        {
          "name": "matter-service",
          "group": "services",
          "db": "matter-db",
          "enums": [
            {
              "name": "AttendanceNoteStatus",
              "file": "services/matter-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "NOT_REQUESTED",
                  "doc": null
                },
                {
                  "name": "PENDING",
                  "doc": null
                },
                {
                  "name": "SUCCESS",
                  "doc": null
                },
                {
                  "name": "FAILED",
                  "doc": null
                }
              ]
            },
            {
              "name": "CallStatus",
              "file": "services/matter-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "IN_PROGRESS",
                  "doc": null
                },
                {
                  "name": "COMPLETED",
                  "doc": null
                },
                {
                  "name": "FAILED",
                  "doc": null
                }
              ]
            },
            {
              "name": "ChannelMemberType",
              "file": "services/matter-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "MEMBER",
                  "doc": null
                }
              ]
            },
            {
              "name": "CommentEntityType",
              "file": "services/matter-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "TASK",
                  "doc": null
                },
                {
                  "name": "MATTER",
                  "doc": null
                },
                {
                  "name": "INVOICE",
                  "doc": null
                },
                {
                  "name": "PERSON",
                  "doc": null
                }
              ]
            },
            {
              "name": "CommunicationType",
              "file": "services/matter-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "EMAIL",
                  "doc": null
                }
              ]
            },
            {
              "name": "EventType",
              "file": "services/matter-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "aggregate",
                  "doc": null
                },
                {
                  "name": "ephemeral",
                  "doc": null
                }
              ]
            },
            {
              "name": "FileAIIngestionStatus",
              "file": "services/matter-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "NOT_REQUESTED",
                  "doc": null
                },
                {
                  "name": "PENDING",
                  "doc": null
                },
                {
                  "name": "SUCCESS",
                  "doc": null
                },
                {
                  "name": "FAILED",
                  "doc": null
                },
                {
                  "name": "UNSUPPORTED",
                  "doc": null
                }
              ]
            },
            {
              "name": "FilePreviewStatus",
              "file": "services/matter-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "PENDING",
                  "doc": null
                },
                {
                  "name": "SUCCESS",
                  "doc": null
                },
                {
                  "name": "FAILED",
                  "doc": null
                },
                {
                  "name": "NOT_SUPPORTED",
                  "doc": null
                }
              ]
            },
            {
              "name": "LeglEngageRequestStatus",
              "file": "services/matter-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "PENDING",
                  "doc": null
                },
                {
                  "name": "READY_FOR_REVIEW",
                  "doc": null
                },
                {
                  "name": "APPROVED",
                  "doc": "Reviewed and step documents processed"
                },
                {
                  "name": "CLOSED",
                  "doc": null
                }
              ]
            },
            {
              "name": "LetterheadType",
              "file": "services/matter-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "LAWHIVE",
                  "doc": null
                },
                {
                  "name": "FIRM",
                  "doc": null
                }
              ]
            },
            {
              "name": "Market",
              "file": "services/matter-service/prisma/shared-models/market.prisma",
              "doc": null,
              "values": [
                {
                  "name": "US",
                  "doc": null
                },
                {
                  "name": "GB",
                  "doc": null
                }
              ]
            },
            {
              "name": "MatterArtifactStatus",
              "file": "services/matter-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "DRAFT",
                  "doc": null
                },
                {
                  "name": "FINAL",
                  "doc": null
                },
                {
                  "name": "DISCARDED",
                  "doc": null
                }
              ]
            },
            {
              "name": "MatterArtifactType",
              "file": "services/matter-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "BRIEFING_NOTE",
                  "doc": null
                },
                {
                  "name": "ADVICE_NOTE",
                  "doc": null
                },
                {
                  "name": "FILLED_FORM",
                  "doc": null
                },
                {
                  "name": "GENERATED_LETTER",
                  "doc": null
                },
                {
                  "name": "BLANK",
                  "doc": null
                },
                {
                  "name": "FROM_PRECEDENT",
                  "doc": null
                }
              ]
            },
            {
              "name": "MatterAttachmentEntityType",
              "file": "services/matter-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "TASK",
                  "doc": null
                }
              ]
            },
            {
              "name": "MatterContactRole",
              "file": "services/matter-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "CLIENT",
                  "doc": "Client of the system"
                },
                {
                  "name": "OTHER",
                  "doc": "Any other related contact"
                }
              ]
            },
            {
              "name": "MatterDocumentMigrationStatus",
              "file": "services/matter-service/prisma/schema.prisma",
              "doc": "TRANSIENT: dropped together with MatterDocument.migrationStatus after the migration is signed off.",
              "values": [
                {
                  "name": "PENDING_VALIDATION",
                  "doc": null
                },
                {
                  "name": "VALIDATED",
                  "doc": null
                },
                {
                  "name": "REJECTED",
                  "doc": null
                }
              ]
            },
            {
              "name": "MatterFileSource",
              "file": "services/matter-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "UPLOAD",
                  "doc": null
                },
                {
                  "name": "EMAIL",
                  "doc": null
                },
                {
                  "name": "IMPORT",
                  "doc": null
                },
                {
                  "name": "EXTERNAL_EMAIL",
                  "doc": null
                },
                {
                  "name": "EXTERNAL_EMAIL_ATTACHMENT",
                  "doc": null
                },
                {
                  "name": "MATTER_ARTIFACT",
                  "doc": null
                },
                {
                  "name": "TASK_ATTACHMENT",
                  "doc": null
                },
                {
                  "name": "MATTER_DOCUMENT_FINALISATION",
                  "doc": null
                },
                {
                  "name": "LEGL",
                  "doc": null
                }
              ]
            },
            {
              "name": "MatterFileVisibility",
              "file": "services/matter-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "ALL",
                  "doc": null
                },
                {
                  "name": "FIRM_SIDE_ONLY",
                  "doc": null
                }
              ]
            },
            {
              "name": "MatterParticipantType",
              "file": "services/matter-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "LAWYER",
                  "doc": null
                },
                {
                  "name": "TEAM_MEMBER",
                  "doc": null
                },
                {
                  "name": "CLIENT",
                  "doc": null
                }
              ]
            },
            {
              "name": "MatterPinEntityType",
              "file": "services/matter-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "MATTER_NOTE",
                  "doc": null
                }
              ]
            },
            {
              "name": "MatterSide",
              "file": "services/matter-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "CLIENT",
                  "doc": null
                },
                {
                  "name": "FIRM",
                  "doc": null
                }
              ]
            },
            {
              "name": "MatterSource",
              "file": "services/matter-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "MARKETPLACE",
                  "doc": null
                },
                {
                  "name": "ADMIN",
                  "doc": null
                }
              ]
            },
            {
              "name": "MatterStatus",
              "file": "services/matter-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "ACTIVE",
                  "doc": null
                },
                {
                  "name": "COMPLETED",
                  "doc": null
                },
                {
                  "name": "OPENING",
                  "doc": null
                },
                {
                  "name": "CANCELLED",
                  "doc": null
                }
              ]
            },
            {
              "name": "MatterTemplateStatus",
              "file": "services/matter-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "DRAFT",
                  "doc": null
                },
                {
                  "name": "ACTIVE",
                  "doc": null
                },
                {
                  "name": "ARCHIVED",
                  "doc": null
                }
              ]
            },
            {
              "name": "MessageType",
              "file": "services/matter-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "ADMIN",
                  "doc": null
                },
                {
                  "name": "TEXT",
                  "doc": null
                },
                {
                  "name": "FILE",
                  "doc": null
                },
                {
                  "name": "UNKNOWN",
                  "doc": null
                }
              ]
            },
            {
              "name": "PageSize",
              "file": "services/matter-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "A4",
                  "doc": null
                },
                {
                  "name": "LETTER",
                  "doc": null
                }
              ]
            },
            {
              "name": "ReviewRequestStatus",
              "file": "services/matter-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "PENDING",
                  "doc": null
                },
                {
                  "name": "APPROVED",
                  "doc": null
                },
                {
                  "name": "REJECTED",
                  "doc": null
                }
              ]
            },
            {
              "name": "ReviewRequestType",
              "file": "services/matter-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "FEE_AGREEMENT_COMPLETION",
                  "doc": null
                },
                {
                  "name": "REASSIGNMENT",
                  "doc": null
                }
              ]
            }
          ],
          "models": [
            {
              "name": "Call",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 216,
              "idPrefix": "call_",
              "doc": null,
              "fieldCount": 15,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matter",
                  "type": "Matter",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "initiatingIdentityId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "participants",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "twilioSid",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "recordingUrl",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "transcriptUrl",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "startedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "completedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "callStatus",
                  "type": "CallStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "attendanceNoteStatus",
                  "type": "AttendanceNoteStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "attendanceNoteId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "initiatingIdentityId",
                "attendanceNoteId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "A voice call attached to the matter, via Twilio: recording, transcript, and an optionally AI-generated attendance note.",
              "keyFields": [
                {
                  "name": "twilioSid",
                  "meaning": "the Twilio call this row mirrors"
                },
                {
                  "name": "callStatus",
                  "meaning": "IN_PROGRESS → COMPLETED / FAILED"
                },
                {
                  "name": "attendanceNoteStatus",
                  "meaning": "NOT_REQUESTED → PENDING → SUCCESS / FAILED"
                },
                {
                  "name": "recordingUrl",
                  "meaning": "where the recording lives"
                }
              ],
              "references": [
                {
                  "field": "initiatingIdentityId",
                  "target": "people",
                  "meaning": "who placed the call"
                }
              ],
              "lifecycle": "IN_PROGRESS → COMPLETED / FAILED",
              "grouped": []
            },
            {
              "name": "Channel",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 723,
              "idPrefix": "chn_",
              "doc": null,
              "fieldCount": 10,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "sendbirdChannelId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "messages",
                  "type": "Message",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "members",
                  "type": "ChannelMember",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matters",
                  "type": "MatterChannel",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "lastActivity",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "metadata",
                  "type": "Json",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "displayName",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "sendbirdChannelId"
              ],
              "interpreted": true,
              "tier": "legacy",
              "meaning": "A dead Sendbird-era chat channel mirror. Zero code reads anywhere in the service; live chat is the Chat domain.",
              "keyFields": [
                {
                  "name": "sendbirdChannelId",
                  "meaning": "the Sendbird channel this row mirrored"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": [
                "ChannelMember",
                "Message",
                "MatterChannel"
              ]
            },
            {
              "name": "ChannelMember",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 744,
              "idPrefix": "chnmb_",
              "doc": null,
              "fieldCount": 7,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "type",
                  "type": "ChannelMemberType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "isMuted",
                  "type": "Boolean",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "lastActivity",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "channel",
                  "type": "Channel",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "channelId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "personId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "personId"
              ],
              "interpreted": true,
              "tier": "legacy",
              "meaning": "Dead Sendbird-era channel membership row; zero code reads.",
              "keyFields": [],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Comment",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 800,
              "idPrefix": "com_",
              "doc": null,
              "fieldCount": 11,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "entityType",
                  "type": "CommentEntityType",
                  "list": false,
                  "optional": true,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "entityId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "matter",
                  "type": "Matter",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "authorIdentityId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "content",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "editedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "deletedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                }
              ],
              "externalRefs": [
                "entityId",
                "authorIdentityId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A comment on a task, matter, invoice, or person, with soft edit/delete history.",
              "keyFields": [
                {
                  "name": "entityType",
                  "meaning": "TASK, MATTER, INVOICE, or PERSON"
                },
                {
                  "name": "entityId",
                  "meaning": "the thing being commented on"
                }
              ],
              "references": [
                {
                  "field": "authorIdentityId",
                  "target": "people",
                  "meaning": "the commenter"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Communication",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 663,
              "idPrefix": "comm_",
              "doc": null,
              "fieldCount": 15,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "externalId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "timestamp",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "type",
                  "type": "CommunicationType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "subject",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "content",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "communicationThread",
                  "type": "CommunicationThread",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "communicationThreadId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "linkedFile",
                  "type": "File",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "linkedFileId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "attachmentFiles",
                  "type": "File",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matter",
                  "type": "Matter",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                }
              ],
              "externalRefs": [
                "externalId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "A copy of a filed email on the matter, with its body file and attachments — the matter-side record the Email domain writes to via events.",
              "keyFields": [
                {
                  "name": "externalId",
                  "meaning": "the email-service message this mirrors"
                },
                {
                  "name": "type",
                  "meaning": "EMAIL (the only type today)"
                },
                {
                  "name": "linkedFileId",
                  "meaning": "the stored email body"
                }
              ],
              "references": [
                {
                  "field": "externalId",
                  "target": "email",
                  "meaning": "the source message in email-service"
                }
              ],
              "lifecycle": null,
              "grouped": [
                "CommunicationThread"
              ]
            },
            {
              "name": "CommunicationThread",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 690,
              "idPrefix": "comm_",
              "doc": null,
              "fieldCount": 7,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "externalId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "communications",
                  "type": "Communication",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matter",
                  "type": "Matter",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                }
              ],
              "externalRefs": [
                "externalId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "Groups filed emails into their conversation thread, mirroring the email-service thread by externalId.",
              "keyFields": [
                {
                  "name": "externalId",
                  "meaning": "the email-service thread this mirrors"
                }
              ],
              "references": [
                {
                  "field": "externalId",
                  "target": "email",
                  "meaning": "the source thread"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Event",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 1069,
              "idPrefix": "evt_",
              "doc": null,
              "fieldCount": 7,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "timestamp",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "type",
                  "type": "EventType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "key",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "aggregateId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "aggregateType",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "payload",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "aggregateId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "The service's transactional event store (outbox): every domain event written in the same transaction as its effect, replayable per aggregate.",
              "keyFields": [
                {
                  "name": "key",
                  "meaning": "the event name"
                },
                {
                  "name": "aggregateId",
                  "meaning": "the record the event belongs to"
                },
                {
                  "name": "type",
                  "meaning": "aggregate (replayable) or ephemeral"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "File",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 610,
              "idPrefix": "file_",
              "doc": null,
              "fieldCount": 19,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "s3Key",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "isDeleted",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "originalFilename",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "fileSize",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "displayName",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "extension",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterFile",
                  "type": "MatterFile",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterArtifact",
                  "type": "MatterArtifact",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "communication",
                  "type": "Communication",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "attachmentCommunication",
                  "type": "Communication",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "attachmentCommunicationId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "canPreview",
                  "type": "Boolean",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "preview",
                  "type": "FilePreview",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "aiIngestionV2Status",
                  "type": "FileAIIngestionStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "aiIngestionV3Status",
                  "type": "FileAIIngestionStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "summary",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "The underlying S3 blob: key, size, filename, plus AI-ingestion status (v2 and v3 pipelines) and an optional AI summary.",
              "keyFields": [
                {
                  "name": "s3Key",
                  "meaning": "where the bytes live"
                },
                {
                  "name": "aiIngestionV3Status",
                  "meaning": "NOT_REQUESTED → PENDING → SUCCESS / FAILED / UNSUPPORTED"
                },
                {
                  "name": "summary",
                  "meaning": "AI-generated file summary"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "FilePreview",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 644,
              "idPrefix": "filepre_",
              "doc": null,
              "fieldCount": 8,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "file",
                  "type": "File",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "fileId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "s3Key",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "contentType",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "status",
                  "type": "FilePreviewStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A rendered in-browser preview of a File, with its own S3 key and PENDING → SUCCESS / FAILED / NOT_SUPPORTED status.",
              "keyFields": [
                {
                  "name": "status",
                  "meaning": "PENDING, SUCCESS, FAILED, or NOT_SUPPORTED"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "KeyDate",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 967,
              "idPrefix": "kd_",
              "doc": null,
              "fieldCount": 10,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "name",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "dueAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdByIdentityId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "deletedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "tasks",
                  "type": "Task",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "firmId",
                "matterId",
                "createdByIdentityId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "A deadline or milestone — a court date, a filing deadline — that tasks hang off. Firm-scoped; the matter link is optional.",
              "keyFields": [
                {
                  "name": "name",
                  "meaning": "what the date is: \"Court hearing\", \"Filing deadline\""
                },
                {
                  "name": "dueAt",
                  "meaning": "the date itself"
                },
                {
                  "name": "matterId",
                  "meaning": "the matter it belongs to, if any"
                }
              ],
              "references": [
                {
                  "field": "firmId",
                  "target": "people",
                  "meaning": "the firm whose calendar this sits on"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "LegalForm",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 579,
              "idPrefix": "tm_",
              "doc": null,
              "fieldCount": 11,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "code",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "This is at the moment a OneAdvance unique code",
                  "fk": false
                },
                {
                  "name": "name",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "human readable name",
                  "fk": false
                },
                {
                  "name": "LegalFormMatterArtifact",
                  "type": "LegalFormMatterArtifact",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "metadata",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "active",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "products",
                  "type": "String",
                  "list": true,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "previewPdfBase64",
                  "type": "Bytes",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "previewPdfBase64UpdatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A catalogue entry for a fillable legal form, keyed by its OneAdvanced code, with a preview PDF. Feeds form-filling on matter artifacts.",
              "keyFields": [
                {
                  "name": "code",
                  "meaning": "the OneAdvanced unique form code"
                },
                {
                  "name": "active",
                  "meaning": "whether the form is offered"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "LegalFormMatterArtifact",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 564,
              "idPrefix": "tm_",
              "doc": null,
              "fieldCount": 8,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "legalForm",
                  "type": "LegalForm",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "legalFormId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterArtifact",
                  "type": "MatterArtifact",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "matterArtifactId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "fillingScore",
                  "type": "Float",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "legacy",
              "meaning": "Joins a LegalForm to the MatterArtifact filling it, with an AI filling score; retires with MatterArtifact.",
              "keyFields": [
                {
                  "name": "fillingScore",
                  "meaning": "how completely the form was filled"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "LeglEngageRequest",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 1001,
              "idPrefix": "leglreq_",
              "doc": null,
              "fieldCount": 19,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matter",
                  "type": "Matter",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "contactId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "The client contact this onboarding is for",
                  "fk": false
                },
                {
                  "name": "createdById",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "leglReference",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "submitUrl",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Client portal link (we email it via Knock)",
                  "fk": false
                },
                {
                  "name": "viewUrl",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "workflowName",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "reviewerEmail",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Assigned reviewer at LEGL (the initiating lawyer)",
                  "fk": false
                },
                {
                  "name": "status",
                  "type": "LeglEngageRequestStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "steps",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Snapshot of LEGL steps: { type, outcome, resultsData, resultsDocumentUrl, matterFileId, downloadedAt }",
                  "fk": false
                },
                {
                  "name": "reviewedById",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "reviewedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "reviewComment",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "completedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "gatedPaymentRequests",
                  "type": "LeglPaymentRequest",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "contactId",
                "createdById",
                "reviewedById"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "A client KYC/onboarding run through the LEGL integration: PENDING → READY_FOR_REVIEW → APPROVED / CLOSED, with the lawyer reviewing LEGL's results. Can gate payment requests until approved.",
              "keyFields": [
                {
                  "name": "status",
                  "meaning": "PENDING → READY_FOR_REVIEW → APPROVED / CLOSED"
                },
                {
                  "name": "contactId",
                  "meaning": "the client contact being onboarded"
                },
                {
                  "name": "submitUrl",
                  "meaning": "the client portal link, emailed via Knock"
                },
                {
                  "name": "steps",
                  "meaning": "snapshot of LEGL steps: type, outcome, results, downloaded documents"
                }
              ],
              "references": [
                {
                  "field": "contactId",
                  "target": "people",
                  "meaning": "the client contact"
                }
              ],
              "lifecycle": "PENDING → READY_FOR_REVIEW → APPROVED / CLOSED",
              "grouped": [
                "LeglPaymentRequest"
              ]
            },
            {
              "name": "LeglPaymentRequest",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 1034,
              "idPrefix": "leglpay_",
              "doc": null,
              "fieldCount": 15,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matter",
                  "type": "Matter",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "contactId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "The client contact this payment is for",
                  "fk": false
                },
                {
                  "name": "createdById",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "leglPaymentRef",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "amount",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "description",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "checkoutUrl",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Client payment link (we email it via Knock)",
                  "fk": false
                },
                {
                  "name": "status",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "LEGL status verbatim: Created | Sent | Paid | Transferred | Marked Paid | Marked Closed | Refund Processing | Refunded | Partially Refunded",
                  "fk": false
                },
                {
                  "name": "requiresEngageRequestId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "When set, the client email is held until this engage request is APPROVED",
                  "fk": false
                },
                {
                  "name": "requiresEngageRequest",
                  "type": "LeglEngageRequest",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "emailSentAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Null until the payment link email is released to the client",
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "contactId",
                "createdById"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A LEGL payment link for the client; the email can be held until a linked engage request is APPROVED. Status is LEGL's verbatim string (Created, Sent, Paid, ...).",
              "keyFields": [
                {
                  "name": "requiresEngageRequestId",
                  "meaning": "when set, the client email waits for this onboarding to be approved"
                },
                {
                  "name": "emailSentAt",
                  "meaning": "null until the payment link email is released"
                },
                {
                  "name": "checkoutUrl",
                  "meaning": "the client payment link"
                }
              ],
              "references": [
                {
                  "field": "contactId",
                  "target": "people",
                  "meaning": "the paying client contact"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Matter",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 32,
              "idPrefix": "mat_",
              "doc": null,
              "fieldCount": 39,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "humanReadableId",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "title",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterStatus",
                  "type": "MatterStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "source",
                  "type": "MatterSource",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "primaryJurisdictionId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "TODO: This is nullable for now, because we need to update it from fee agreements in another service",
                  "fk": false
                },
                {
                  "name": "lasSummary",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "market",
                  "type": "Market",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": "TODO: Remove default once we change the logic to set the market for all matters",
                  "fk": false
                },
                {
                  "name": "matterNotes",
                  "type": "MatterNote",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterFiles",
                  "type": "MatterFile",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterFileFolders",
                  "type": "MatterFileFolder",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterArtifacts",
                  "type": "MatterArtifact",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterDocuments",
                  "type": "MatterDocument",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "channels",
                  "type": "MatterChannel",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "communications",
                  "type": "Communication",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "communicationThreads",
                  "type": "CommunicationThread",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterParticipants",
                  "type": "MatterParticipant",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterTeamAccess",
                  "type": "MatterTeamAccess",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterContacts",
                  "type": "MatterContact",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterContactSlots",
                  "type": "MatterContactSlot",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "calls",
                  "type": "Call",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "transactions",
                  "type": "MatterTransaction",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "quotes",
                  "type": "MatterQuote",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "The firm doing the legal work.\nOn marketplace matters with a different firmOfRecordId, this is the co-counsel firm.",
                  "fk": false
                },
                {
                  "name": "firmOfRecordId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "The firm legally responsible for the matter\nLawhive Legal US / Lawhive UK on marketplace matters - check MarketFirmOfRecord",
                  "fk": false
                },
                {
                  "name": "reviewRequests",
                  "type": "ReviewRequest",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "comments",
                  "type": "Comment",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterAttachments",
                  "type": "MatterAttachment",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "pins",
                  "type": "MatterPin",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterTemplateId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterTemplate",
                  "type": "MatterTemplate",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "matterTemplateVersionId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterTemplateVersion",
                  "type": "MatterTemplateVersion",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Composite key guarantees that version belongs to the template",
                  "fk": true
                },
                {
                  "name": "leglEngageRequests",
                  "type": "LeglEngageRequest",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "leglPaymentRequests",
                  "type": "LeglPaymentRequest",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "completedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "lastActivityAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "primaryJurisdictionId",
                "firmId",
                "firmOfRecordId",
                "matterTemplateVersionId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "The legal case: title, status, market, and which firm serves it. Its mat_ id is the platform's most-used reference; source records whether it came from the marketplace flow (MARKETPLACE) or was opened directly by a firm member (ADMIN).",
              "keyFields": [
                {
                  "name": "matterStatus",
                  "meaning": "OPENING → ACTIVE → COMPLETED / CANCELLED"
                },
                {
                  "name": "source",
                  "meaning": "MARKETPLACE (born from a deal) or ADMIN (opened directly by a firm member)"
                },
                {
                  "name": "firmId",
                  "meaning": "the firm doing the legal work; on marketplace matters this can be the co-counsel firm"
                },
                {
                  "name": "firmOfRecordId",
                  "meaning": "the firm legally responsible — Lawhive Legal US / Lawhive UK on marketplace matters"
                },
                {
                  "name": "market",
                  "meaning": "US or GB"
                },
                {
                  "name": "humanReadableId",
                  "meaning": "the short case number people quote"
                },
                {
                  "name": "lastActivityAt",
                  "meaning": "drives recency sorting across matter lists"
                }
              ],
              "references": [
                {
                  "field": "firmId",
                  "target": "people",
                  "meaning": "the firm serving the matter"
                },
                {
                  "field": "firmOfRecordId",
                  "target": "people",
                  "meaning": "the firm legally on the hook"
                }
              ],
              "lifecycle": "OPENING → ACTIVE → COMPLETED / CANCELLED",
              "grouped": []
            },
            {
              "name": "MatterArtifact",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 435,
              "idPrefix": "matart_",
              "doc": null,
              "fieldCount": 23,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matter",
                  "type": "Matter",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "type",
                  "type": "MatterArtifactType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "name",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "artifactStatus",
                  "type": "MatterArtifactStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "content",
                  "type": "Json",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "formSlug",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "formJurisdiction",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "workflowId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "generationWorkflowId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "file",
                  "type": "File",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "fileId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterFile",
                  "type": "MatterFile",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "versions",
                  "type": "MatterArtifactVersion",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "latestVersionId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "latestVersion",
                  "type": "MatterArtifactVersion",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "finalisedVersionId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "finalisedVersion",
                  "type": "MatterArtifactVersion",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "sourceDocumentTemplateId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "References DocumentTemplate.id from identity-service",
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "LegalFormMatterArtifact",
                  "type": "LegalFormMatterArtifact",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "workflowId",
                "generationWorkflowId",
                "sourceDocumentTemplateId"
              ],
              "interpreted": true,
              "tier": "legacy",
              "meaning": "The older generated-document model (briefing notes, advice notes, filled forms, letters), mid-migration into MatterDocument. Still served by live routers, but new drafting goes through MatterDocument.",
              "keyFields": [
                {
                  "name": "type",
                  "meaning": "BRIEFING_NOTE, ADVICE_NOTE, FILLED_FORM, GENERATED_LETTER, BLANK, FROM_PRECEDENT"
                },
                {
                  "name": "artifactStatus",
                  "meaning": "DRAFT → FINAL / DISCARDED"
                },
                {
                  "name": "sourceDocumentTemplateId",
                  "meaning": "the identity-service DocumentTemplate it was generated from"
                }
              ],
              "references": [
                {
                  "field": "sourceDocumentTemplateId",
                  "target": "people",
                  "meaning": "the DocumentTemplate in identity-service"
                }
              ],
              "lifecycle": "DRAFT → FINAL / DISCARDED",
              "grouped": [
                "MatterArtifactVersion",
                "LegalFormMatterArtifact"
              ]
            },
            {
              "name": "MatterArtifactVersion",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 466,
              "idPrefix": "matartver_",
              "doc": null,
              "fieldCount": 16,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterArtifact",
                  "type": "MatterArtifact",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "matterArtifactId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "htmlContent",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "letterheadType",
                  "type": "LetterheadType",
                  "list": false,
                  "optional": true,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "pageSize",
                  "type": "PageSize",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "name",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "fileId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "isSnapshot",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdById",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "previousVersionId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Undo/redo chain: the version that was latest when this one was created (null = chain start).",
                  "fk": false
                },
                {
                  "name": "previousVersion",
                  "type": "MatterArtifactVersion",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "nextVersions",
                  "type": "MatterArtifactVersion",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "latestForArtifact",
                  "type": "MatterArtifact",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "finalisedForArtifact",
                  "type": "MatterArtifact",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "fileId",
                "createdById"
              ],
              "interpreted": true,
              "tier": "legacy",
              "meaning": "A saved HTML version of a matter artifact, chained via previousVersionId for undo/redo; retires with MatterArtifact.",
              "keyFields": [
                {
                  "name": "previousVersionId",
                  "meaning": "undo/redo chain; null marks the chain start"
                },
                {
                  "name": "isSnapshot",
                  "meaning": "a deliberate save point rather than an autosave"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "MatterAttachment",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 155,
              "idPrefix": "matatt_",
              "doc": null,
              "fieldCount": 10,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "entityType",
                  "type": "MatterAttachmentEntityType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "entityId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterFile",
                  "type": "MatterFile",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "matterFileId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdByIdentityId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "matter",
                  "type": "Matter",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                }
              ],
              "externalRefs": [
                "entityId",
                "createdByIdentityId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "Attaches a matter file to another entity on the matter — today only tasks (entityType TASK).",
              "keyFields": [
                {
                  "name": "entityType",
                  "meaning": "TASK (the only type today)"
                },
                {
                  "name": "matterFileId",
                  "meaning": "the file being attached"
                }
              ],
              "references": [
                {
                  "field": "createdByIdentityId",
                  "target": "people",
                  "meaning": "who attached it"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "MatterChannel",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 706,
              "idPrefix": "matchn_",
              "doc": null,
              "fieldCount": 7,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "channel",
                  "type": "Channel",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "channelId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matter",
                  "type": "Matter",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "leadLawyerSentMessage",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "isPrimary",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "legacy",
              "meaning": "Dead Sendbird-era join of matter to chat channel; zero code reads. The live matterChannel router only validates chat access against Matter and MatterParticipant.",
              "keyFields": [],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "MatterContact",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 866,
              "idPrefix": "matcont_",
              "doc": null,
              "fieldCount": 12,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Relationship to matter",
                  "fk": false
                },
                {
                  "name": "matter",
                  "type": "Matter",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "contactId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "ID in the respective table",
                  "fk": false
                },
                {
                  "name": "parentContactId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Company contact ID when added as \"person at company\"",
                  "fk": false
                },
                {
                  "name": "matterContactSlot",
                  "type": "MatterContactSlot",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "role",
                  "type": "MatterContactRole",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Role classification",
                  "fk": false
                },
                {
                  "name": "roleLabel",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Free-form detail: \"Defendant's Spouse\", \"Primary HR Contact\"",
                  "fk": false
                },
                {
                  "name": "notes",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Metadata",
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Audit",
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdById",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "contactId",
                "parentContactId",
                "createdById"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "Links an address-book contact to the matter with a role (CLIENT / OTHER) and a free-form label like \"Defendant's Spouse\". Also feeds conflict-of-interest checks across a firm's matters.",
              "keyFields": [
                {
                  "name": "contactId",
                  "meaning": "the contact in People & firms"
                },
                {
                  "name": "role",
                  "meaning": "CLIENT or OTHER"
                },
                {
                  "name": "roleLabel",
                  "meaning": "free-form detail: \"Defendant's Spouse\", \"Primary HR Contact\""
                },
                {
                  "name": "parentContactId",
                  "meaning": "company contact when this person was added as \"person at company\""
                }
              ],
              "references": [
                {
                  "field": "contactId",
                  "target": "people",
                  "meaning": "the address-book contact"
                }
              ],
              "lifecycle": null,
              "grouped": [
                "MatterContactSlot"
              ]
            },
            {
              "name": "MatterContactSlot",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 897,
              "idPrefix": "mcslot_",
              "doc": "An unfilled contact role seeded from a matter template, filled with a real\ncontact later. Separate from MatterContact so its contact leg stays required.",
              "fieldCount": 10,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matter",
                  "type": "Matter",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "role",
                  "type": "MatterContactRole",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "roleLabel",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "position",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterContactId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": "Set once a contact fills this slot; the slot then drops out of the unfilled\nlist rather than being deleted, preserving its position. onDelete SetNull\nreopens the slot if the filling contact is later removed.",
                  "fk": false
                },
                {
                  "name": "matterContact",
                  "type": "MatterContact",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "An unfilled contact role seeded from a matter template, filled with a real contact later; kept separate from MatterContact so the contact leg stays required.",
              "keyFields": [
                {
                  "name": "role",
                  "meaning": "the role the slot expects"
                },
                {
                  "name": "matterContactId",
                  "meaning": "set once filled; SetNull reopens the slot if that contact is removed"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "MatterDocument",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 491,
              "idPrefix": "matdoc_",
              "doc": null,
              "fieldCount": 15,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "name",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "contentId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "sourceMatterFileId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Set when the draft was created from an uploaded matter file. Unique among\nlive drafts (@@unique below) so the same upload can't be converted twice.",
                  "fk": false
                },
                {
                  "name": "currentFinalisationId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "currentFinalisation",
                  "type": "MatterDocumentFinalisation",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "metadata",
                  "type": "Json",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "sourceMatterArtifactId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": "MatterArtifact -> MatterDocument migration related fields - to be dropped once fully switched over",
                  "fk": false
                },
                {
                  "name": "migrationStatus",
                  "type": "MatterDocumentMigrationStatus",
                  "list": false,
                  "optional": true,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "deletedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matter",
                  "type": "Matter",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "finalisations",
                  "type": "MatterDocumentFinalisation",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "contentId",
                "sourceMatterFileId",
                "sourceMatterArtifactId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "A drafting document on the matter — a letter, an advice note. Its editable body lives in the Content domain via contentId; finalising produces an immutable MatterDocumentFinalisation.",
              "keyFields": [
                {
                  "name": "contentId",
                  "meaning": "the editable body, in content-service"
                },
                {
                  "name": "sourceMatterFileId",
                  "meaning": "set when the draft was made from an uploaded file; unique among live drafts"
                },
                {
                  "name": "currentFinalisationId",
                  "meaning": "the finalised snapshot currently in force"
                },
                {
                  "name": "sourceMatterArtifactId",
                  "meaning": "migration breadcrumb from the old MatterArtifact model, dropped after cutover"
                }
              ],
              "references": [
                {
                  "field": "contentId",
                  "target": "content",
                  "meaning": "the document body"
                }
              ],
              "lifecycle": null,
              "grouped": [
                "MatterDocumentFinalisation"
              ]
            },
            {
              "name": "MatterDocumentFinalisation",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 530,
              "idPrefix": "matdocfin_",
              "doc": null,
              "fieldCount": 11,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterDocumentId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterDocument",
                  "type": "MatterDocument",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "contentId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "contentVersionId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "finalisedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "finalisedByIdentityId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterFiles",
                  "type": "MatterFile",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "currentForMatterDocument",
                  "type": "MatterDocument",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": "NOTE: required backside of MatterDocument.currentFinalisation.",
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "contentId",
                "contentVersionId",
                "finalisedByIdentityId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "An immutable snapshot of a finalised document, pinned to a content version and rendered to a matter file.",
              "keyFields": [
                {
                  "name": "contentVersionId",
                  "meaning": "the exact content version frozen at finalisation"
                },
                {
                  "name": "finalisedByIdentityId",
                  "meaning": "who finalised it"
                }
              ],
              "references": [
                {
                  "field": "contentId",
                  "target": "content",
                  "meaning": "the frozen body"
                },
                {
                  "field": "finalisedByIdentityId",
                  "target": "people",
                  "meaning": "the finaliser"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "MatterFile",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 367,
              "idPrefix": "matfil_",
              "doc": null,
              "fieldCount": 22,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "file",
                  "type": "File",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "matter",
                  "type": "Matter",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "transactionId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "TODO: Remove UST-967",
                  "fk": false
                },
                {
                  "name": "transactionIntentId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "fileId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "uploaderId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "visibility",
                  "type": "MatterFileVisibility",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "source",
                  "type": "MatterFileSource",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "sourceId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterFileFolder",
                  "type": "MatterFileFolder",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "matterFileFolderId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterArtifact",
                  "type": "MatterArtifact",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "matterArtifactId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterDocumentFinalisation",
                  "type": "MatterDocumentFinalisation",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "matterDocumentFinalisationId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "ReviewRequest",
                  "type": "ReviewRequest",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "reviewRequestId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterAttachments",
                  "type": "MatterAttachment",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "transactionId",
                "transactionIntentId",
                "uploaderId",
                "sourceId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "A file on the matter — uploads, email attachments, rendered documents, LEGL results — organised in folders and visibility-scoped (ALL or FIRM_SIDE_ONLY). Backed by matter-service's own S3 blob store via File, not the Content domain.",
              "keyFields": [
                {
                  "name": "source",
                  "meaning": "UPLOAD, EMAIL, MATTER_DOCUMENT_FINALISATION, LEGL, and friends — how the file arrived"
                },
                {
                  "name": "visibility",
                  "meaning": "ALL or FIRM_SIDE_ONLY"
                },
                {
                  "name": "fileId",
                  "meaning": "the underlying blob record"
                },
                {
                  "name": "matterFileFolderId",
                  "meaning": "the folder it's filed in"
                },
                {
                  "name": "uploaderId",
                  "meaning": "who uploaded it"
                }
              ],
              "references": [
                {
                  "field": "uploaderId",
                  "target": "people",
                  "meaning": "the uploader"
                },
                {
                  "field": "transactionIntentId",
                  "target": "money",
                  "meaning": "payment paperwork the file evidences"
                }
              ],
              "lifecycle": null,
              "grouped": [
                "File",
                "FilePreview",
                "MatterFileFolder"
              ]
            },
            {
              "name": "MatterFileFolder",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 404,
              "idPrefix": "matFilFol_",
              "doc": null,
              "fieldCount": 9,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "title",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matter",
                  "type": "Matter",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "colour",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "order",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "files",
                  "type": "MatterFile",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A coloured, ordered folder for organising a matter's files; templates can seed them.",
              "keyFields": [
                {
                  "name": "title",
                  "meaning": "the folder name"
                },
                {
                  "name": "order",
                  "meaning": "display position"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "MatterNote",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 329,
              "idPrefix": "matnt_",
              "doc": null,
              "fieldCount": 10,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdById",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "name",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "content",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Legacy inline body, retained during migration; superseded by `contentId` and dropped later.",
                  "fk": false
                },
                {
                  "name": "contentId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "→ content-service Content holding the body (mirrors MatterDocument); null for notes not yet migrated.",
                  "fk": false
                },
                {
                  "name": "matter",
                  "type": "Matter",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "isDeleted",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                }
              ],
              "externalRefs": [
                "createdById",
                "contentId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "A note on the matter. The inline content field is legacy; bodies are migrating to Content-backed storage via contentId, mirroring MatterDocument.",
              "keyFields": [
                {
                  "name": "contentId",
                  "meaning": "content-service body; null for notes not yet migrated"
                },
                {
                  "name": "content",
                  "meaning": "legacy inline body, retained during migration"
                },
                {
                  "name": "isDeleted",
                  "meaning": "soft delete"
                }
              ],
              "references": [
                {
                  "field": "contentId",
                  "target": "content",
                  "meaning": "the migrated note body"
                },
                {
                  "field": "createdById",
                  "target": "people",
                  "meaning": "the author"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "MatterParticipant",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 254,
              "idPrefix": "matpar_",
              "doc": null,
              "fieldCount": 11,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "side",
                  "type": "MatterSide",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "participantType",
                  "type": "MatterParticipantType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "isLead",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matter",
                  "type": "Matter",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "personId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "internalMetadata",
                  "type": "Json",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "personId",
                "firmId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "A person on the matter, by side (CLIENT / FIRM) and type (LAWYER / TEAM_MEMBER / CLIENT), with a lead flag. Powers \"who's on this case\" and per-matter access.",
              "keyFields": [
                {
                  "name": "personId",
                  "meaning": "the person, from People & firms"
                },
                {
                  "name": "side",
                  "meaning": "CLIENT or FIRM"
                },
                {
                  "name": "participantType",
                  "meaning": "LAWYER, TEAM_MEMBER, or CLIENT"
                },
                {
                  "name": "isLead",
                  "meaning": "marks the lead lawyer"
                }
              ],
              "references": [
                {
                  "field": "personId",
                  "target": "people",
                  "meaning": "the participant"
                },
                {
                  "field": "firmId",
                  "target": "people",
                  "meaning": "the firm a firm-side participant belongs to"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "MatterPin",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 186,
              "idPrefix": "matpin_",
              "doc": null,
              "fieldCount": 7,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "entityType",
                  "type": "MatterPinEntityType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "entityId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdByIdentityId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matter",
                  "type": "Matter",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                }
              ],
              "externalRefs": [
                "entityId",
                "createdByIdentityId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "Pins something to the top of a matter view — today only matter notes (MATTER_NOTE).",
              "keyFields": [
                {
                  "name": "entityType",
                  "meaning": "MATTER_NOTE (the only type today)"
                },
                {
                  "name": "entityId",
                  "meaning": "the pinned record"
                }
              ],
              "references": [
                {
                  "field": "createdByIdentityId",
                  "target": "people",
                  "meaning": "who pinned it"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "MatterQuote",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 299,
              "idPrefix": "matquo_",
              "doc": null,
              "fieldCount": 6,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "quoteId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matter",
                  "type": "Matter",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "quoteId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A link row tying the matter to a quote in the deal domain — how a marketplace matter remembers the deal that created it.",
              "keyFields": [
                {
                  "name": "quoteId",
                  "meaning": "the quote in work-service"
                }
              ],
              "references": [
                {
                  "field": "quoteId",
                  "target": "deal",
                  "meaning": "the originating quote"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "MatterTeamAccess",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 276,
              "idPrefix": "mta_",
              "doc": null,
              "fieldCount": 9,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matter",
                  "type": "Matter",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "teamId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Soft references to identity-service, validated at the service layer.",
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdByIdentityId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "backfillId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "temp rollback marker for backfilled rows to be dropped post-cutover.",
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "teamId",
                "firmId",
                "createdByIdentityId",
                "backfillId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "Grants a whole firm team access to a matter, instead of adding members one by one. Team ids are soft references to identity-service, validated at the service layer.",
              "keyFields": [
                {
                  "name": "teamId",
                  "meaning": "the firm team being granted access"
                },
                {
                  "name": "backfillId",
                  "meaning": "temporary rollback marker for backfilled rows, dropped post-cutover"
                }
              ],
              "references": [
                {
                  "field": "teamId",
                  "target": "people",
                  "meaning": "the team in identity-service"
                },
                {
                  "field": "firmId",
                  "target": "people",
                  "meaning": "the team's firm"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "MatterTemplate",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 102,
              "idPrefix": "mtpl_",
              "doc": null,
              "fieldCount": 15,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "name",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "description",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "status",
                  "type": "MatterTemplateStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "currentVersionId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "currentVersion",
                  "type": "MatterTemplateVersion",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "publishedVersionId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "publishedVersion",
                  "type": "MatterTemplateVersion",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "versions",
                  "type": "MatterTemplateVersion",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matters",
                  "type": "Matter",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "archivedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdByIdentityId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "firmId",
                "createdByIdentityId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "A firm's reusable matter blueprint (DRAFT / ACTIVE / ARCHIVED) that seeds contact slots and folders when applied. Versioned; each matter records exactly which version created it.",
              "keyFields": [
                {
                  "name": "status",
                  "meaning": "DRAFT, ACTIVE, or ARCHIVED"
                },
                {
                  "name": "publishedVersionId",
                  "meaning": "the version new matters get"
                },
                {
                  "name": "currentVersionId",
                  "meaning": "the working draft version"
                }
              ],
              "references": [
                {
                  "field": "firmId",
                  "target": "people",
                  "meaning": "the firm that owns the template"
                }
              ],
              "lifecycle": "DRAFT → ACTIVE → ARCHIVED",
              "grouped": [
                "MatterTemplateVersion"
              ]
            },
            {
              "name": "MatterTemplateVersion",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 128,
              "idPrefix": "mtplv_",
              "doc": null,
              "fieldCount": 10,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "templateId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "template",
                  "type": "MatterTemplate",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "config",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdByIdentityId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "publishedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "currentForTemplate",
                  "type": "MatterTemplate",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "publishedForTemplate",
                  "type": "MatterTemplate",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matters",
                  "type": "Matter",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "createdByIdentityId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "An immutable snapshot of a template's config (contact slots, folders); a composite key guarantees a matter's recorded version belongs to its template.",
              "keyFields": [
                {
                  "name": "config",
                  "meaning": "the JSON blueprint applied to new matters"
                },
                {
                  "name": "publishedAt",
                  "meaning": "when this version went live"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "MatterTransaction",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 313,
              "idPrefix": "mattran_",
              "doc": null,
              "fieldCount": 8,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "transactionId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "TODO: Remove UST-967",
                  "fk": false
                },
                {
                  "name": "transactionIntentId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "description",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matter",
                  "type": "Matter",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "transactionId",
                "transactionIntentId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A link row tying the matter to a money-domain transaction; transactionId is being replaced by transactionIntentId (UST-967).",
              "keyFields": [
                {
                  "name": "transactionIntentId",
                  "meaning": "the payment intent in the money domain"
                },
                {
                  "name": "transactionId",
                  "meaning": "legacy reference, flagged for removal (UST-967)"
                }
              ],
              "references": [
                {
                  "field": "transactionIntentId",
                  "target": "money",
                  "meaning": "the payment this matter received"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Message",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 764,
              "idPrefix": "msg_",
              "doc": null,
              "fieldCount": 15,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "type",
                  "type": "MessageType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "data",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "editedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "sendbirdMessageId",
                  "type": "BigInt",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "isDeleted",
                  "type": "Boolean",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "metadata",
                  "type": "Json",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "channel",
                  "type": "Channel",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "channelId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "authorId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "parent",
                  "type": "Message",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "parentId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "children",
                  "type": "Message",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "authorId"
              ],
              "interpreted": true,
              "tier": "legacy",
              "meaning": "Dead Sendbird-era chat message mirror; zero code reads.",
              "keyFields": [],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "ReviewRequest",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 834,
              "idPrefix": "revreq_",
              "doc": null,
              "fieldCount": 19,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "type",
                  "type": "ReviewRequestType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "requestedById",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matter",
                  "type": "Matter",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "relatedRecordId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "completedScopes",
                  "type": "String",
                  "list": true,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "incompleteScopes",
                  "type": "String",
                  "list": true,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "details",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "supportingEvidence",
                  "type": "MatterFile",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "status",
                  "type": "ReviewRequestStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "rejectionReason",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "rejectedById",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "rejectedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "approvedById",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "approvedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "approvalComment",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                }
              ],
              "externalRefs": [
                "requestedById",
                "relatedRecordId",
                "rejectedById",
                "approvedById"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "An approval workflow item — fee-agreement completion or reassignment — with supporting evidence files: PENDING → APPROVED / REJECTED.",
              "keyFields": [
                {
                  "name": "type",
                  "meaning": "FEE_AGREEMENT_COMPLETION or REASSIGNMENT"
                },
                {
                  "name": "status",
                  "meaning": "PENDING → APPROVED / REJECTED"
                },
                {
                  "name": "relatedRecordId",
                  "meaning": "the record under review"
                },
                {
                  "name": "rejectionReason",
                  "meaning": "why it was turned down"
                }
              ],
              "references": [
                {
                  "field": "requestedById",
                  "target": "people",
                  "meaning": "who asked for the review"
                }
              ],
              "lifecycle": "PENDING → APPROVED / REJECTED",
              "grouped": []
            },
            {
              "name": "Task",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 920,
              "idPrefix": "tsk_",
              "doc": null,
              "fieldCount": 15,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "name",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "description",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdByIdentityId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "keyDateId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "keyDate",
                  "type": "KeyDate",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "taskAssignment",
                  "type": "TaskAssignment",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "dueAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "completedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "deletedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "orderIndex",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                }
              ],
              "externalRefs": [
                "firmId",
                "matterId",
                "createdByIdentityId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "A to-do for the firm, usually on a matter (matterId is optional), assignable and optionally hung off a KeyDate. Ordered with an orderIndex for drag-and-drop lists.",
              "keyFields": [
                {
                  "name": "matterId",
                  "meaning": "the matter it belongs to; null for firm-level tasks"
                },
                {
                  "name": "keyDateId",
                  "meaning": "the deadline or milestone it works toward"
                },
                {
                  "name": "dueAt",
                  "meaning": "when it's due"
                },
                {
                  "name": "completedAt",
                  "meaning": "done when set"
                }
              ],
              "references": [
                {
                  "field": "firmId",
                  "target": "people",
                  "meaning": "the firm whose task list this is"
                }
              ],
              "lifecycle": null,
              "grouped": [
                "TaskAssignment"
              ]
            },
            {
              "name": "TaskAssignment",
              "service": "matter-service",
              "db": "matter-db",
              "file": "services/matter-service/prisma/schema.prisma",
              "line": 952,
              "idPrefix": "tskasm_",
              "doc": null,
              "fieldCount": 6,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "taskId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "assignedIdentityId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "assignerIdentityId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "assignedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "task",
                  "type": "Task",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                }
              ],
              "externalRefs": [
                "assignedIdentityId",
                "assignerIdentityId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "Who a task is assigned to and by whom; one per task.",
              "keyFields": [
                {
                  "name": "assignedIdentityId",
                  "meaning": "the assignee"
                }
              ],
              "references": [
                {
                  "field": "assignedIdentityId",
                  "target": "people",
                  "meaning": "the assignee's identity"
                }
              ],
              "lifecycle": null,
              "grouped": []
            }
          ]
        }
      ]
    },
    {
      "id": "content",
      "order": 3,
      "name": "Documents & content",
      "services": [
        "content-service"
      ],
      "databases": [
        "content-db"
      ],
      "tagline": "Collaborative documents, versions, files and templates: storage without meaning",
      "whatItIs": "The platform's document engine. It stores rich-text documents that several people can edit live at once (ProseMirror and Yjs under the hood), keeps their version history, runs the file upload pipeline with malware scanning, and holds reusable templates. A document can be created from almost anything (HTML, Markdown, a template, an uploaded file), rolled back to an earlier version, and exported to DOCX or PDF. Deliberately, this domain has no idea what any document means. It stores and versions them; the domain that references a document owns its meaning.",
      "howItConnects": "Everything points in and nothing points out. Matters is the main customer: a matter document or note is really a pointer at a content document here, and finalising a document pins one exact version of it. Inside the domain, S3 webhooks feed the file pipeline (an upload landed, a malware scan finished) and internal events chain a ready file into a new document version.",
      "lifecycle": null,
      "flows": [
        {
          "id": "content-matters-pointers",
          "title": "Matters gives meaning, Content stores the body",
          "mermaid": "flowchart LR\n    subgraph matters[Matters domain]\n        md[MatterDocument]\n        mn[MatterNote]\n        fin[Finalisation]\n    end\n    subgraph content[Content domain]\n        c[Content]\n        cv[ContentVersion]\n    end\n    md -->|contentId| c\n    mn -->|contentId| c\n    fin -->|contentId + versionId| cv",
          "caption": "All references point inward. Note the two file stores, on purpose: matter uploads live in matter-service's own File table; content-service's File store only backs content ingestion, conversion and previews."
        }
      ],
      "notes": [
        {
          "kind": "companion",
          "body": "The framework event router here is empty — content-service publishes no cross-service domain events. Its published/consumed events are all internal Inngest plumbing plus S3 webhooks."
        }
      ],
      "events": {
        "publishes": [
          {
            "name": "content-service/content.updatePersisted",
            "service": "content-service",
            "live": "active"
          },
          {
            "name": "content-service/content.versionFromFile.failed",
            "service": "content-service",
            "live": "rare"
          },
          {
            "name": "content-service/content.versionFromFile.ready",
            "service": "content-service",
            "live": "active"
          },
          {
            "name": "content-service/file.failed",
            "service": "content-service",
            "live": "silent"
          },
          {
            "name": "content-service/file.quarantined",
            "service": "content-service",
            "live": "silent"
          },
          {
            "name": "content-service/file.ready",
            "service": "content-service",
            "live": "active"
          }
        ],
        "consumes": [
          {
            "name": "content-service/content.updatePersisted",
            "service": "content-service",
            "live": "active"
          },
          {
            "name": "content-service/content.versionFromFile.failed",
            "service": "content-service",
            "live": "rare"
          },
          {
            "name": "content-service/content.versionFromFile.ready",
            "service": "content-service",
            "live": "active"
          },
          {
            "name": "content-service/file.failed",
            "service": "content-service",
            "live": "silent"
          },
          {
            "name": "content-service/file.quarantined",
            "service": "content-service",
            "live": "silent"
          },
          {
            "name": "content-service/file.ready",
            "service": "content-service",
            "live": "active"
          },
          {
            "name": "webhook/s3/malwareScan.completed",
            "service": "content-service",
            "live": "active"
          },
          {
            "name": "webhook/s3/malwareScan.failed",
            "service": "content-service",
            "live": "silent"
          },
          {
            "name": "webhook/s3/malwareScan.skipped",
            "service": "content-service",
            "live": "silent"
          },
          {
            "name": "webhook/s3/object.created",
            "service": "content-service",
            "live": "active"
          }
        ]
      },
      "servicesDetail": [
        {
          "name": "content-service",
          "group": "services",
          "db": "content-db",
          "enums": [
            {
              "name": "ContentFormat",
              "file": "services/content-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "PROSEMIRROR",
                  "doc": null
                }
              ]
            },
            {
              "name": "EventType",
              "file": "services/content-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "aggregate",
                  "doc": null
                },
                {
                  "name": "ephemeral",
                  "doc": null
                }
              ]
            },
            {
              "name": "FileIngestionStatus",
              "file": "services/content-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "NOT_REQUESTED",
                  "doc": null
                },
                {
                  "name": "PENDING",
                  "doc": null
                },
                {
                  "name": "SUCCESS",
                  "doc": null
                },
                {
                  "name": "FAILED",
                  "doc": null
                },
                {
                  "name": "UNSUPPORTED",
                  "doc": null
                }
              ]
            },
            {
              "name": "FilePreviewStatus",
              "file": "services/content-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "NOT_REQUESTED",
                  "doc": null
                },
                {
                  "name": "PENDING",
                  "doc": null
                },
                {
                  "name": "SUCCESS",
                  "doc": null
                },
                {
                  "name": "FAILED",
                  "doc": null
                },
                {
                  "name": "UNSUPPORTED",
                  "doc": null
                }
              ]
            },
            {
              "name": "FileSource",
              "file": "services/content-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "EXTERNAL",
                  "doc": null
                },
                {
                  "name": "INTERNAL",
                  "doc": null
                }
              ]
            },
            {
              "name": "FileStatus",
              "file": "services/content-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "PENDING",
                  "doc": null
                },
                {
                  "name": "UPLOADED",
                  "doc": null
                },
                {
                  "name": "READY",
                  "doc": null
                },
                {
                  "name": "FAILED",
                  "doc": null
                },
                {
                  "name": "QUARANTINED",
                  "doc": null
                }
              ]
            },
            {
              "name": "FileThumbnailStatus",
              "file": "services/content-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "NOT_REQUESTED",
                  "doc": null
                },
                {
                  "name": "PENDING",
                  "doc": null
                },
                {
                  "name": "SUCCESS",
                  "doc": null
                },
                {
                  "name": "FAILED",
                  "doc": null
                },
                {
                  "name": "UNSUPPORTED",
                  "doc": null
                }
              ]
            },
            {
              "name": "TemplateEditorType",
              "file": "services/content-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "PERSON",
                  "doc": null
                },
                {
                  "name": "TEAM",
                  "doc": null
                }
              ]
            },
            {
              "name": "TemplateStatus",
              "file": "services/content-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "PROCESSING",
                  "doc": null
                },
                {
                  "name": "FAILED",
                  "doc": null
                },
                {
                  "name": "ACTIVE",
                  "doc": null
                },
                {
                  "name": "DEPRECATED",
                  "doc": null
                }
              ]
            },
            {
              "name": "TemplateType",
              "file": "services/content-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "DOCUMENT",
                  "doc": null
                }
              ]
            }
          ],
          "models": [
            {
              "name": "Content",
              "service": "content-service",
              "db": "content-db",
              "file": "services/content-service/prisma/schema.prisma",
              "line": 101,
              "idPrefix": "cont_",
              "doc": null,
              "fieldCount": 16,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "scope",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdByIdentityId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "latestSnapshotId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "sourceContentSnapshotId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "currentEpoch",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "format",
                  "type": "ContentFormat",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "deletedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "latestSnapshot",
                  "type": "ContentSnapshot",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "sourceContentSnapshot",
                  "type": "ContentSnapshot",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "updates",
                  "type": "ContentUpdate",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "snapshots",
                  "type": "ContentSnapshot",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "versions",
                  "type": "ContentVersion",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "template",
                  "type": "Template",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "createdByIdentityId",
                "latestSnapshotId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "One editable rich-text document (ProseMirror format) — what a MatterDocument or MatterNote actually points at for its body. Knows nothing about its business meaning; the caller's `scope` string is the only tenancy hint.",
              "keyFields": [
                {
                  "name": "scope",
                  "meaning": "Generic tenant/namespace string — the referencing domain owns what it means"
                },
                {
                  "name": "format",
                  "meaning": "Document format; PROSEMIRROR is the only value today"
                },
                {
                  "name": "latestSnapshotId",
                  "meaning": "The most recent compacted state of the document"
                },
                {
                  "name": "sourceContentSnapshotId",
                  "meaning": "If created from another document or template, the snapshot it was forked from"
                },
                {
                  "name": "currentEpoch",
                  "meaning": "Increments when history is rewritten (e.g. a version restore), invalidating older updates"
                }
              ],
              "references": [
                {
                  "field": "createdByIdentityId",
                  "target": "people",
                  "meaning": "identity who created the document"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "ContentShell",
              "service": "content-service",
              "db": "content-db",
              "file": "services/content-service/prisma/schema.prisma",
              "line": 150,
              "idPrefix": "contshl_",
              "doc": null,
              "fieldCount": 7,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "fileId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "metadata",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "deletedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "file",
                  "type": "File",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "contentSnapshots",
                  "type": "ContentSnapshot",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "Presentation metadata (page setup and the like) attached to an ingested File and carried by the snapshots derived from it.",
              "keyFields": [
                {
                  "name": "fileId",
                  "meaning": "The source File this shell wraps"
                },
                {
                  "name": "metadata",
                  "meaning": "Shell metadata JSON applied to derived snapshots"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "ContentSnapshot",
              "service": "content-service",
              "db": "content-db",
              "file": "services/content-service/prisma/schema.prisma",
              "line": 164,
              "idPrefix": "contsh_",
              "doc": null,
              "fieldCount": 14,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "contentId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "contentShellId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "epoch",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "lastAppliedUpdateId",
                  "type": "BigInt",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "data",
                  "type": "Bytes",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "byteSize",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdByIdentityIds",
                  "type": "String",
                  "list": true,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "content",
                  "type": "Content",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "contentShell",
                  "type": "ContentShell",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "contentVersions",
                  "type": "ContentVersion",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "derivedContents",
                  "type": "Content",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "latestForContent",
                  "type": "Content",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "core",
              "meaning": "A periodic compaction of a document's edit log — the full Yjs state at a point in time. Versions pin to snapshots, and new documents can be forked from one.",
              "keyFields": [
                {
                  "name": "contentId",
                  "meaning": "The document this snapshot belongs to"
                },
                {
                  "name": "lastAppliedUpdateId",
                  "meaning": "The last ContentUpdate folded into this state"
                },
                {
                  "name": "epoch",
                  "meaning": "Which history epoch the snapshot belongs to"
                },
                {
                  "name": "data",
                  "meaning": "The full document state as bytes"
                },
                {
                  "name": "createdByIdentityIds",
                  "meaning": "Everyone whose edits are folded into this compaction"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": [
                "ContentShell"
              ]
            },
            {
              "name": "ContentUpdate",
              "service": "content-service",
              "db": "content-db",
              "file": "services/content-service/prisma/schema.prisma",
              "line": 131,
              "idPrefix": null,
              "doc": null,
              "fieldCount": 8,
              "fields": [
                {
                  "name": "id",
                  "type": "BigInt",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "contentId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "batchId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdByIdentityId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "data",
                  "type": "Bytes",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "byteSize",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "content",
                  "type": "Content",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                }
              ],
              "externalRefs": [
                "batchId",
                "createdByIdentityId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "One batch of live collaborative edits — a Yjs delta appended to a document's edit log. Together with snapshots, this is the machinery of real-time co-editing.",
              "keyFields": [
                {
                  "name": "contentId",
                  "meaning": "The document being edited"
                },
                {
                  "name": "batchId",
                  "meaning": "Idempotency key so the same edit batch is never applied twice"
                },
                {
                  "name": "data",
                  "meaning": "The raw Yjs update bytes"
                }
              ],
              "references": [
                {
                  "field": "createdByIdentityId",
                  "target": "people",
                  "meaning": "identity who made the edit"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "ContentVersion",
              "service": "content-service",
              "db": "content-db",
              "file": "services/content-service/prisma/schema.prisma",
              "line": 189,
              "idPrefix": "contvs_",
              "doc": null,
              "fieldCount": 15,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "contentId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "snapshotId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "label",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "description",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "sourceFileId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdByIdentityId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "deletedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "content",
                  "type": "Content",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "snapshot",
                  "type": "ContentSnapshot",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "sourceFile",
                  "type": "File",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "currentVersionForTemplate",
                  "type": "Template",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "publishedVersionForTemplate",
                  "type": "Template",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "snapshotId",
                "createdByIdentityId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "A named, saved version of a document, pinned to one immutable snapshot — the version-history feature, and what a matter finalisation freezes. Also created automatically as milestone versions during editing.",
              "keyFields": [
                {
                  "name": "contentId",
                  "meaning": "The document this is a version of"
                },
                {
                  "name": "snapshotId",
                  "meaning": "The immutable snapshot the version pins"
                },
                {
                  "name": "label",
                  "meaning": "Human-given version name"
                },
                {
                  "name": "sourceFileId",
                  "meaning": "If the version was ingested from an uploaded file, that File"
                }
              ],
              "references": [
                {
                  "field": "createdByIdentityId",
                  "target": "people",
                  "meaning": "identity who saved the version"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Event",
              "service": "content-service",
              "db": "content-db",
              "file": "services/content-service/prisma/schema.prisma",
              "line": 354,
              "idPrefix": "evt_",
              "doc": null,
              "fieldCount": 7,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "timestamp",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "type",
                  "type": "EventType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "key",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "aggregateId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "aggregateType",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "payload",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "aggregateId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "Framework event-store row (aggregate or ephemeral) — service plumbing, currently unused for cross-service publishing since the event router is empty.",
              "keyFields": [
                {
                  "name": "key",
                  "meaning": "Event name"
                },
                {
                  "name": "aggregateId",
                  "meaning": "The entity the event is about, if aggregate-typed"
                },
                {
                  "name": "payload",
                  "meaning": "Event body JSON"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "File",
              "service": "content-service",
              "db": "content-db",
              "file": "services/content-service/prisma/schema.prisma",
              "line": 57,
              "idPrefix": "file_",
              "doc": null,
              "fieldCount": 24,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "originalName",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "displayName",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "extension",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "contentType",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "size",
                  "type": "Int",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "source",
                  "type": "FileSource",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "scope",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "purpose",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdByIdentityId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "status",
                  "type": "FileStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "sourceContentSnapshotId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "targetContentId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "previewStatus",
                  "type": "FilePreviewStatus",
                  "list": false,
                  "optional": true,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "previewUpdatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "thumbnailStatus",
                  "type": "FileThumbnailStatus",
                  "list": false,
                  "optional": true,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "thumbnailUpdatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "ingestionStatus",
                  "type": "FileIngestionStatus",
                  "list": false,
                  "optional": true,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "ingestionUpdatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "deletedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "sourceForContentVersion",
                  "type": "ContentVersion",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "contentShell",
                  "type": "ContentShell",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "createdByIdentityId",
                "sourceContentSnapshotId",
                "targetContentId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "content-service's own blob record with a processing pipeline: upload, malware scan, then preview, thumbnail and ingestion (conversion into editable content). Distinct from matter-service's file store, which holds matter uploads.",
              "keyFields": [
                {
                  "name": "status",
                  "meaning": "PENDING → UPLOADED → READY, or FAILED / QUARANTINED (malware scan)"
                },
                {
                  "name": "purpose",
                  "meaning": "Why the file exists (e.g. content ingestion source or export)"
                },
                {
                  "name": "scope",
                  "meaning": "Generic tenant/namespace string, same convention as Content"
                },
                {
                  "name": "ingestionStatus",
                  "meaning": "Conversion into editable content: NOT_REQUESTED / PENDING / SUCCESS / FAILED / UNSUPPORTED"
                },
                {
                  "name": "previewStatus",
                  "meaning": "Preview render pipeline state; thumbnails tracked separately"
                },
                {
                  "name": "targetContentId",
                  "meaning": "The Content a successful ingestion should become a version of"
                }
              ],
              "references": [
                {
                  "field": "createdByIdentityId",
                  "target": "people",
                  "meaning": "identity who uploaded the file"
                },
                {
                  "field": "targetContentId",
                  "target": "content",
                  "meaning": "the document this file is being ingested into"
                }
              ],
              "lifecycle": "PENDING → UPLOADED → READY / FAILED / QUARANTINED",
              "grouped": []
            },
            {
              "name": "FirmTemplate",
              "service": "content-service",
              "db": "content-db",
              "file": "services/content-service/prisma/schema.prisma",
              "line": 311,
              "idPrefix": "frmtpl_",
              "doc": "One row per (engine form, firm); soft delete = unassign; global facts stay in the engine catalogue, joined by slug at read",
              "fieldCount": 9,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "formSlug",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Engine (AGS) catalogue slug, validated against the engine at assign",
                  "fk": false
                },
                {
                  "name": "scope",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "jurisdictions",
                  "type": "String",
                  "list": true,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Firm-editable; engine defaults copied at assign, e.g. [\"England & Wales\"]",
                  "fk": false
                },
                {
                  "name": "createdByIdentityId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "deletedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "categories",
                  "type": "FormCategoryAssignment",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "createdByIdentityId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "Assigns an external form-engine (AGS) form to a firm by catalogue slug, with firm-editable jurisdictions. Soft delete means unassign; the engine catalogue stays the source of truth for the form itself.",
              "keyFields": [
                {
                  "name": "formSlug",
                  "meaning": "Engine catalogue slug, validated against the engine at assign time"
                },
                {
                  "name": "scope",
                  "meaning": "The firm the form is assigned to"
                },
                {
                  "name": "jurisdictions",
                  "meaning": "Firm-editable list; engine defaults copied at assign"
                }
              ],
              "references": [
                {
                  "field": "createdByIdentityId",
                  "target": "people",
                  "meaning": "identity who assigned the form"
                }
              ],
              "lifecycle": null,
              "grouped": [
                "FormCategoryAssignment"
              ]
            },
            {
              "name": "FormCategoryAssignment",
              "service": "content-service",
              "db": "content-db",
              "file": "services/content-service/prisma/schema.prisma",
              "line": 333,
              "idPrefix": null,
              "doc": "Forms share the firm's precedent category vocabulary (TemplateCategory).",
              "fieldCount": 5,
              "fields": [
                {
                  "name": "firmTemplateId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "categoryId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmTemplate",
                  "type": "FirmTemplate",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "category",
                  "type": "TemplateCategory",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "Join row tagging a FirmTemplate (assigned form) with a TemplateCategory — forms reuse the firm's template category vocabulary.",
              "keyFields": [
                {
                  "name": "firmTemplateId",
                  "meaning": "The assigned form being tagged"
                },
                {
                  "name": "categoryId",
                  "meaning": "The shared category applied"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Template",
              "service": "content-service",
              "db": "content-db",
              "file": "services/content-service/prisma/schema.prisma",
              "line": 227,
              "idPrefix": "tpl_",
              "doc": null,
              "fieldCount": 18,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "type",
                  "type": "TemplateType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "status",
                  "type": "TemplateStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "scope",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "name",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "description",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "contentId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "currentVersionId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "publishedVersionId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdByIdentityId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "deletedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "content",
                  "type": "Content",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "currentVersion",
                  "type": "ContentVersion",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "publishedVersion",
                  "type": "ContentVersion",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "editors",
                  "type": "TemplateEditor",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "categories",
                  "type": "TemplateCategoryAssignment",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "currentVersionId",
                "publishedVersionId",
                "createdByIdentityId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "A reusable document template backed by its own Content, with a draft/publish flow: the current version is what editors work on, the published version is what new documents are created from.",
              "keyFields": [
                {
                  "name": "status",
                  "meaning": "PROCESSING → ACTIVE (or FAILED), later DEPRECATED"
                },
                {
                  "name": "name",
                  "meaning": "Template name shown when picking one"
                },
                {
                  "name": "contentId",
                  "meaning": "The backing editable document"
                },
                {
                  "name": "currentVersionId",
                  "meaning": "The working version editors see"
                },
                {
                  "name": "publishedVersionId",
                  "meaning": "The frozen version new documents are stamped from; null until first publish"
                }
              ],
              "references": [
                {
                  "field": "createdByIdentityId",
                  "target": "people",
                  "meaning": "identity who created the template"
                }
              ],
              "lifecycle": "PROCESSING → ACTIVE / FAILED → DEPRECATED",
              "grouped": [
                "TemplateEditor",
                "TemplateCategoryAssignment"
              ]
            },
            {
              "name": "TemplateCategory",
              "service": "content-service",
              "db": "content-db",
              "file": "services/content-service/prisma/schema.prisma",
              "line": 261,
              "idPrefix": "tplcat_",
              "doc": null,
              "fieldCount": 8,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "scope",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "name",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "deletedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "assignments",
                  "type": "TemplateCategoryAssignment",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "formAssignments",
                  "type": "FormCategoryAssignment",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A firm's own category label for organising templates — and, shared vocabulary, its assigned forms too.",
              "keyFields": [
                {
                  "name": "scope",
                  "meaning": "The firm namespace the category belongs to"
                },
                {
                  "name": "name",
                  "meaning": "Category label as shown in pickers"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "TemplateCategoryAssignment",
              "service": "content-service",
              "db": "content-db",
              "file": "services/content-service/prisma/schema.prisma",
              "line": 276,
              "idPrefix": null,
              "doc": null,
              "fieldCount": 5,
              "fields": [
                {
                  "name": "templateId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "categoryId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "template",
                  "type": "Template",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "category",
                  "type": "TemplateCategory",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "Join row tagging a Template with a TemplateCategory.",
              "keyFields": [
                {
                  "name": "templateId",
                  "meaning": "The template being tagged"
                },
                {
                  "name": "categoryId",
                  "meaning": "The category applied"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "TemplateEditor",
              "service": "content-service",
              "db": "content-db",
              "file": "services/content-service/prisma/schema.prisma",
              "line": 294,
              "idPrefix": "tmped_",
              "doc": null,
              "fieldCount": 7,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "templateId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "editorType",
                  "type": "TemplateEditorType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "editorId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdByIdentityId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "template",
                  "type": "Template",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                }
              ],
              "externalRefs": [
                "editorId",
                "createdByIdentityId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "Grants edit permission on a template to a PERSON or a TEAM.",
              "keyFields": [
                {
                  "name": "editorType",
                  "meaning": "PERSON or TEAM"
                },
                {
                  "name": "editorId",
                  "meaning": "Opaque id of the person or team granted access"
                }
              ],
              "references": [
                {
                  "field": "editorId",
                  "target": "people",
                  "meaning": "the person or team allowed to edit"
                }
              ],
              "lifecycle": null,
              "grouped": []
            }
          ]
        }
      ]
    },
    {
      "id": "email",
      "order": 4,
      "name": "Email",
      "services": [
        "email-service"
      ],
      "databases": [
        "email-db"
      ],
      "tagline": "Lawyers' real mailboxes mirrored via Nylas, with emails filed onto matters",
      "whatItIs": "Lawyers keep using their real Outlook mailboxes, and this domain mirrors them into the platform through Nylas. The mailbox stays the source of truth; the platform keeps a synchronised copy so emails can be read, searched, and above all filed onto the matter they belong to. Lawyers connect their mailbox once, then read and star threads, compose and send with attachments, file and refile messages (from the app or the Outlook add-in), and can backfill a mailbox's history when they join.",
      "howItConnects": "An email belongs to a lawyer (People & firms) and gets filed onto a case (Matters). The filing conversation is a good example of domains talking through events: when a new email arrives, this domain announces it, Matters answers with which case it belongs to, and the filed copy lands on that matter. Corrections work the same way, so refiled or unfiled emails stay in sync everywhere. The AI domain listens along to keep Lawrence's picture of each matter fresh.",
      "lifecycle": "email arrives → mirrored as Message → matched by Matters → filed + mailbox labelled → uploaded to matter",
      "flows": [
        {
          "id": "email-filing",
          "title": "Filing choreography",
          "mermaid": "sequenceDiagram\n    participant N as Nylas\n    participant E as Email domain\n    participant M as Matters domain\n    N->>E: webhook: new email\n    E->>E: mirror into Message\n    E->>M: message.created (addresses, thread hint)\n    M->>E: email.matched (matterId)\n    E->>E: file Message, label mailbox\n    E->>M: message.uploaded / attachment.uploaded\n    Note over M: appears on the matter as\n    Note over M: Communication + MatterFiles",
          "caption": "email-service proposes, matter-service disposes"
        }
      ],
      "notes": [
        {
          "kind": "companion",
          "body": "The Outlook add-in path can short-circuit the choreography: for a message not yet mirrored, email-service emits matter-service/email.matched itself with filingSource OUTLOOK_ADDIN, then files once the mirror catches up."
        },
        {
          "kind": "status",
          "body": "Microsoft is the only provider today (GrantProvider has a single value); everything routes through Nylas grants."
        }
      ],
      "events": {
        "publishes": [
          {
            "name": "email-service/attachment.refiled",
            "service": "email-service",
            "live": "silent"
          },
          {
            "name": "email-service/attachment.removed",
            "service": "email-service",
            "live": "silent"
          },
          {
            "name": "email-service/attachment.uploaded",
            "service": "email-service",
            "live": "rare"
          },
          {
            "name": "email-service/attachment.uploadRequested",
            "service": "email-service",
            "live": "active"
          },
          {
            "name": "email-service/grant.messageBackfill.requested",
            "service": "email-service",
            "live": "active"
          },
          {
            "name": "email-service/message.created",
            "service": "email-service",
            "live": "active"
          },
          {
            "name": "email-service/message.filed",
            "service": "email-service",
            "live": "active"
          },
          {
            "name": "email-service/message.refiled",
            "service": "email-service",
            "live": "rare"
          },
          {
            "name": "email-service/message.removed",
            "service": "email-service",
            "live": "silent"
          },
          {
            "name": "email-service/message.uploaded",
            "service": "email-service",
            "live": "active"
          },
          {
            "name": "email-service/sent-message.settle-body",
            "service": "email-service",
            "live": "rare"
          },
          {
            "name": "matter-service/email.matched",
            "service": "email-service",
            "live": "rare"
          }
        ],
        "consumes": [
          {
            "name": "email-service/attachment.uploadRequested",
            "service": "email-service",
            "live": "active"
          },
          {
            "name": "email-service/grant.messageBackfill.requested",
            "service": "email-service",
            "live": "active"
          },
          {
            "name": "email-service/message-draft.send",
            "service": "email-service",
            "live": "silent"
          },
          {
            "name": "email-service/message.filed",
            "service": "email-service",
            "live": "active"
          },
          {
            "name": "email-service/sent-message.settle-body",
            "service": "email-service",
            "live": "rare"
          },
          {
            "name": "matter-service/email.matched",
            "service": "email-service",
            "live": "rare"
          },
          {
            "name": "webhook/nylas/folder.created",
            "service": "email-service",
            "live": "active"
          },
          {
            "name": "webhook/nylas/folder.deleted",
            "service": "email-service",
            "live": "active"
          },
          {
            "name": "webhook/nylas/folder.updated",
            "service": "email-service",
            "live": "rare"
          },
          {
            "name": "webhook/nylas/message.created",
            "service": "email-service",
            "live": "active"
          },
          {
            "name": "webhook/nylas/message.updated",
            "service": "email-service",
            "live": "active"
          }
        ]
      },
      "servicesDetail": [
        {
          "name": "email-service",
          "group": "services",
          "db": "email-db",
          "enums": [
            {
              "name": "EventType",
              "file": "services/email-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "aggregate",
                  "doc": null
                },
                {
                  "name": "ephemeral",
                  "doc": null
                }
              ]
            },
            {
              "name": "GrantProvider",
              "file": "services/email-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "MICROSOFT",
                  "doc": null
                }
              ]
            },
            {
              "name": "GrantStatus",
              "file": "services/email-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "ACTIVE",
                  "doc": null
                },
                {
                  "name": "INACTIVE",
                  "doc": null
                }
              ]
            },
            {
              "name": "MessageBackfillStatus",
              "file": "services/email-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "RUNNING",
                  "doc": null
                },
                {
                  "name": "PAUSED",
                  "doc": null
                },
                {
                  "name": "COMPLETED",
                  "doc": null
                },
                {
                  "name": "FAILED",
                  "doc": null
                }
              ]
            },
            {
              "name": "MessageDirection",
              "file": "services/email-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "RECEIVED",
                  "doc": null
                },
                {
                  "name": "SENT",
                  "doc": null
                }
              ]
            },
            {
              "name": "MessageDraftStatus",
              "file": "services/email-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "DRAFTING",
                  "doc": null
                },
                {
                  "name": "SENDING",
                  "doc": null
                },
                {
                  "name": "DELETED",
                  "doc": null
                },
                {
                  "name": "FAILED",
                  "doc": null
                }
              ]
            },
            {
              "name": "MessageFilingSource",
              "file": "services/email-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "AUTO_FILING_ONE_LIKELY_MATTER",
                  "doc": null
                },
                {
                  "name": "AUTO_FILING_BASED_ON_THREAD",
                  "doc": null
                },
                {
                  "name": "OUTLOOK_ADDIN",
                  "doc": null
                },
                {
                  "name": "MANUAL_FILING",
                  "doc": null
                }
              ]
            },
            {
              "name": "MessageFolderType",
              "file": "services/email-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "INBOX",
                  "doc": null
                },
                {
                  "name": "ARCHIVE",
                  "doc": null
                },
                {
                  "name": "DRAFTS",
                  "doc": null
                },
                {
                  "name": "JUNK",
                  "doc": null
                },
                {
                  "name": "OTHER",
                  "doc": null
                },
                {
                  "name": "SENT",
                  "doc": null
                },
                {
                  "name": "TRASH",
                  "doc": null
                }
              ]
            },
            {
              "name": "MessageStatus",
              "file": "services/email-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "ACTIVE",
                  "doc": null
                },
                {
                  "name": "INACTIVE",
                  "doc": null
                }
              ]
            }
          ],
          "models": [
            {
              "name": "Event",
              "service": "email-service",
              "db": "email-db",
              "file": "services/email-service/prisma/schema.prisma",
              "line": 318,
              "idPrefix": "evt_",
              "doc": null,
              "fieldCount": 7,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "timestamp",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "type",
                  "type": "EventType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "key",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "aggregateId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "aggregateType",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "payload",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "aggregateId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "The framework's event-store row: a journal of aggregate and ephemeral events this service has published, keyed for replay and lookup.",
              "keyFields": [
                {
                  "name": "key",
                  "meaning": "the event name, e.g. message.filed"
                },
                {
                  "name": "aggregateId",
                  "meaning": "the entity the event is about"
                },
                {
                  "name": "payload",
                  "meaning": "the event body as published"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Grant",
              "service": "email-service",
              "db": "email-db",
              "file": "services/email-service/prisma/schema.prisma",
              "line": 28,
              "idPrefix": "grant_",
              "doc": null,
              "fieldCount": 16,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "emailAddress",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "displayName",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "nylasId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "personId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "provider",
                  "type": "GrantProvider",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "status",
                  "type": "GrantStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "messages",
                  "type": "Message",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Relations",
                  "fk": false
                },
                {
                  "name": "messageFolders",
                  "type": "MessageFolder",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "messageDrafts",
                  "type": "MessageDraft",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "messageBackfills",
                  "type": "MessageBackfill",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "providerTenantId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "providerTenant",
                  "type": "ProviderTenant",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "backfillCompletedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Set when the initial historical message backfill finishes.",
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "nylasId",
                "personId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "A connected mailbox: one person's email account, authorised through Nylas. The root record of the domain — without a grant there are no email features for that person.",
              "keyFields": [
                {
                  "name": "emailAddress",
                  "meaning": "the mailbox address this grant mirrors"
                },
                {
                  "name": "nylasId",
                  "meaning": "the Nylas grant that authorises reading and sending"
                },
                {
                  "name": "personId",
                  "meaning": "who owns the mailbox"
                },
                {
                  "name": "status",
                  "meaning": "ACTIVE or INACTIVE — whether the connection is live"
                },
                {
                  "name": "backfillCompletedAt",
                  "meaning": "set once the initial historical import has finished"
                }
              ],
              "references": [
                {
                  "field": "personId",
                  "target": "people",
                  "meaning": "the lawyer whose mailbox this is"
                }
              ],
              "lifecycle": "ACTIVE → INACTIVE",
              "grouped": []
            },
            {
              "name": "GrantVerification",
              "service": "email-service",
              "db": "email-db",
              "file": "services/email-service/prisma/schema.prisma",
              "line": 72,
              "idPrefix": "gver_",
              "doc": null,
              "fieldCount": 11,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "emailAddress",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "personId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "codeHash",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "attemptCount",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "expiresAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "consumedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "providerTenantId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "providerTenant",
                  "type": "ProviderTenant",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "personId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A one-time code challenge proving a person controls an email address before a grant is created under their firm's tenant. Expires, counts attempts, and is consumed on success.",
              "keyFields": [
                {
                  "name": "codeHash",
                  "meaning": "hash of the emailed verification code"
                },
                {
                  "name": "attemptCount",
                  "meaning": "failed guesses so far"
                },
                {
                  "name": "expiresAt",
                  "meaning": "when the code stops working"
                },
                {
                  "name": "consumedAt",
                  "meaning": "set when verification succeeds"
                }
              ],
              "references": [
                {
                  "field": "personId",
                  "target": "people",
                  "meaning": "who is proving mailbox ownership"
                }
              ],
              "lifecycle": "issued → consumed / expired",
              "grouped": []
            },
            {
              "name": "Message",
              "service": "email-service",
              "db": "email-db",
              "file": "services/email-service/prisma/schema.prisma",
              "line": 136,
              "idPrefix": "msg_",
              "doc": null,
              "fieldCount": 34,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "nylasId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "nylasThreadId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "nylasFolderIds",
                  "type": "String",
                  "list": true,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "direction",
                  "type": "MessageDirection",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "filingSource",
                  "type": "MessageFilingSource",
                  "list": false,
                  "optional": true,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "filingIgnored",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "mailboxCreatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "starred",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "status",
                  "type": "MessageStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "subject",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "unread",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "bcc",
                  "type": "Json",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Arrays of name/email address pairs",
                  "fk": false
                },
                {
                  "name": "cc",
                  "type": "Json",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "from",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "replyTo",
                  "type": "Json",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "to",
                  "type": "Json",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "fromEmail",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "fromIgnoredDomain",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "body",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Non-essential",
                  "fk": false
                },
                {
                  "name": "rawMimeS3Key",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "snippet",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "pendingSettledBody",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "True while a platform-sent message awaits its post-send body rewrite (e.g. a signature appliance\nedits the sent copy in place). Set on send, cleared once the body changes. Only ever true for\nlegal-os sends, so every other row defaults to false — drives the \"fetching signature\" hint.",
                  "fk": false
                },
                {
                  "name": "draftId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Draft tracking - for messages sent from platform drafts",
                  "fk": false
                },
                {
                  "name": "draftCreatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "grant",
                  "type": "Grant",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Relations",
                  "fk": true
                },
                {
                  "name": "grantId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "messageAttachments",
                  "type": "MessageAttachment",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "messageFolders",
                  "type": "MessageFolder",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "messageBackfill",
                  "type": "MessageBackfill",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "messageBackfillId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "nylasId",
                "nylasThreadId",
                "matterId",
                "draftId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "One email (SENT or RECEIVED), mirrored from the provider mailbox: participants, body, folders, read state — plus matterId and filingSource once it is filed onto a matter.",
              "keyFields": [
                {
                  "name": "nylasThreadId",
                  "meaning": "provider thread — the unit for thread views and thread-based auto-filing"
                },
                {
                  "name": "direction",
                  "meaning": "RECEIVED or SENT"
                },
                {
                  "name": "matterId",
                  "meaning": "the matter this email is filed onto; null while unfiled"
                },
                {
                  "name": "filingSource",
                  "meaning": "how it was filed: AUTO (one likely matter), AUTO (thread), OUTLOOK_ADDIN, or MANUAL"
                },
                {
                  "name": "filingIgnored",
                  "meaning": "true when the thread was dismissed from the unfiled queue"
                },
                {
                  "name": "status",
                  "meaning": "ACTIVE or INACTIVE — soft delete for deleted/removed messages"
                },
                {
                  "name": "pendingSettledBody",
                  "meaning": "platform-sent copy awaiting its post-send signature rewrite"
                }
              ],
              "references": [
                {
                  "field": "matterId",
                  "target": "matters",
                  "meaning": "the matter the email is filed onto"
                }
              ],
              "lifecycle": "mirrored (unfiled) → filed onto matter → refiled / unfiled; ACTIVE → INACTIVE",
              "grouped": [
                "MessageAttachment",
                "MessageFolder"
              ]
            },
            {
              "name": "MessageAttachment",
              "service": "email-service",
              "db": "email-db",
              "file": "services/email-service/prisma/schema.prisma",
              "line": 197,
              "idPrefix": "msgatt_",
              "doc": null,
              "fieldCount": 13,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "nylasId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "contentType",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "fileName",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "fileSize",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "inlineContentId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "isInline",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "s3Key",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "uploadRequestedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "message",
                  "type": "Message",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Relations",
                  "fk": true
                },
                {
                  "name": "messageId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "nylasId",
                "inlineContentId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A file on a mirrored message, lazily uploaded to S3 — the upload is only requested when the message is filed or the file is needed.",
              "keyFields": [
                {
                  "name": "fileName",
                  "meaning": "the attachment's name as it appears in the email"
                },
                {
                  "name": "s3Key",
                  "meaning": "where the bytes live once uploaded; null until then"
                },
                {
                  "name": "isInline",
                  "meaning": "true for images embedded in the body rather than attached"
                },
                {
                  "name": "uploadRequestedAt",
                  "meaning": "when the lazy S3 upload was kicked off"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "MessageBackfill",
              "service": "email-service",
              "db": "email-db",
              "file": "services/email-service/prisma/schema.prisma",
              "line": 98,
              "idPrefix": "msgbackfill_",
              "doc": null,
              "fieldCount": 12,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "status",
                  "type": "MessageBackfillStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "grant",
                  "type": "Grant",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "grantId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "messages",
                  "type": "Message",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "receivedBefore",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "receivedAfter",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "nextPageToken",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "backfilledTo",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "The timestamp of the oldest message backfilled yet\nCan be used to continue a failed backfill from this point by setting it as receivedBefore",
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "completedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "failedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A historical-import job pulling a newly connected mailbox's past email, page by page. Resumable: backfilledTo records the oldest message imported so a failed run can continue.",
              "keyFields": [
                {
                  "name": "status",
                  "meaning": "RUNNING → PAUSED / COMPLETED / FAILED"
                },
                {
                  "name": "backfilledTo",
                  "meaning": "oldest message imported so far — the resume point"
                },
                {
                  "name": "nextPageToken",
                  "meaning": "Nylas pagination cursor for the next batch"
                }
              ],
              "references": [],
              "lifecycle": "RUNNING → PAUSED → COMPLETED / FAILED",
              "grouped": []
            },
            {
              "name": "MessageDraft",
              "service": "email-service",
              "db": "email-db",
              "file": "services/email-service/prisma/schema.prisma",
              "line": 255,
              "idPrefix": "msgdraft_",
              "doc": null,
              "fieldCount": 19,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "grantId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "grant",
                  "type": "Grant",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "subject",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "sourceHtml",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "contentHtml",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "to",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "cc",
                  "type": "Json",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "bcc",
                  "type": "Json",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "replyTo",
                  "type": "Json",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "replyToMessageId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "replyToThreadId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "status",
                  "type": "MessageDraftStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "messageId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "deletedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "messageDraftAttachments",
                  "type": "MessageDraftAttachment",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "matterId",
                "replyToMessageId",
                "replyToThreadId",
                "messageId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "An email composed in the platform — optionally a reply into an existing thread, optionally pre-linked to a matter. Becomes a Message when sent.",
              "keyFields": [
                {
                  "name": "status",
                  "meaning": "DRAFTING → SENDING → (linked Message) / DELETED / FAILED"
                },
                {
                  "name": "matterId",
                  "meaning": "the matter the draft is composed against, if any"
                },
                {
                  "name": "replyToMessageId",
                  "meaning": "the message this draft replies to, for thread continuity"
                },
                {
                  "name": "contentHtml",
                  "meaning": "the edited body that will be sent"
                },
                {
                  "name": "messageId",
                  "meaning": "the sent Message this draft became"
                }
              ],
              "references": [
                {
                  "field": "matterId",
                  "target": "matters",
                  "meaning": "the matter the draft belongs to"
                }
              ],
              "lifecycle": "DRAFTING → SENDING → sent (Message) / FAILED / DELETED",
              "grouped": [
                "MessageDraftAttachment"
              ]
            },
            {
              "name": "MessageDraftAttachment",
              "service": "email-service",
              "db": "email-db",
              "file": "services/email-service/prisma/schema.prisma",
              "line": 289,
              "idPrefix": "msgdraftatt_",
              "doc": null,
              "fieldCount": 11,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "fileName",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "fileSize",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "contentType",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "isInline",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "inlineContentId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "s3Key",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "messageDraft",
                  "type": "MessageDraft",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "messageDraftId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "inlineContentId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A file attached to a platform-composed draft, held in S3 until the draft is sent.",
              "keyFields": [
                {
                  "name": "s3Key",
                  "meaning": "where the uploaded file lives, ready for send"
                },
                {
                  "name": "isInline",
                  "meaning": "true for images embedded in the draft body"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "MessageFolder",
              "service": "email-service",
              "db": "email-db",
              "file": "services/email-service/prisma/schema.prisma",
              "line": 226,
              "idPrefix": "msgfol_",
              "doc": null,
              "fieldCount": 13,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "nylasId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "nylasParentFolderId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "name",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "type",
                  "type": "MessageFolderType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "grant",
                  "type": "Grant",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Relations",
                  "fk": true
                },
                {
                  "name": "grantId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "parentFolder",
                  "type": "MessageFolder",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "parentFolderId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "subFolders",
                  "type": "MessageFolder",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "messages",
                  "type": "Message",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "nylasId",
                "nylasParentFolderId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A mirrored mailbox folder (INBOX, SENT, ARCHIVE, JUNK, TRASH…), kept in sync from Nylas folder webhooks and forming a hierarchy per grant.",
              "keyFields": [
                {
                  "name": "type",
                  "meaning": "well-known role: INBOX, SENT, ARCHIVE, DRAFTS, JUNK, TRASH or OTHER"
                },
                {
                  "name": "parentFolderId",
                  "meaning": "parent in the folder tree, for nested custom folders"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "ProviderTenant",
              "service": "email-service",
              "db": "email-db",
              "file": "services/email-service/prisma/schema.prisma",
              "line": 53,
              "idPrefix": "ten_",
              "doc": null,
              "fieldCount": 11,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "friendlyName",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "provider",
                  "type": "GrantProvider",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "tenantId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "credentialId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "The firm that owns this tenant. A firm may own several tenants; a tenant belongs to one firm.",
                  "fk": false
                },
                {
                  "name": "domains",
                  "type": "String",
                  "list": true,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Verified email domains for this tenant, lowercased. A domain resolves to exactly one tenant.",
                  "fk": false
                },
                {
                  "name": "grants",
                  "type": "Grant",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "verifications",
                  "type": "GrantVerification",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "tenantId",
                "credentialId",
                "firmId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "A firm's Microsoft 365 tenant, mapping verified email domains to the firm. Enables self-service mailbox connection: a domain resolves to exactly one tenant.",
              "keyFields": [
                {
                  "name": "tenantId",
                  "meaning": "the Microsoft 365 tenant identifier"
                },
                {
                  "name": "firmId",
                  "meaning": "the firm that owns this tenant; a firm may own several"
                },
                {
                  "name": "domains",
                  "meaning": "verified email domains, lowercased; each resolves to one tenant"
                },
                {
                  "name": "credentialId",
                  "meaning": "the Nylas credential used to mint grants under this tenant"
                }
              ],
              "references": [
                {
                  "field": "firmId",
                  "target": "people",
                  "meaning": "the firm that owns the tenant"
                }
              ],
              "lifecycle": null,
              "grouped": []
            }
          ]
        }
      ]
    },
    {
      "id": "chat",
      "order": 5,
      "name": "Chat",
      "services": [
        "messaging-service"
      ],
      "databases": [
        "messaging-db"
      ],
      "tagline": "In-app messaging between client and firm on a matter: the Messages tab",
      "whatItIs": "The Messages tab on a matter: an in-app conversation between the client and the firm. Each matter gets exactly one channel, carrying regular messages plus system announcements (a welcome message, a note when the case changes lawyer). The platform's database is the record of truth, and delivery to open browsers happens over Ably, so new messages, edits, and deletes show up live. Messages can be edited or deleted within a time window, and read receipts track who has seen what.",
      "howItConnects": "Chat exists entirely in service of a matter: when a matter is created, the channel is created with it and the participants are added automatically. The people in the conversation come from People & firms. Every message sent is also announced as an event, which the AI domain consumes so Lawrence knows what has been said on the case.",
      "lifecycle": null,
      "flows": [
        {
          "id": "channel-birth",
          "title": "A channel is born with its matter",
          "mermaid": "flowchart LR\n  A[matter.created] --> B[create Channel\nid = matterId]\n  B --> C[add participants]\n  C --> D[welcome ANNOUNCEMENT]\n  E[client browser] -->|Ably token| F[subscribe channel:matterId]",
          "caption": "Channels are never created by hand: matter.created drives channel creation, participant setup and the welcome announcement; browsers then subscribe to the channel over Ably."
        }
      ],
      "notes": [
        {
          "kind": "status",
          "body": "The schema gives Channel ids a chnl_ default, but every channel is actually created with the matter's id — the invariant Channel.id == matterId holds by construction, and the chnl_ prefix goes unused in practice."
        }
      ],
      "events": {
        "publishes": [
          {
            "name": "messaging-service/message.created",
            "service": "messaging-service",
            "live": "active"
          }
        ],
        "consumes": [
          {
            "name": "platform-api/matter.created",
            "service": "messaging-service",
            "live": "rare"
          },
          {
            "name": "platform-api/matter.reassigned",
            "service": "messaging-service",
            "live": "active"
          }
        ]
      },
      "servicesDetail": [
        {
          "name": "messaging-service",
          "group": "services",
          "db": "messaging-db",
          "enums": [
            {
              "name": "AuditAction",
              "file": "services/messaging-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "EDIT",
                  "doc": null
                },
                {
                  "name": "DELETE",
                  "doc": null
                }
              ]
            },
            {
              "name": "ChannelParticipantStatus",
              "file": "services/messaging-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "ACTIVE",
                  "doc": null
                },
                {
                  "name": "INACTIVE",
                  "doc": null
                }
              ]
            },
            {
              "name": "EventType",
              "file": "services/messaging-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "aggregate",
                  "doc": null
                },
                {
                  "name": "ephemeral",
                  "doc": null
                }
              ]
            },
            {
              "name": "MessageType",
              "file": "services/messaging-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "TEXT",
                  "doc": null
                },
                {
                  "name": "ANNOUNCEMENT",
                  "doc": null
                }
              ]
            }
          ],
          "models": [
            {
              "name": "Channel",
              "service": "messaging-service",
              "db": "messaging-db",
              "file": "services/messaging-service/prisma/schema.prisma",
              "line": 71,
              "idPrefix": "chnl_",
              "doc": null,
              "fieldCount": 6,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "messages",
                  "type": "Message",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "participants",
                  "type": "ChannelParticipant",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "readStatus",
                  "type": "MessageReadStatus",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "core",
              "meaning": "One matter's conversation — created automatically when the matter is created, never by hand. Everything else in this domain hangs off it.",
              "keyFields": [
                {
                  "name": "id",
                  "meaning": "Equals the matter's id by construction (not FK) — the schema's chnl_ default is unused in practice"
                },
                {
                  "name": "participants",
                  "meaning": "Who is in the conversation, each ACTIVE or INACTIVE"
                },
                {
                  "name": "messages",
                  "meaning": "The full message history for the matter"
                }
              ],
              "references": [
                {
                  "field": "id",
                  "target": "matters",
                  "meaning": "the matter this conversation belongs to — same id, by construction"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "ChannelParticipant",
              "service": "messaging-service",
              "db": "messaging-db",
              "file": "services/messaging-service/prisma/schema.prisma",
              "line": 82,
              "idPrefix": "chmb_",
              "doc": null,
              "fieldCount": 7,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "personId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "channelId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "channelParticipantStatus",
                  "type": "ChannelParticipantStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "channel",
                  "type": "Channel",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                }
              ],
              "externalRefs": [
                "personId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "A person's membership of a channel — being ACTIVE here is what gates message access and Ably token minting. One row per (channel, person).",
              "keyFields": [
                {
                  "name": "personId",
                  "meaning": "The person in the conversation (client or firm side)"
                },
                {
                  "name": "channelId",
                  "meaning": "The channel — and hence the matter — they belong to"
                },
                {
                  "name": "channelParticipantStatus",
                  "meaning": "ACTIVE or INACTIVE; only ACTIVE participants can read or get realtime tokens"
                }
              ],
              "references": [
                {
                  "field": "personId",
                  "target": "people",
                  "meaning": "the participating person"
                }
              ],
              "lifecycle": "ACTIVE → INACTIVE",
              "grouped": []
            },
            {
              "name": "Event",
              "service": "messaging-service",
              "db": "messaging-db",
              "file": "services/messaging-service/prisma/schema.prisma",
              "line": 115,
              "idPrefix": "evt_",
              "doc": null,
              "fieldCount": 7,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "timestamp",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "type",
                  "type": "EventType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "key",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "aggregateId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "aggregateType",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "payload",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "aggregateId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "The framework's event-store row for this service: an aggregate or ephemeral event with its key and JSON payload. Plumbing, not chat semantics.",
              "keyFields": [
                {
                  "name": "type",
                  "meaning": "aggregate (part of an entity's history) or ephemeral"
                },
                {
                  "name": "key",
                  "meaning": "The event name, e.g. message.created"
                },
                {
                  "name": "aggregateId",
                  "meaning": "The entity the event belongs to, when aggregate-typed"
                },
                {
                  "name": "payload",
                  "meaning": "The event body as JSON"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Message",
              "service": "messaging-service",
              "db": "messaging-db",
              "file": "services/messaging-service/prisma/schema.prisma",
              "line": 34,
              "idPrefix": "msg_",
              "doc": null,
              "fieldCount": 15,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "personId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "channelId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "hiddenFrom",
                  "type": "Json",
                  "list": true,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "messageType",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "content",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "editableUntil",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "deletableUntil",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAtUnix",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "editedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "deletedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "channel",
                  "type": "Channel",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "readStatus",
                  "type": "MessageReadStatus",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "personId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "A single chat message: a person's TEXT or a system ANNOUNCEMENT (welcome, reassignment). Carries its own edit/delete windows, per-person hiding, and soft deletion.",
              "keyFields": [
                {
                  "name": "personId",
                  "meaning": "The author; null for system announcements"
                },
                {
                  "name": "channelId",
                  "meaning": "The channel (= matter) it was sent in"
                },
                {
                  "name": "messageType",
                  "meaning": "TEXT or ANNOUNCEMENT (stored as a string)"
                },
                {
                  "name": "content",
                  "meaning": "The message body"
                },
                {
                  "name": "hiddenFrom",
                  "meaning": "People this message is hidden from — per-person visibility"
                },
                {
                  "name": "editableUntil",
                  "meaning": "Deadline after which the author can no longer edit"
                },
                {
                  "name": "deletableUntil",
                  "meaning": "Deadline after which the author can no longer delete"
                }
              ],
              "references": [
                {
                  "field": "personId",
                  "target": "people",
                  "meaning": "the author"
                }
              ],
              "lifecycle": "SENT → EDITED (until editableUntil) → DELETED (soft, until deletableUntil)",
              "grouped": []
            },
            {
              "name": "MessageAudit",
              "service": "messaging-service",
              "db": "messaging-db",
              "file": "services/messaging-service/prisma/schema.prisma",
              "line": 96,
              "idPrefix": "msau_",
              "doc": null,
              "fieldCount": 6,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "personId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "messageId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "contentAtAction",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "auditAction",
                  "type": "AuditAction",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "personId",
                "messageId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "An append-only record of every message EDIT or DELETE, capturing who did it and what the content was at that moment. The paper trail behind the edit/delete windows.",
              "keyFields": [
                {
                  "name": "personId",
                  "meaning": "Who edited or deleted the message"
                },
                {
                  "name": "messageId",
                  "meaning": "The message acted on (id reference, no FK)"
                },
                {
                  "name": "auditAction",
                  "meaning": "EDIT or DELETE"
                },
                {
                  "name": "contentAtAction",
                  "meaning": "The message content as it stood when the action happened"
                }
              ],
              "references": [
                {
                  "field": "personId",
                  "target": "people",
                  "meaning": "the actor"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "MessageReadStatus",
              "service": "messaging-service",
              "db": "messaging-db",
              "file": "services/messaging-service/prisma/schema.prisma",
              "line": 55,
              "idPrefix": "mrst_",
              "doc": null,
              "fieldCount": 7,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "personId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "channelId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "messageId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "message",
                  "type": "Message",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "channel",
                  "type": "Channel",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                }
              ],
              "externalRefs": [
                "personId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A per-person read receipt for one message — the rows behind unread counts and badges. Unique per (person, channel, message).",
              "keyFields": [
                {
                  "name": "personId",
                  "meaning": "Who has read the message"
                },
                {
                  "name": "channelId",
                  "meaning": "The channel, so unread counts can be answered per conversation"
                },
                {
                  "name": "messageId",
                  "meaning": "The message that was read"
                }
              ],
              "references": [
                {
                  "field": "personId",
                  "target": "people",
                  "meaning": "the reader"
                }
              ],
              "lifecycle": null,
              "grouped": []
            }
          ]
        }
      ]
    },
    {
      "id": "voice",
      "order": 6,
      "name": "Voice",
      "services": [
        "telephony-service"
      ],
      "databases": [
        "telephony-db"
      ],
      "tagline": "The firm's phone system: inbound reception by humans or an AI agent, on Twilio",
      "whatItIs": "The firm's phone line. Twilio carries the calls, and an ElevenLabs AI receptionist can answer them, take a message, or hand over to a human. The platform never touches the audio itself (it streams directly between Twilio and the provider). What it keeps is the record: who called, who answered (human, AI, or nobody), the recording, and an AI-written summary of the call. Firms enrol with their numbers, opening hours, holidays, and routing rules. It is a latency-critical domain, because a slow response here is dead air on a live call.",
      "howItConnects": "Deliberately thin. A firm's phone setup is keyed by the firm itself (People & firms owns the actual firm record), and everything else hangs off that. The outside world arrives as pre-verified webhooks from Twilio and ElevenLabs, and when a call wraps up and its recording and summary are collected, a single call-completed event goes out for the rest of the platform to use.",
      "lifecycle": "rings → routed (humans or AI) → live → ENDED (endReason) → COMPLETED (artifacts barriered)",
      "flows": [
        {
          "id": "voice-inbound-call",
          "title": "Inbound call lifecycle",
          "mermaid": "flowchart LR\n  ring[Call rings a firm number] --> hours{Business hours?}\n  hours -->|open| human[Dial humans: hunt group + AMD]\n  hours -->|closed| ai[AI agent - ElevenLabs]\n  human -->|no answer, fallback on| ai\n  ai -->|caller needs a person| esc[Escalate to human]\n  human --> done[Call ends: recording + summary]\n  ai --> done\n  esc --> done",
          "caption": "Business hours decide the first responder. In hours the engine dials the hunt group (with answering-machine screening); out of hours — or on no answer, if the firm allows it — the AI agent takes over, and can hand back to a human via escalation. Every path ends with the recording and post-call summary stamped on the Call."
        }
      ],
      "notes": [
        {
          "kind": "companion",
          "body": "Numbers are bought and wired up in Twilio by hand (an engineer points the number's voiceUrl at webhook-api); PhoneNumber rows only register them for dispatch. The AI agent's prompt, voice, and model live at the provider — this database holds opaque references only."
        }
      ],
      "events": {
        "publishes": [
          {
            "name": "telephony-service/call.completed",
            "service": "telephony-service",
            "live": "active"
          },
          {
            "name": "telephony-service/call.postCall.stored",
            "service": "telephony-service",
            "live": "silent"
          },
          {
            "name": "telephony-service/call.recording.settled",
            "service": "telephony-service",
            "live": "silent"
          }
        ],
        "consumes": [
          {
            "name": "telephony-service/call.elevenLabsPostCall.received",
            "service": "telephony-service",
            "live": "active"
          },
          {
            "name": "telephony-service/call.humanLegStatus.received",
            "service": "telephony-service",
            "live": "silent"
          },
          {
            "name": "telephony-service/call.recordingStatus.received",
            "service": "telephony-service",
            "live": "active"
          },
          {
            "name": "telephony-service/call.status.received",
            "service": "telephony-service",
            "live": "active"
          }
        ]
      },
      "servicesDetail": [
        {
          "name": "telephony-service",
          "group": "services",
          "db": "telephony-db",
          "enums": [
            {
              "name": "CallDirection",
              "file": "services/telephony-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "INBOUND",
                  "doc": null
                },
                {
                  "name": "OUTBOUND",
                  "doc": null
                }
              ]
            },
            {
              "name": "CallEndReason",
              "file": "services/telephony-service/prisma/schema.prisma",
              "doc": "Twilio's terminal status for the inbound leg, verbatim. NULL = the call is still live\n(endedAt is the liveness signal; both are stamped together by the status callback).",
              "values": [
                {
                  "name": "COMPLETED",
                  "doc": null
                },
                {
                  "name": "BUSY",
                  "doc": null
                },
                {
                  "name": "NO_ANSWER",
                  "doc": null
                },
                {
                  "name": "FAILED",
                  "doc": null
                },
                {
                  "name": "CANCELED",
                  "doc": null
                }
              ]
            },
            {
              "name": "CallHandledBy",
              "file": "services/telephony-service/prisma/schema.prisma",
              "doc": "Who ultimately served the caller. NONE = nobody did (missed, hung up early, or we\nfailed to serve — see serviceFailed). An escalated call is HUMAN + wasEscalated.",
              "values": [
                {
                  "name": "NONE",
                  "doc": null
                },
                {
                  "name": "HUMAN",
                  "doc": null
                },
                {
                  "name": "AI",
                  "doc": null
                }
              ]
            },
            {
              "name": "EventType",
              "file": "services/telephony-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "aggregate",
                  "doc": null
                },
                {
                  "name": "ephemeral",
                  "doc": null
                }
              ]
            },
            {
              "name": "HumanLegKind",
              "file": "services/telephony-service/prisma/schema.prisma",
              "doc": "How a human leg came to exist. AMD_SCREEN is the machine-screened outbound leg the\nengine originates; escalation transfers become a second value when phase 2 lands.",
              "values": [
                {
                  "name": "AMD_SCREEN",
                  "doc": null
                },
                {
                  "name": "HUNT_GROUP",
                  "doc": null
                },
                {
                  "name": "ESCALATION",
                  "doc": null
                }
              ]
            },
            {
              "name": "RoutingKind",
              "file": "services/telephony-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "IN_HOURS_HUMAN",
                  "doc": null
                },
                {
                  "name": "ESCALATION_HUMAN",
                  "doc": null
                }
              ]
            },
            {
              "name": "TelephonyFirmStatus",
              "file": "services/telephony-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "ACTIVE",
                  "doc": null
                },
                {
                  "name": "INACTIVE",
                  "doc": null
                }
              ]
            },
            {
              "name": "VoiceProviderKind",
              "file": "services/telephony-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "ELEVENLABS",
                  "doc": null
                }
              ]
            }
          ],
          "models": [
            {
              "name": "AiCallLeg",
              "service": "telephony-service",
              "db": "telephony-db",
              "file": "services/telephony-service/prisma/schema.prisma",
              "line": 257,
              "idPrefix": null,
              "doc": "One row per AI conversation on the call, created the moment the provider REGISTERS\nthe conversation (not when its post-call webhook lands) — so the provider-side\ndeep-link exists immediately, for live calls and for conversations that die before\nany webhook fires. The post-call webhook enriches the row; a NULL postCallReceivedAt\non a finished call means the artifact never arrived (call.completed's barrier waits\non exactly this).",
              "fieldCount": 9,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "callId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "call",
                  "type": "Call",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "provider",
                  "type": "VoiceProviderKind",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "providerConversationId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": "The provider's conversation/session reference (ElevenLabs conversation id) — the\ndeep-link into its dashboard. Unique: redeliveries upsert instead of duplicating.",
                  "fk": false
                },
                {
                  "name": "registeredAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "postCallUrl",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Where the full post-call object (turns, final agent state, analysis) lives — a\nvirtual-hosted S3 URL, presigned for reads, same shape as Recording.mediaUrl.\nLight metadata stays in the row.",
                  "fk": false
                },
                {
                  "name": "summary",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "postCallReceivedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "providerConversationId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "One AI conversation on a call, created the moment the provider registers it so the deep-link exists even for live calls. The post-call webhook later fills in the summary and S3 artifact; a finished call with NULL postCallReceivedAt means the artifact never arrived.",
              "keyFields": [
                {
                  "name": "providerConversationId",
                  "meaning": "ElevenLabs conversation id — the deep-link into its dashboard; unique so redeliveries upsert"
                },
                {
                  "name": "summary",
                  "meaning": "the AI's post-call summary of the conversation"
                },
                {
                  "name": "postCallUrl",
                  "meaning": "presigned S3 URL for the full post-call object (turns, agent state, analysis)"
                },
                {
                  "name": "postCallReceivedAt",
                  "meaning": "when the post-call artifact landed — the barrier call.completed waits on"
                }
              ],
              "references": [],
              "lifecycle": "REGISTERED → post-call ENRICHED (or never, flagged by NULL postCallReceivedAt)",
              "grouped": []
            },
            {
              "name": "BusinessHoursInterval",
              "service": "telephony-service",
              "db": "telephony-db",
              "file": "services/telephony-service/prisma/schema.prisma",
              "line": 135,
              "idPrefix": null,
              "doc": "One open interval. 0..N rows per day allow split shifts; a day with no rows = closed.\nTimes are zero-padded \"HH:MM\" strings, lexicographically comparable; CHECK constraints\n(close > open, dayOfWeek 0..6) are added in migration SQL.",
              "fieldCount": 6,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firm",
                  "type": "TelephonyFirm",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "dayOfWeek",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "0 = Monday .. 6 = Sunday",
                  "fk": false
                },
                {
                  "name": "openTime",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "closeTime",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "One open interval in the firm's weekly schedule — several rows per day allow split shifts, a day with no rows is closed. This schedule decides whether a caller gets humans or the AI.",
              "keyFields": [
                {
                  "name": "dayOfWeek",
                  "meaning": "0 = Monday through 6 = Sunday"
                },
                {
                  "name": "openTime",
                  "meaning": "opening time as zero-padded HH:MM, lexicographically comparable"
                },
                {
                  "name": "closeTime",
                  "meaning": "closing time; a CHECK enforces close > open"
                }
              ],
              "references": [
                {
                  "field": "firmId",
                  "target": "people",
                  "meaning": "the firm this schedule belongs to"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Call",
              "service": "telephony-service",
              "db": "telephony-db",
              "file": "services/telephony-service/prisma/schema.prisma",
              "line": 197,
              "idPrefix": null,
              "doc": null,
              "fieldCount": 21,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Nullable: an inbound call to an unknown number is still recorded before firm resolution.",
                  "fk": false
                },
                {
                  "name": "firm",
                  "type": "TelephonyFirm",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "phoneNumberId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "phoneNumber",
                  "type": "PhoneNumber",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "twilioCallSid",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "twilioAccountSid",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "The Twilio account that owns this call (single multi-market deployment), stamped at\nintake from platform-api's verified AccountSid — every REST action on the call must\nuse this account's credentials.",
                  "fk": false
                },
                {
                  "name": "fromNumber",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "toNumber",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "direction",
                  "type": "CallDirection",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "wasAfterHours",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "wasEscalated",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "handledBy",
                  "type": "CallHandledBy",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "serviceFailed",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "The routing promised service but delivery failed (e.g. provider registration\nerrored) — distinguishes \"we broke\" from an ordinary missed call.",
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "endedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Stamped from the number-level Twilio status callback when the inbound leg ends.",
                  "fk": false
                },
                {
                  "name": "durationSeconds",
                  "type": "Int",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "endReason",
                  "type": "CallEndReason",
                  "list": false,
                  "optional": true,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "recordings",
                  "type": "Recording",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "aiCallLegs",
                  "type": "AiCallLeg",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "humanCallLegs",
                  "type": "HumanCallLeg",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "core",
              "meaning": "One phone call: direction, who ultimately served the caller (HUMAN, AI, or NONE), timing, and Twilio's verbatim end reason. Nullable firmId because a call to an unknown number is still recorded before firm resolution.",
              "keyFields": [
                {
                  "name": "twilioCallSid",
                  "meaning": "Twilio's id for the inbound leg — the correlation key for every webhook"
                },
                {
                  "name": "handledBy",
                  "meaning": "who served the caller: NONE, HUMAN, or AI"
                },
                {
                  "name": "direction",
                  "meaning": "INBOUND or OUTBOUND"
                },
                {
                  "name": "wasAfterHours",
                  "meaning": "the call arrived outside the firm's schedule"
                },
                {
                  "name": "wasEscalated",
                  "meaning": "the AI handed the caller to a human mid-call"
                },
                {
                  "name": "serviceFailed",
                  "meaning": "routing promised service but delivery broke — distinct from an ordinary miss"
                },
                {
                  "name": "endReason",
                  "meaning": "Twilio's terminal status, verbatim; NULL means the call is still live"
                }
              ],
              "references": [
                {
                  "field": "firmId",
                  "target": "people",
                  "meaning": "the firm whose number was called, once resolved"
                }
              ],
              "lifecycle": "live (endReason NULL) → ENDED (COMPLETED / BUSY / NO_ANSWER / FAILED / CANCELED) → completed once artifacts land",
              "grouped": []
            },
            {
              "name": "Event",
              "service": "telephony-service",
              "db": "telephony-db",
              "file": "services/telephony-service/prisma/schema.prisma",
              "line": 311,
              "idPrefix": "evt_",
              "doc": null,
              "fieldCount": 7,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "timestamp",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "type",
                  "type": "EventType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "key",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "aggregateId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "aggregateType",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "payload",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "aggregateId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "The service's event journal: every domain event (calls.received, calls.escalated, firms.provisioned, ...) is written here in the same transaction as its effect, giving an audit trail and replay source.",
              "keyFields": [
                {
                  "name": "key",
                  "meaning": "the event's name, e.g. calls.ended"
                },
                {
                  "name": "type",
                  "meaning": "aggregate (state-changing) or ephemeral"
                },
                {
                  "name": "aggregateId",
                  "meaning": "the row the event acted on"
                },
                {
                  "name": "payload",
                  "meaning": "the event body as JSON"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Holiday",
              "service": "telephony-service",
              "db": "telephony-db",
              "file": "services/telephony-service/prisma/schema.prisma",
              "line": 150,
              "idPrefix": null,
              "doc": "A full- or part-day holiday. With openTime/closeTime unset the firm is closed all day;\nwhen set, they are the ONLY open window that day (overriding the weekly schedule) —\ne.g. \"Christmas Eve: open 09:00–12:00\". Both-or-neither is enforced by a CHECK.",
              "fieldCount": 7,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firm",
                  "type": "TelephonyFirm",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "date",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "name",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "openTime",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "closeTime",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A full- or part-day exception to the weekly schedule. With no times set the firm is closed all day; with times set they become the only open window that day (e.g. Christmas Eve 09:00-12:00).",
              "keyFields": [
                {
                  "name": "date",
                  "meaning": "the calendar day the exception applies to"
                },
                {
                  "name": "openTime",
                  "meaning": "if set with closeTime, the sole open window that day"
                },
                {
                  "name": "name",
                  "meaning": "what the holiday is called"
                }
              ],
              "references": [
                {
                  "field": "firmId",
                  "target": "people",
                  "meaning": "the firm taking the day off"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "HumanCallLeg",
              "service": "telephony-service",
              "db": "telephony-db",
              "file": "services/telephony-service/prisma/schema.prisma",
              "line": 281,
              "idPrefix": null,
              "doc": "One row per outbound human leg the engine originates. The row exists so the leg can\nbe cancelled when the caller hangs up while parked, and is the future home of\nper-attempt history (escalation legs, multi-target ringing).",
              "fieldCount": 12,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "callId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "call",
                  "type": "Call",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "kind",
                  "type": "HumanLegKind",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "twilioLegSid",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "targetNumber",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "The E.164 we rang.",
                  "fk": false
                },
                {
                  "name": "answeredBy",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Twilio AMD's verdict from the answer callback (human / machine_* / fax / unknown).",
                  "fk": false
                },
                {
                  "name": "answeredAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "lastStatus",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Twilio's final leg status verbatim (completed / no-answer / busy / failed / canceled).",
                  "fk": false
                },
                {
                  "name": "endedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "durationSeconds",
                  "type": "Int",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "core",
              "meaning": "One outbound human dial the engine originates — a machine-screened attempt, a hunt-group ring, or an escalation transfer. Exists so the leg can be cancelled if the caller hangs up while parked.",
              "keyFields": [
                {
                  "name": "kind",
                  "meaning": "why the leg exists: AMD_SCREEN, HUNT_GROUP, or ESCALATION"
                },
                {
                  "name": "twilioLegSid",
                  "meaning": "Twilio's id for this outbound leg"
                },
                {
                  "name": "targetNumber",
                  "meaning": "the human's number the engine dialled"
                },
                {
                  "name": "answeredAt",
                  "meaning": "when a person actually picked up, if they did"
                }
              ],
              "references": [],
              "lifecycle": "originated → answered / unanswered → ended",
              "grouped": []
            },
            {
              "name": "PhoneNumber",
              "service": "telephony-service",
              "db": "telephony-db",
              "file": "services/telephony-service/prisma/schema.prisma",
              "line": 107,
              "idPrefix": null,
              "doc": "Numbers are bought and configured in Twilio BY HAND (engineers point the number's\nvoiceUrl at webhook-api's /twilio-voice/incoming); this row only registers the number\nfor inbound dispatch and agent assignment.",
              "fieldCount": 11,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firm",
                  "type": "TelephonyFirm",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "phoneNumber",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": "E.164-formatted (e.g. +442079460000). Unique — the dispatcher lookup key for\ninbound calls.",
                  "fk": false
                },
                {
                  "name": "voiceAgentId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "The agent this number routes AI calls to. Restrict: an agent with numbers assigned\ncannot be deleted — unassign first.",
                  "fk": false
                },
                {
                  "name": "voiceAgent",
                  "type": "VoiceAgent",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "label",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "isActive",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "calls",
                  "type": "Call",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "core",
              "meaning": "A Twilio number the firm receives calls on, registered here for inbound dispatch and assigned to a voice agent for AI handling. The number itself is bought and configured in Twilio by hand.",
              "keyFields": [
                {
                  "name": "phoneNumber",
                  "meaning": "the E.164 number callers dial"
                },
                {
                  "name": "voiceAgentId",
                  "meaning": "the AI agent that answers when routing goes to AI"
                },
                {
                  "name": "isActive",
                  "meaning": "whether inbound calls to this number are served"
                },
                {
                  "name": "label",
                  "meaning": "human-readable name for the number"
                }
              ],
              "references": [
                {
                  "field": "firmId",
                  "target": "people",
                  "meaning": "the firm this number belongs to"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Recording",
              "service": "telephony-service",
              "db": "telephony-db",
              "file": "services/telephony-service/prisma/schema.prisma",
              "line": 235,
              "idPrefix": null,
              "doc": null,
              "fieldCount": 8,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "callId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "call",
                  "type": "Call",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "twilioRecordingSid",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "mediaUrl",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Where the recording lives: the virtual-hosted S3 URL written by Twilio External S3\nStorage ({bucket}.s3.{region}.amazonaws.com/{key}); presigned for browser playback.",
                  "fk": false
                },
                {
                  "name": "durationSeconds",
                  "type": "Int",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "channels",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "core",
              "meaning": "A Twilio call recording archived to S3. Twilio captures the audio; the platform stores only the pointer and metadata.",
              "keyFields": [
                {
                  "name": "twilioRecordingSid",
                  "meaning": "Twilio's id for the recording"
                },
                {
                  "name": "mediaUrl",
                  "meaning": "presigned S3 URL for the audio file"
                },
                {
                  "name": "durationSeconds",
                  "meaning": "length of the recording"
                },
                {
                  "name": "channels",
                  "meaning": "channel count — dual-channel keeps caller and callee separable"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "RoutingDestination",
              "service": "telephony-service",
              "db": "telephony-db",
              "file": "services/telephony-service/prisma/schema.prisma",
              "line": 184,
              "idPrefix": null,
              "doc": "A human phone number to dial. Multiple rows per kind form a priority-ordered hunt group.",
              "fieldCount": 7,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firm",
                  "type": "TelephonyFirm",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "kind",
                  "type": "RoutingKind",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "e164",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "label",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "e.g. \"Reception\", \"Duty solicitor\"",
                  "fk": false
                },
                {
                  "name": "priority",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A human phone number to dial. Rows of the same kind form a priority-ordered hunt group; ESCALATION_HUMAN rows are where the AI transfers callers who need a person.",
              "keyFields": [
                {
                  "name": "kind",
                  "meaning": "IN_HOURS_HUMAN (reception hunt group) or ESCALATION_HUMAN (AI hand-off target)"
                },
                {
                  "name": "e164",
                  "meaning": "the number to dial"
                },
                {
                  "name": "priority",
                  "meaning": "dial order within the hunt group"
                }
              ],
              "references": [
                {
                  "field": "firmId",
                  "target": "people",
                  "meaning": "the firm whose humans these are"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "TelephonyFirm",
              "service": "telephony-service",
              "db": "telephony-db",
              "file": "services/telephony-service/prisma/schema.prisma",
              "line": 66,
              "idPrefix": null,
              "doc": "Keyed BY the platform firm id directly (\"firm_<nanoid>\", owned by identity-service).\nNo firm name or identity data is stored here — one writer per fact.",
              "fieldCount": 12,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "status",
                  "type": "TelephonyFirmStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "timezone",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "IANA timezone in which business hours and holidays are evaluated. No default —\nfirms exist in several markets, so provisioning must state it explicitly.",
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "voiceAgents",
                  "type": "VoiceAgent",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "phoneNumbers",
                  "type": "PhoneNumber",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "businessHours",
                  "type": "BusinessHoursInterval",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "holidays",
                  "type": "Holiday",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "voiceConfig",
                  "type": "VoiceConfig",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "routingDestinations",
                  "type": "RoutingDestination",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "calls",
                  "type": "Call",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "core",
              "meaning": "A firm enrolled in telephony. Its id IS the platform firm id (identity-service owns the firm; nothing identity-shaped is duplicated here) — the row adds only telephony facts like timezone.",
              "keyFields": [
                {
                  "name": "id",
                  "meaning": "the platform firm id itself (firm_<nanoid>), not a local key"
                },
                {
                  "name": "status",
                  "meaning": "ACTIVE or INACTIVE — whether telephony serves this firm"
                },
                {
                  "name": "timezone",
                  "meaning": "the firm's local timezone, used to evaluate business hours"
                }
              ],
              "references": [
                {
                  "field": "id",
                  "target": "people",
                  "meaning": "keyed directly by the identity-service firm id"
                }
              ],
              "lifecycle": "ACTIVE → INACTIVE",
              "grouped": []
            },
            {
              "name": "VoiceAgent",
              "service": "telephony-service",
              "db": "telephony-db",
              "file": "services/telephony-service/prisma/schema.prisma",
              "line": 87,
              "idPrefix": null,
              "doc": "A configured voice-AI agent. The agent itself (prompt, voice, model) lives with the\nprovider; we hold only the opaque reference. A firm configures 0..N agents and assigns\neach phone number to one.",
              "fieldCount": 9,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firm",
                  "type": "TelephonyFirm",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "provider",
                  "type": "VoiceProviderKind",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "providerAgentId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Opaque provider-side agent id (e.g. an ElevenLabs agent id).",
                  "fk": false
                },
                {
                  "name": "label",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "phoneNumbers",
                  "type": "PhoneNumber",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "providerAgentId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "A configured voice-AI agent. Prompt, voice, and model live with the provider (ElevenLabs); this row holds only the opaque reference. A firm configures several and assigns each number to one.",
              "keyFields": [
                {
                  "name": "provider",
                  "meaning": "which voice-AI provider runs the agent (ELEVENLABS)"
                },
                {
                  "name": "providerAgentId",
                  "meaning": "the provider's id for the agent — the only link to its config"
                },
                {
                  "name": "label",
                  "meaning": "what the firm calls this agent"
                }
              ],
              "references": [
                {
                  "field": "firmId",
                  "target": "people",
                  "meaning": "the firm that owns the agent"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "VoiceConfig",
              "service": "telephony-service",
              "db": "telephony-db",
              "file": "services/telephony-service/prisma/schema.prisma",
              "line": 164,
              "idPrefix": null,
              "doc": "Firm-level call-handling settings. The provider/agent reference lives on VoiceAgent\n(assigned per number), not here.",
              "fieldCount": 8,
              "fields": [
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firm",
                  "type": "TelephonyFirm",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "recordingNoticeText",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "locale",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "BCP-47 tag for spoken prompts (e.g. \"en-GB\", \"en-US\"). No default — firms exist in\nseveral markets, so provisioning must state it explicitly.",
                  "fk": false
                },
                {
                  "name": "fallbackToAiOnNoAnswer",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "In-hours: if the human <Dial> goes unanswered, fall back to the AI agent.",
                  "fk": false
                },
                {
                  "name": "machineDetectionEnabled",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "In-hours, single human number: screen the human leg with Answering Machine Detection\nso a voicemail pickup is sent to the AI instead of trapping the caller.",
                  "fk": false
                },
                {
                  "name": "dialTimeoutSeconds",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Seconds to ring the human before giving up (Twilio <Dial timeout>).",
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "Firm-level call-handling settings, one row per firm keyed by firmId. Agent and provider references live on VoiceAgent, not here.",
              "keyFields": [
                {
                  "name": "recordingNoticeText",
                  "meaning": "the recording notice read to callers before connection"
                },
                {
                  "name": "fallbackToAiOnNoAnswer",
                  "meaning": "whether an unanswered in-hours call falls through to the AI"
                },
                {
                  "name": "machineDetectionEnabled",
                  "meaning": "screen outbound human legs for answering machines (AMD)"
                },
                {
                  "name": "dialTimeoutSeconds",
                  "meaning": "how long to ring humans before giving up on a leg"
                }
              ],
              "references": [
                {
                  "field": "firmId",
                  "target": "people",
                  "meaning": "the firm these settings govern"
                }
              ],
              "lifecycle": null,
              "grouped": []
            }
          ]
        }
      ]
    },
    {
      "id": "post",
      "order": 7,
      "name": "Physical post",
      "services": [
        "mailroom-service"
      ],
      "databases": [
        "mailroom-db"
      ],
      "tagline": "Scanned paper mail from Therefore, AI-matched to the case it belongs to",
      "whatItIs": "Paper mail, digitised. Scanned letters arrive from the Therefore document-management system as PDFs, and an AI pipeline reads each one, pulls out names and references, and proposes which case it belongs to. A human then confirms the match, dismisses it, or picks the right case by hand. Items that cannot be placed are marked unidentifiable, and the enriched index data flows back into Therefore.",
      "howItConnects": "Mail enters through a Therefore webhook and, once matched, points at a matter. The matching itself borrows the AI domain's brain: the pipeline searches Lawrence's case-context summaries to find candidate cases. So far the flow is one-way; nothing downstream reacts to post events yet.",
      "lifecycle": "NEW → MATCHED / DISMISSED / UNIDENTIFIABLE",
      "flows": [
        {
          "id": "post-matching-flow",
          "title": "Scan to matched case",
          "mermaid": "flowchart LR\n  tf[Therefore scan webhook] --> mi[MailItem in S3]\n  mi --> ai[AI: pages to entities]\n  ai --> search[Search case summaries]\n  search --> prop[MailItemMatching POTENTIAL]\n  prop --> human{Human review}\n  human -->|confirm| matched[Item MATCHED]\n  human -->|dismiss| dis[DISMISSED]",
          "caption": "A scan arrives from Therefore, the AI extracts entities and proposes a case; a human confirms (siblings auto-dismissed) or dismisses."
        }
      ],
      "notes": [
        {
          "kind": "status",
          "body": "Functional but marginal; the equivalent v2 integration handles most real traffic today."
        }
      ],
      "events": {
        "publishes": [
          {
            "name": "mailroom/mail-item-matching.confirmed",
            "service": "mailroom-service",
            "live": "silent"
          },
          {
            "name": "mailroom/mail-item-matching.dismissed",
            "service": "mailroom-service",
            "live": "silent"
          },
          {
            "name": "mailroom/mail-item.created",
            "service": "mailroom-service",
            "live": "silent"
          }
        ],
        "consumes": [
          {
            "name": "mailroom/mail-item.created",
            "service": "mailroom-service",
            "live": "silent"
          },
          {
            "name": "mailroom/mail-item/matching.requested",
            "service": "mailroom-service",
            "live": "silent"
          },
          {
            "name": "webhook/therefore/item.added",
            "service": "mailroom-service",
            "live": "silent"
          }
        ]
      },
      "servicesDetail": [
        {
          "name": "mailroom-service",
          "group": "services",
          "db": "mailroom-db",
          "enums": [
            {
              "name": "MailItemMatchingStatus",
              "file": "services/mailroom-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "POTENTIAL",
                  "doc": null
                },
                {
                  "name": "CONFIRMED",
                  "doc": null
                },
                {
                  "name": "UNSUCCESSFUL",
                  "doc": null
                },
                {
                  "name": "DISMISSED",
                  "doc": null
                }
              ]
            },
            {
              "name": "MailItemStatus",
              "file": "services/mailroom-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "NEW",
                  "doc": null
                },
                {
                  "name": "DISMISSED",
                  "doc": null
                },
                {
                  "name": "MATCHED",
                  "doc": null
                },
                {
                  "name": "UNIDENTIFIABLE",
                  "doc": null
                }
              ]
            }
          ],
          "models": [
            {
              "name": "MailItem",
              "service": "mailroom-service",
              "db": "mailroom-db",
              "file": "services/mailroom-service/prisma/schema.prisma",
              "line": 26,
              "idPrefix": "mlitm_",
              "doc": null,
              "fieldCount": 9,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "thereforeConnection",
                  "type": "ThereforeConnection",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "thereforeConnectionId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "thereforeDocumentNumber",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "s3Key",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "status",
                  "type": "MailItemStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matching",
                  "type": "MailItemMatching",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "core",
              "meaning": "One scanned mail document — a PDF pulled from Therefore into S3, waiting to be routed to its case. Moves NEW → MATCHED / DISMISSED / UNIDENTIFIABLE.",
              "keyFields": [
                {
                  "name": "status",
                  "meaning": "NEW, MATCHED, DISMISSED, or UNIDENTIFIABLE — where the item is in triage"
                },
                {
                  "name": "s3Key",
                  "meaning": "the scanned PDF in the mail-items bucket; null until the pull from Therefore lands"
                },
                {
                  "name": "thereforeDocumentNumber",
                  "meaning": "the document's number in the Therefore tenant it came from"
                },
                {
                  "name": "thereforeConnectionId",
                  "meaning": "which Therefore tenant connection sourced this scan"
                }
              ],
              "references": [],
              "lifecycle": "NEW → MATCHED / DISMISSED / UNIDENTIFIABLE",
              "grouped": []
            },
            {
              "name": "MailItemMatching",
              "service": "mailroom-service",
              "db": "mailroom-db",
              "file": "services/mailroom-service/prisma/schema.prisma",
              "line": 66,
              "idPrefix": "mlmat_",
              "doc": null,
              "fieldCount": 9,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "mailItem",
                  "type": "MailItem",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "mailItemId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "extractedEntities",
                  "type": "String",
                  "list": true,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "reasoning",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "caseId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "status",
                  "type": "MailItemMatchingStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "caseId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "One AI attempt to match a mail item to a case: the entities it extracted, its reasoning, and the candidate case. A human confirms it (item becomes MATCHED, sibling proposals dismissed) or dismisses it; matches can also be created manually.",
              "keyFields": [
                {
                  "name": "caseId",
                  "meaning": "the candidate matter (cas_) the AI proposed, or a human picked; null when unsuccessful"
                },
                {
                  "name": "extractedEntities",
                  "meaning": "names, references, and addresses the AI read off the scanned pages"
                },
                {
                  "name": "reasoning",
                  "meaning": "the AI's (or human's) explanation for the proposed match"
                },
                {
                  "name": "status",
                  "meaning": "POTENTIAL → CONFIRMED / DISMISSED; UNSUCCESSFUL when the AI found no case"
                }
              ],
              "references": [
                {
                  "field": "caseId",
                  "target": "matters",
                  "meaning": "the case this piece of post is (proposed to be) about"
                }
              ],
              "lifecycle": "POTENTIAL → CONFIRMED / DISMISSED (or UNSUCCESSFUL from the start)",
              "grouped": []
            },
            {
              "name": "MailroomEvent",
              "service": "mailroom-service",
              "db": "mailroom-db",
              "file": "services/mailroom-service/prisma/schema.prisma",
              "line": 86,
              "idPrefix": "mlevt_",
              "doc": null,
              "fieldCount": 6,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "key",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "payload",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "entityId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "entityId"
              ],
              "interpreted": true,
              "tier": "legacy",
              "meaning": "A generic event-log row (key, payload, entity id) with no reader or writer in the current service code — the real events go straight out via Inngest. Kept in the schema but dormant.",
              "keyFields": [
                {
                  "name": "key",
                  "meaning": "event name"
                },
                {
                  "name": "entityId",
                  "meaning": "the mail item or matching the event was about"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "ThereforeConnection",
              "service": "mailroom-service",
              "db": "mailroom-db",
              "file": "services/mailroom-service/prisma/schema.prisma",
              "line": 44,
              "idPrefix": "tfc_",
              "doc": null,
              "fieldCount": 8,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "tenantName",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "baseUrl",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "username",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "password",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "mailItems",
                  "type": "MailItem",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "Credentials for one Therefore tenant — the scan source. Stores the base URL and a KMS-encrypted username/password used to pull documents when the webhook fires.",
              "keyFields": [
                {
                  "name": "tenantName",
                  "meaning": "unique Therefore tenant name; the webhook payload uses it to find the right credentials"
                },
                {
                  "name": "baseUrl",
                  "meaning": "the tenant's Therefore API endpoint"
                },
                {
                  "name": "password",
                  "meaning": "KMS-encrypted API password for the tenant"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            }
          ]
        }
      ]
    },
    {
      "id": "sales",
      "order": 8,
      "name": "Sales funnel",
      "services": [
        "lead-api"
      ],
      "databases": [
        "lead-db"
      ],
      "tagline": "Everything before a matter exists: prospects, leads, and the path to a paid quote.",
      "whatItIs": "Everything that happens before a matter exists. A Prospect (someone in the funnel who is not a platform user yet) raises a Lead describing their legal problem, gets qualified over booked meetings and recorded sales calls, and either pays for a quote or is turned away. This domain is also the platform's front door: it serves the marketing site's public API and takes in partner-sourced leads from the likes of JustAnswer. Ops can create and qualify leads, book and reschedule meetings, record and disposition calls, and send quotes with checkout links.",
      "howItConnects": "Sales sits at the start of the marketplace journey and hands over to the deal: the quote a lead is offered actually lives in the deal domain, and sales drives it from the funnel side. Conversion is confirmed by money, not by sales. When the payment is reconciled, the lead is marked converted and a real person is created. Sales also hears about cancelled quotes and newly created matters, and takes in webhooks from SavvyCal bookings and call recordings.",
      "lifecycle": "Lead: INCOMPLETE → NEW → QUALIFYING → QUOTED → CONVERTED / TURNED_AWAY",
      "flows": [
        {
          "id": "lead-conversion",
          "title": "From prospect to converted lead",
          "mermaid": "flowchart TD\n  p[\"Prospect enters funnel\"] --> l[\"Lead created<br/>INCOMPLETE / NEW\"]\n  l --> q[\"Qualify: meetings + calls<br/>QUALIFYING\"]\n  q --> quote[\"Quote sent (work-service)<br/>QUOTED\"]\n  quote -->|reconciliation.created| c[\"Person created,<br/>lead CONVERTED\"]\n  quote -->|quote.cancelled| q\n  q --> ta[\"TURNED_AWAY<br/>(reason recorded)\"]",
          "caption": "Payment settling in the money domain is what converts a lead; a cancelled quote drops it back to qualifying."
        }
      ],
      "notes": [
        {
          "kind": "companion",
          "body": "lead-api is more than the sales database's home: it is the public-facing API for the marketing site and partner integrations (JustAnswer leads arrive here with source JUSTANSWER and an externalId)."
        },
        {
          "kind": "status",
          "body": "Turn-away reasons are free text on Lead.turnedAwayReason and CallDisposition.turnedAwayReason; the structured taxonomy is CallDisposition.clientIntent (NO_MONEY_PRO_BONO, TOO_EXPENSIVE, TYRE_KICKING, EVALUATING_OPTIONS, CALL_BACK_LATER, IMMEDIATE_PAYMENT)."
        }
      ],
      "events": {
        "publishes": [
          {
            "name": "lead-api/call.recordingUpdated",
            "service": "lead-api",
            "live": "silent"
          },
          {
            "name": "lead-api/call.transcriptUpdated",
            "service": "lead-api",
            "live": "silent"
          },
          {
            "name": "lead-api/lead.converted",
            "service": "lead-api",
            "live": "rare"
          },
          {
            "name": "lead-api/lead.event.captured",
            "service": "lead-api",
            "live": "rare"
          },
          {
            "name": "lead-api/lead.turned-away",
            "service": "lead-api",
            "live": "silent"
          },
          {
            "name": "lead-api/meeting.created",
            "service": "lead-api",
            "live": "rare"
          },
          {
            "name": "lead-api/meeting.rescheduled",
            "service": "lead-api",
            "live": "silent"
          }
        ],
        "consumes": [
          {
            "name": "lead-api/lead.event.captured",
            "service": "lead-api",
            "live": "rare"
          },
          {
            "name": "lead-api/lead.turned-away",
            "service": "lead-api",
            "live": "silent"
          },
          {
            "name": "lead-api/meeting.created",
            "service": "lead-api",
            "live": "rare"
          },
          {
            "name": "lead-api/meeting.rescheduled",
            "service": "lead-api",
            "live": "silent"
          },
          {
            "name": "payment-service/reconciliation.created",
            "service": "lead-api",
            "live": "rare"
          },
          {
            "name": "platform-api/matter.created",
            "service": "lead-api",
            "live": "rare"
          },
          {
            "name": "webhook/connect/incomingCall.received",
            "service": "lead-api",
            "live": "silent"
          },
          {
            "name": "webhook/s3/callRecordingsBucketObject.created",
            "service": "lead-api",
            "live": "silent"
          },
          {
            "name": "webhook/savvyCal/eventCancelled",
            "service": "lead-api",
            "live": "silent"
          },
          {
            "name": "webhook/savvyCal/eventRescheduled",
            "service": "lead-api",
            "live": "silent"
          },
          {
            "name": "webhook/savvyCal/workflowTriggered",
            "service": "lead-api",
            "live": "rare"
          },
          {
            "name": "work-service/quote.cancelled",
            "service": "lead-api",
            "live": "silent"
          }
        ]
      },
      "servicesDetail": [
        {
          "name": "lead-api",
          "group": "apis",
          "db": "lead-db",
          "enums": [
            {
              "name": "CallDirection",
              "file": "apis/lead-api/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "INBOUND",
                  "doc": null
                },
                {
                  "name": "OUTBOUND",
                  "doc": null
                }
              ]
            },
            {
              "name": "CallSource",
              "file": "apis/lead-api/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "CONNECT",
                  "doc": null
                }
              ]
            },
            {
              "name": "CheckoutLikelihood",
              "file": "apis/lead-api/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "YES",
                  "doc": null
                },
                {
                  "name": "MAYBE",
                  "doc": null
                },
                {
                  "name": "NO",
                  "doc": null
                }
              ]
            },
            {
              "name": "ClientIntent",
              "file": "apis/lead-api/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "NO_MONEY_PRO_BONO",
                  "doc": null
                },
                {
                  "name": "TOO_EXPENSIVE",
                  "doc": null
                },
                {
                  "name": "TYRE_KICKING",
                  "doc": null
                },
                {
                  "name": "EVALUATING_OPTIONS",
                  "doc": null
                },
                {
                  "name": "CALL_BACK_LATER",
                  "doc": null
                },
                {
                  "name": "IMMEDIATE_PAYMENT",
                  "doc": null
                }
              ]
            },
            {
              "name": "LeadSource",
              "file": "apis/lead-api/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "JUSTANSWER",
                  "doc": null
                }
              ]
            },
            {
              "name": "LeadStatus",
              "file": "apis/lead-api/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "INCOMPLETE",
                  "doc": null
                },
                {
                  "name": "NEW",
                  "doc": null
                },
                {
                  "name": "QUALIFYING",
                  "doc": null
                },
                {
                  "name": "QUOTED",
                  "doc": null
                },
                {
                  "name": "CONVERTED",
                  "doc": null
                },
                {
                  "name": "TURNED_AWAY",
                  "doc": null
                }
              ]
            },
            {
              "name": "Market",
              "file": "apis/lead-api/prisma/shared-models/market.prisma",
              "doc": null,
              "values": [
                {
                  "name": "US",
                  "doc": null
                },
                {
                  "name": "GB",
                  "doc": null
                }
              ]
            },
            {
              "name": "MeetingStatus",
              "file": "apis/lead-api/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "PENDING",
                  "doc": null
                },
                {
                  "name": "CANCELLED",
                  "doc": null
                },
                {
                  "name": "COMPLETED",
                  "doc": null
                }
              ]
            },
            {
              "name": "MeetingType",
              "file": "apis/lead-api/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "CALLBACK",
                  "doc": null
                },
                {
                  "name": "MEETING",
                  "doc": null
                },
                {
                  "name": "SAVVYCAL",
                  "doc": null
                }
              ]
            }
          ],
          "models": [
            {
              "name": "Call",
              "service": "lead-api",
              "db": "lead-db",
              "file": "apis/lead-api/prisma/schema.prisma",
              "line": 156,
              "idPrefix": "call_",
              "doc": null,
              "fieldCount": 18,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "systemNumber",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "leadId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "customerNumber",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "recordingS3Key",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "transcriptionS3Key",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "duration",
                  "type": "Int",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "lasPersonId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "direction",
                  "type": "CallDirection",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "source",
                  "type": "CallSource",
                  "list": false,
                  "optional": true,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "externalId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "lead",
                  "type": "Lead",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "meetingId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "meeting",
                  "type": "Meeting",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "unassociatedCallDismissal",
                  "type": "UnassociatedCallDismissal",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "disposition",
                  "type": "CallDisposition",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "lasPersonId",
                "externalId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "A sales phone call with a lead over Amazon Connect, inbound or outbound, with its recording and transcription landed from S3. Distinct from the voice domain's client-facing telephony — these are funnel calls.",
              "keyFields": [
                {
                  "name": "direction",
                  "meaning": "INBOUND or OUTBOUND"
                },
                {
                  "name": "customerNumber",
                  "meaning": "The prospect's phone number on the call"
                },
                {
                  "name": "recordingS3Key",
                  "meaning": "Where the call recording lives in S3"
                },
                {
                  "name": "transcriptionS3Key",
                  "meaning": "Where the transcript lives; publishing it feeds downstream listeners"
                },
                {
                  "name": "externalId",
                  "meaning": "The Amazon Connect contact id, matched when Connect webhooks arrive"
                }
              ],
              "references": [
                {
                  "field": "lasPersonId",
                  "target": "people",
                  "meaning": "the sales agent on the call"
                }
              ],
              "lifecycle": null,
              "grouped": [
                "CallDisposition",
                "UnassociatedCallDismissal"
              ]
            },
            {
              "name": "CallDisposition",
              "service": "lead-api",
              "db": "lead-db",
              "file": "apis/lead-api/prisma/schema.prisma",
              "line": 191,
              "idPrefix": "disp_",
              "doc": null,
              "fieldCount": 14,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "callId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "pickedUp",
                  "type": "Boolean",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "null for inbound calls",
                  "fk": false
                },
                {
                  "name": "callNotes",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "turnedAway",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "turnedAwayReason",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "clientIntent",
                  "type": "ClientIntent",
                  "list": false,
                  "optional": true,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "likelyToCheckout",
                  "type": "CheckoutLikelihood",
                  "list": false,
                  "optional": true,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "expectingFreeConsultation",
                  "type": "Boolean",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "whether lead was expecting a free consultation",
                  "fk": false
                },
                {
                  "name": "completedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "completedBy",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "lasPersonId who completed disposition",
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "call",
                  "type": "Call",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "core",
              "meaning": "The agent's post-call outcome for one call: whether it was picked up, notes, whether the lead was turned away and why, and the structured read on intent (ClientIntent) and checkout likelihood.",
              "keyFields": [
                {
                  "name": "clientIntent",
                  "meaning": "Structured intent taxonomy: NO_MONEY_PRO_BONO, TOO_EXPENSIVE, TYRE_KICKING, EVALUATING_OPTIONS, CALL_BACK_LATER, IMMEDIATE_PAYMENT"
                },
                {
                  "name": "likelyToCheckout",
                  "meaning": "Agent's judgement: YES, MAYBE, or NO"
                },
                {
                  "name": "turnedAway",
                  "meaning": "Whether this call ended with the lead being turned away; a reason is then required"
                },
                {
                  "name": "turnedAwayReason",
                  "meaning": "Free-text turn-away reason, mirrored onto the lead"
                }
              ],
              "references": [
                {
                  "field": "completedBy",
                  "target": "people",
                  "meaning": "the agent (lasPersonId) who filed the disposition"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Funnel",
              "service": "lead-api",
              "db": "lead-db",
              "file": "apis/lead-api/prisma/schema.prisma",
              "line": 88,
              "idPrefix": "funn_",
              "doc": null,
              "fieldCount": 6,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "name",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "prospects",
                  "type": "Prospect",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "leads",
                  "type": "Lead",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A named acquisition funnel grouping the prospects and leads it produced, so conversion can be compared per channel.",
              "keyFields": [
                {
                  "name": "name",
                  "meaning": "Human label for the acquisition channel"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Lead",
              "service": "lead-api",
              "db": "lead-db",
              "file": "apis/lead-api/prisma/schema.prisma",
              "line": 41,
              "idPrefix": "lead_",
              "doc": null,
              "fieldCount": 24,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "presentationId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "originatingProspectId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "completingProspectId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "funnelId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "productId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "jurisdictionId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "quoteId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "timezone",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "locale",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "leadStatus",
                  "type": "LeadStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "problemDescription",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "turnedAwayReason",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "market",
                  "type": "Market",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": "TODO: Remove default once we change the logic to set the market for all leads",
                  "fk": false
                },
                {
                  "name": "source",
                  "type": "LeadSource",
                  "list": false,
                  "optional": true,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "externalId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "trackingData",
                  "type": "TrackingData",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "meetings",
                  "type": "Meeting",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "calls",
                  "type": "Call",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "funnel",
                  "type": "Funnel",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "originatingProspect",
                  "type": "Prospect",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "completingProspect",
                  "type": "Prospect",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                }
              ],
              "externalRefs": [
                "presentationId",
                "productId",
                "jurisdictionId",
                "quoteId",
                "externalId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "A potential engagement: one legal problem from one prospect, in a market and jurisdiction, moving through the funnel toward a paid quote. Carries the status that defines the whole domain's lifecycle, plus the turn-away reason when it ends there.",
              "keyFields": [
                {
                  "name": "leadStatus",
                  "meaning": "Where the lead sits in the funnel: INCOMPLETE, NEW, QUALIFYING, QUOTED, CONVERTED, or TURNED_AWAY"
                },
                {
                  "name": "problemDescription",
                  "meaning": "The prospect's legal problem in their own words"
                },
                {
                  "name": "market",
                  "meaning": "US or GB — which side of the business the lead belongs to"
                },
                {
                  "name": "source",
                  "meaning": "Partner origin when not organic; currently only JUSTANSWER"
                },
                {
                  "name": "turnedAwayReason",
                  "meaning": "Free-text reason recorded when the lead is rejected"
                },
                {
                  "name": "presentationId",
                  "meaning": "Public-safe UUID used to expose the lead to the marketing site without leaking the internal id"
                }
              ],
              "references": [
                {
                  "field": "quoteId",
                  "target": "deal",
                  "meaning": "the work-service quote raised for this lead"
                },
                {
                  "field": "productId",
                  "target": "deal",
                  "meaning": "the legal product being sold (CMS-backed catalog)"
                },
                {
                  "field": "jurisdictionId",
                  "target": "deal",
                  "meaning": "the jurisdiction the work falls under"
                }
              ],
              "lifecycle": "INCOMPLETE → NEW → QUALIFYING → QUOTED → CONVERTED / TURNED_AWAY",
              "grouped": []
            },
            {
              "name": "Meeting",
              "service": "lead-api",
              "db": "lead-db",
              "file": "apis/lead-api/prisma/schema.prisma",
              "line": 113,
              "idPrefix": "meet_",
              "doc": null,
              "fieldCount": 14,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "leadId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "meetingType",
                  "type": "MeetingType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "meetingStatus",
                  "type": "MeetingStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "startAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "endAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "lasPersonId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "externalMeetingId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "externalMeetingUrl",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "closeTaskId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "lead",
                  "type": "Lead",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "calls",
                  "type": "Call",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "lasPersonId",
                "externalMeetingId",
                "closeTaskId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "A booked consultation or callback with a lead: a SavvyCal-scheduled meeting, a plain meeting, or a call slot. Rescheduling and cancellation flow in from SavvyCal webhooks.",
              "keyFields": [
                {
                  "name": "meetingType",
                  "meaning": "CALLBACK, MEETING, or SAVVYCAL — how it was booked"
                },
                {
                  "name": "meetingStatus",
                  "meaning": "PENDING → COMPLETED or CANCELLED"
                },
                {
                  "name": "startAt",
                  "meaning": "When the consultation is scheduled to happen"
                },
                {
                  "name": "externalMeetingId",
                  "meaning": "The SavvyCal event this meeting mirrors"
                },
                {
                  "name": "closeTaskId",
                  "meaning": "The Close CRM task tracking the follow-up"
                }
              ],
              "references": [
                {
                  "field": "lasPersonId",
                  "target": "people",
                  "meaning": "the legal-advice-specialist taking the meeting"
                }
              ],
              "lifecycle": "PENDING → COMPLETED / CANCELLED",
              "grouped": []
            },
            {
              "name": "Prospect",
              "service": "lead-api",
              "db": "lead-db",
              "file": "apis/lead-api/prisma/schema.prisma",
              "line": 72,
              "idPrefix": "pros_",
              "doc": null,
              "fieldCount": 11,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firstName",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "lastName",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "email",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "phone",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "funnelId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "originatedLeads",
                  "type": "Lead",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "leads",
                  "type": "Lead",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "funnel",
                  "type": "Funnel",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "core",
              "meaning": "A person in the funnel — name, email, phone — who may not be a platform user yet. Linked to leads twice: as the originator who raised one and as the completer who finished it; a person record is only created in the people domain on conversion.",
              "keyFields": [
                {
                  "name": "email",
                  "meaning": "Primary contact and dedupe handle before a platform identity exists"
                },
                {
                  "name": "phone",
                  "meaning": "Used to match inbound sales calls to the funnel"
                },
                {
                  "name": "funnelId",
                  "meaning": "Which acquisition funnel this prospect came through"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "TrackingData",
              "service": "lead-api",
              "db": "lead-db",
              "file": "apis/lead-api/prisma/schema.prisma",
              "line": 98,
              "idPrefix": "trac_",
              "doc": null,
              "fieldCount": 5,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "posthogSessionId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "initialData",
                  "type": "Json",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "leadId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "lead",
                  "type": "Lead",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                }
              ],
              "externalRefs": [
                "posthogSessionId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "Attribution and analytics context captured with a lead — the PostHog session and the raw landing payload — so marketing can trace where conversions came from.",
              "keyFields": [
                {
                  "name": "posthogSessionId",
                  "meaning": "Ties the lead to its PostHog analytics session"
                },
                {
                  "name": "initialData",
                  "meaning": "Raw JSON captured at lead creation (UTM params and the like)"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "UnassociatedCallDismissal",
              "service": "lead-api",
              "db": "lead-db",
              "file": "apis/lead-api/prisma/schema.prisma",
              "line": 180,
              "idPrefix": null,
              "doc": null,
              "fieldCount": 6,
              "fields": [
                {
                  "name": "callId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "call",
                  "type": "Call",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "dismissedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "dismissedByPersonId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "dismissedByPersonId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A marker that an ops person reviewed a call with no Connect externalId and dismissed it from the triage queue, so it stops resurfacing.",
              "keyFields": [
                {
                  "name": "dismissedAt",
                  "meaning": "When the call was cleared from the unassociated-calls queue"
                }
              ],
              "references": [
                {
                  "field": "dismissedByPersonId",
                  "target": "people",
                  "meaning": "who dismissed it"
                }
              ],
              "lifecycle": null,
              "grouped": []
            }
          ]
        }
      ]
    },
    {
      "id": "deal",
      "order": 9,
      "name": "The deal: quotes, fee agreements, assignment",
      "services": [
        "work-service",
        "assignment-service"
      ],
      "databases": [
        "work-db",
        "assignment-db"
      ],
      "tagline": "The commercial agreement: what work, on what terms, for how much, and which lawyer",
      "whatItIs": "The commercial agreement behind every matter: what work will be done, on what terms, for how much, and by which lawyer. One half holds the agreement itself, a Quote made of fee agreements (one per legal product) with their scopes, payables, client bills, and Lawhive's commission. The other half holds who serves it: the assignment of each fee agreement to a firm and lawyer, gated by eligibility rules and priced by the firm's fee plan. Quotes are drafted, sent, signed, and completed here, and assignments are offered, accepted, and reassigned.",
      "howItConnects": "The deal is the bridge between sales and the case. A quote points back at the lead it came from and, once accepted, forward at the matter it created. When the client actually pays, the money domain's reconciliation event flips everything at once: the bill is paid, the fee agreements start, the quote completes. And when the matter is created, the deal records where its work now lives.",
      "lifecycle": "Quote: DRAFT → PENDING → ACTIVE → COMPLETED / CANCELLED",
      "flows": [
        {
          "id": "quote-to-work",
          "title": "From quote to work in progress",
          "mermaid": "flowchart LR\n  A[Quote DRAFT] --> B[sent to client]\n  B --> C[client pays checkout]\n  C --> D[reconciliation.created]\n  D --> E[Bill PAID]\n  D --> F[FeeAgreements IN_PROGRESS]\n  D --> G[Quote COMPLETED]\n  H[matter.created] --> I[matterId stamped on quote]\n  H --> J[Assignments ACCEPTED]",
          "caption": "Payment, not signature, is the pivot: payment-service's reconciliation.created pays the bill, starts the fee agreements, and completes the quote; matter.created then wires everything to the new matter and accepts the assignments."
        }
      ],
      "notes": [
        {
          "kind": "duplication",
          "body": "work-service's Invoice/InvoiceItem are the older copy of firm invoicing, superseded by transaction-service's invoices in the money domain — newPaymentsServiceInvoiceId records the handover."
        },
        {
          "kind": "status",
          "body": "The product catalog (legal products, categories, jurisdictions) is CMS content with no database — legalProductId and jurisdictionId fields here point at CMS entries, not tables."
        }
      ],
      "events": {
        "publishes": [
          {
            "name": "work-service/quote.cancelled",
            "service": "work-service",
            "live": "silent"
          }
        ],
        "consumes": [
          {
            "name": "backfillAgreementSignatureFirmId",
            "service": "work-service",
            "live": "silent"
          },
          {
            "name": "payment-service/reconciliation.created",
            "service": "work-service",
            "live": "rare"
          },
          {
            "name": "platform-api/matter.created",
            "service": "assignment-service",
            "live": "rare"
          },
          {
            "name": "platform-api/matter.created",
            "service": "work-service",
            "live": "rare"
          }
        ]
      },
      "servicesDetail": [
        {
          "name": "work-service",
          "group": "services",
          "db": "work-db",
          "enums": [
            {
              "name": "AgreementSignatureType",
              "file": "services/work-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "LSA",
                  "doc": null
                }
              ]
            },
            {
              "name": "BillStatus",
              "file": "services/work-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "DRAFT",
                  "doc": null
                },
                {
                  "name": "PENDING",
                  "doc": null
                },
                {
                  "name": "PAID",
                  "doc": null
                },
                {
                  "name": "CANCELLED",
                  "doc": null
                }
              ]
            },
            {
              "name": "EventType",
              "file": "services/work-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "aggregate",
                  "doc": null
                },
                {
                  "name": "ephemeral",
                  "doc": null
                }
              ]
            },
            {
              "name": "FeeAgreementStatus",
              "file": "services/work-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "PENDING",
                  "doc": null
                },
                {
                  "name": "IN_PROGRESS",
                  "doc": null
                },
                {
                  "name": "COMPLETED",
                  "doc": null
                },
                {
                  "name": "CANCELLED",
                  "doc": null
                },
                {
                  "name": "PROPOSED",
                  "doc": null
                }
              ]
            },
            {
              "name": "InvoiceStatus",
              "file": "services/work-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "DRAFT",
                  "doc": null
                },
                {
                  "name": "UNPAID",
                  "doc": null
                },
                {
                  "name": "PAID",
                  "doc": null
                },
                {
                  "name": "REJECTED",
                  "doc": null
                },
                {
                  "name": "CANCELLED",
                  "doc": null
                }
              ]
            },
            {
              "name": "LawhiveFeeSource",
              "file": "services/work-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "FIRM",
                  "doc": null
                },
                {
                  "name": "PRODUCT",
                  "doc": null
                },
                {
                  "name": "ADMIN_PERSON",
                  "doc": null
                }
              ]
            },
            {
              "name": "Market",
              "file": "services/work-service/prisma/shared-models/market.prisma",
              "doc": null,
              "values": [
                {
                  "name": "US",
                  "doc": null
                },
                {
                  "name": "GB",
                  "doc": null
                }
              ]
            },
            {
              "name": "PayableType",
              "file": "services/work-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "FEE",
                  "doc": null
                },
                {
                  "name": "DISBURSEMENT",
                  "doc": null
                }
              ]
            },
            {
              "name": "QuoteSource",
              "file": "services/work-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "MARKETPLACE",
                  "doc": null
                },
                {
                  "name": "FOLLOW_ON",
                  "doc": null
                }
              ]
            },
            {
              "name": "QuoteStatus",
              "file": "services/work-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "DRAFT",
                  "doc": null
                },
                {
                  "name": "PENDING",
                  "doc": null
                },
                {
                  "name": "ACTIVE",
                  "doc": null
                },
                {
                  "name": "COMPLETED",
                  "doc": null
                },
                {
                  "name": "CANCELLED",
                  "doc": null
                }
              ]
            },
            {
              "name": "ScopeType",
              "file": "services/work-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "INCLUSION",
                  "doc": null
                },
                {
                  "name": "EXCLUSION",
                  "doc": null
                }
              ]
            }
          ],
          "models": [
            {
              "name": "AgreementSignature",
              "service": "work-service",
              "db": "work-db",
              "file": "services/work-service/prisma/schema.prisma",
              "line": 257,
              "idPrefix": "agsg_",
              "doc": null,
              "fieldCount": 9,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "feeAgreementId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "feeAgreement",
                  "type": "FeeAgreement",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "type",
                  "type": "AgreementSignatureType",
                  "list": false,
                  "optional": true,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "signedByPersonId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "signedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "firmId",
                "signedByPersonId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "The signed Legal Services Agreement record for a fee agreement — created unsigned, then stamped with who signed and when. LSA is the only signature type so far.",
              "keyFields": [
                {
                  "name": "type",
                  "meaning": "Signature kind; only LSA exists"
                },
                {
                  "name": "signedByPersonId",
                  "meaning": "Who signed, once they have"
                },
                {
                  "name": "signedAt",
                  "meaning": "Null until signed"
                }
              ],
              "references": [
                {
                  "field": "signedByPersonId",
                  "target": "people",
                  "meaning": "the signatory"
                },
                {
                  "field": "feeAgreementId",
                  "target": "deal",
                  "meaning": "the agreement being signed"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Bill",
              "service": "work-service",
              "db": "work-db",
              "file": "services/work-service/prisma/schema.prisma",
              "line": 179,
              "idPrefix": "bill_",
              "doc": null,
              "fieldCount": 14,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "number",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "amount",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "currency",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "dueDate",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "status",
                  "type": "BillStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "description",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "transactionId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "metadata",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "[Metadata]",
                  "fk": false
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdByPersonId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "billItems",
                  "type": "BillItem",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "transactionId",
                "matterId",
                "createdByPersonId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "What the client pays upfront into client funds, itemised from payables. Marked PAID when the money domain's reconciliation.created matches its transactionId.",
              "keyFields": [
                {
                  "name": "status",
                  "meaning": "DRAFT → PENDING → PAID / CANCELLED; payment reconciliation drives PAID"
                },
                {
                  "name": "amount",
                  "meaning": "The total the client owes, in minor units"
                },
                {
                  "name": "transactionId",
                  "meaning": "The money-domain transaction that settles this bill"
                },
                {
                  "name": "billItems",
                  "meaning": "The lines, each tracing back to a payable"
                }
              ],
              "references": [
                {
                  "field": "transactionId",
                  "target": "money",
                  "meaning": "the transaction that pays this bill"
                },
                {
                  "field": "matterId",
                  "target": "matters",
                  "meaning": "the matter being billed"
                }
              ],
              "lifecycle": "DRAFT → PENDING → PAID / CANCELLED",
              "grouped": [
                "BillItem"
              ]
            },
            {
              "name": "BillItem",
              "service": "work-service",
              "db": "work-db",
              "file": "services/work-service/prisma/schema.prisma",
              "line": 199,
              "idPrefix": "bitm_",
              "doc": null,
              "fieldCount": 11,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "description",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "price",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "currency",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "billId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "payableId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "metadata",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "[Metadata]",
                  "fk": false
                },
                {
                  "name": "bill",
                  "type": "Bill",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "payable",
                  "type": "Payable",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "One line on a client bill, usually tracing back to a payable on the fee agreement.",
              "keyFields": [
                {
                  "name": "billId",
                  "meaning": "The bill this line sits on"
                },
                {
                  "name": "payableId",
                  "meaning": "The payable this line charges for, when not ad hoc"
                },
                {
                  "name": "price",
                  "meaning": "The line amount in minor units"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Event",
              "service": "work-service",
              "db": "work-db",
              "file": "services/work-service/prisma/schema.prisma",
              "line": 278,
              "idPrefix": "evt_",
              "doc": null,
              "fieldCount": 7,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "timestamp",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "type",
                  "type": "EventType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "key",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "aggregateId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "aggregateType",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "payload",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "aggregateId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "The framework event store: every aggregate or ephemeral event the service records, keyed by type and aggregate. Plumbing, not domain data.",
              "keyFields": [
                {
                  "name": "type",
                  "meaning": "aggregate (state-bearing) or ephemeral"
                },
                {
                  "name": "aggregateId",
                  "meaning": "Which row the event is about"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "FeeAgreement",
              "service": "work-service",
              "db": "work-db",
              "file": "services/work-service/prisma/schema.prisma",
              "line": 102,
              "idPrefix": "feeagr_",
              "doc": null,
              "fieldCount": 24,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "title",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "jurisdictionId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "originalLegalProductId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "feeAgreementStatus",
                  "type": "FeeAgreementStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "quoteId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "isCustom",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "lawhivePercent",
                  "type": "Float",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "lawhivePercentSource",
                  "type": "LawhiveFeeSource",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "lawhivePercentSourceId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "metadata",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "[Metadata]",
                  "fk": false
                },
                {
                  "name": "quote",
                  "type": "Quote",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "signatures",
                  "type": "AgreementSignature",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "scopes",
                  "type": "Scope",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "payables",
                  "type": "Payable",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "estimatedMinDays",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "estimatedMaxDays",
                  "type": "Int",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "startsAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "estimatedEarliestCompletedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "estimatedLatestCompletedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "completedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "jurisdictionId",
                "originalLegalProductId",
                "matterId",
                "lawhivePercentSourceId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "The engagement contract for one legal product inside a quote: scope, timeline, chargeable lines, and Lawhive's commission percentage. Moves to IN_PROGRESS when the client pays.",
              "keyFields": [
                {
                  "name": "feeAgreementStatus",
                  "meaning": "PROPOSED / PENDING → IN_PROGRESS (client paid) → COMPLETED / CANCELLED"
                },
                {
                  "name": "lawhivePercent",
                  "meaning": "Lawhive's commission on this agreement"
                },
                {
                  "name": "lawhivePercentSource",
                  "meaning": "Where the percentage came from: FIRM fee plan, PRODUCT default, or ADMIN_PERSON override"
                },
                {
                  "name": "quoteId",
                  "meaning": "The quote this agreement belongs to"
                },
                {
                  "name": "scopes",
                  "meaning": "Inclusion/exclusion lines defining what the work covers"
                },
                {
                  "name": "payables",
                  "meaning": "The chargeable lines (fees and disbursements) under this agreement"
                },
                {
                  "name": "estimatedMinDays",
                  "meaning": "With estimatedMaxDays, the promised delivery window"
                }
              ],
              "references": [
                {
                  "field": "matterId",
                  "target": "matters",
                  "meaning": "the matter this agreement is delivered under"
                }
              ],
              "lifecycle": "PROPOSED / PENDING → IN_PROGRESS → COMPLETED / CANCELLED",
              "grouped": [
                "Scope",
                "AgreementSignature"
              ]
            },
            {
              "name": "Invoice",
              "service": "work-service",
              "db": "work-db",
              "file": "services/work-service/prisma/schema.prisma",
              "line": 216,
              "idPrefix": "invc_",
              "doc": null,
              "fieldCount": 17,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "humanReadableInvoiceId",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "amount",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "currency",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "dueDate",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "status",
                  "type": "InvoiceStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "description",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "transactionId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "newPaymentsServiceInvoiceId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "metadata",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "[Metadata]",
                  "fk": false
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "taxPercent",
                  "type": "Float",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "lawhivePercent",
                  "type": "Float",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "invoiceItems",
                  "type": "InvoiceItem",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "transactionId",
                "newPaymentsServiceInvoiceId",
                "matterId",
                "firmId"
              ],
              "interpreted": true,
              "tier": "legacy",
              "meaning": "The older firm-side fee invoice, itemised from payables — superseded by transaction-service's invoices in the money domain. newPaymentsServiceInvoiceId records where each one moved.",
              "keyFields": [
                {
                  "name": "status",
                  "meaning": "DRAFT → UNPAID → PAID / REJECTED / CANCELLED"
                },
                {
                  "name": "newPaymentsServiceInvoiceId",
                  "meaning": "The transaction-service invoice that replaced this one"
                },
                {
                  "name": "lawhivePercent",
                  "meaning": "Lawhive's cut applied to this invoice"
                },
                {
                  "name": "firmId",
                  "meaning": "The firm being invoiced"
                }
              ],
              "references": [
                {
                  "field": "newPaymentsServiceInvoiceId",
                  "target": "money",
                  "meaning": "its successor in transaction-service"
                },
                {
                  "field": "matterId",
                  "target": "matters",
                  "meaning": "the matter the fees relate to"
                },
                {
                  "field": "firmId",
                  "target": "people",
                  "meaning": "the firm side of the invoice"
                }
              ],
              "lifecycle": "DRAFT → UNPAID → PAID / REJECTED / CANCELLED",
              "grouped": [
                "InvoiceItem"
              ]
            },
            {
              "name": "InvoiceItem",
              "service": "work-service",
              "db": "work-db",
              "file": "services/work-service/prisma/schema.prisma",
              "line": 240,
              "idPrefix": "invt_",
              "doc": null,
              "fieldCount": 11,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "description",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "price",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "currency",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "invoiceId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "payableId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "metadata",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "[Metadata]",
                  "fk": false
                },
                {
                  "name": "invoice",
                  "type": "Invoice",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "payable",
                  "type": "Payable",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "legacy",
              "meaning": "One line on a legacy firm invoice, tracing back to a payable. Superseded along with its parent.",
              "keyFields": [
                {
                  "name": "invoiceId",
                  "meaning": "The legacy invoice this line sits on"
                },
                {
                  "name": "payableId",
                  "meaning": "The payable this line charges for"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Payable",
              "service": "work-service",
              "db": "work-db",
              "file": "services/work-service/prisma/schema.prisma",
              "line": 154,
              "idPrefix": "pbl_",
              "doc": null,
              "fieldCount": 16,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "description",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "preTaxAmount",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "price",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "TODO(UST-1186): Remove this",
                  "fk": false
                },
                {
                  "name": "taxAmount",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "taxTotal",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "TODO(UST-1186): Remove this",
                  "fk": false
                },
                {
                  "name": "currency",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "feeAgreementId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "metadata",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "[Metadata]",
                  "fk": false
                },
                {
                  "name": "type",
                  "type": "PayableType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "taxesMetadata",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "[TaxesMetadata]",
                  "fk": false
                },
                {
                  "name": "feeAgreement",
                  "type": "FeeAgreement",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "billItem",
                  "type": "BillItem",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "invoiceItem",
                  "type": "InvoiceItem",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "core",
              "meaning": "One chargeable line under a fee agreement: a FEE for the work or a pass-through DISBURSEMENT, with tax broken out. Payables are what bill and invoice items point back to.",
              "keyFields": [
                {
                  "name": "type",
                  "meaning": "FEE (the work itself) or DISBURSEMENT (a pass-through cost)"
                },
                {
                  "name": "price",
                  "meaning": "The line total in minor units; preTaxAmount and taxAmount break it down"
                },
                {
                  "name": "feeAgreementId",
                  "meaning": "The agreement this line is charged under"
                },
                {
                  "name": "billItem",
                  "meaning": "The client-bill line this payable became, if billed"
                }
              ],
              "references": [
                {
                  "field": "feeAgreementId",
                  "target": "deal",
                  "meaning": "the parent fee agreement"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Quote",
              "service": "work-service",
              "db": "work-db",
              "file": "services/work-service/prisma/schema.prisma",
              "line": 68,
              "idPrefix": "quot_",
              "doc": null,
              "fieldCount": 19,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "reference",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "title",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "description",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "quoteStatus",
                  "type": "QuoteStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "market",
                  "type": "Market",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": "TODO: Remove default once we change the logic to set the market for all quotes",
                  "fk": false
                },
                {
                  "name": "metadata",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "[Metadata]",
                  "fk": false
                },
                {
                  "name": "jurisdictionId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "leadId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterHumanReadableId",
                  "type": "Int",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "source",
                  "type": "QuoteSource",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdByPersonId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedByPersonId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "feeAgreements",
                  "type": "FeeAgreement",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "sentAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "expiresAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "jurisdictionId",
                "leadId",
                "matterId",
                "createdByPersonId",
                "updatedByPersonId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "A priced proposal for legal work, sent to a client — the container for one or more fee agreements. COMPLETED means the client paid, not that the work is done.",
              "keyFields": [
                {
                  "name": "quoteStatus",
                  "meaning": "DRAFT → PENDING → ACTIVE → COMPLETED / CANCELLED; payment drives COMPLETED"
                },
                {
                  "name": "source",
                  "meaning": "MARKETPLACE (sent to a lead in the funnel) or FOLLOW_ON (raised against an existing matter for further work)"
                },
                {
                  "name": "leadId",
                  "meaning": "The sales lead this quote answers, for MARKETPLACE quotes"
                },
                {
                  "name": "matterId",
                  "meaning": "Stamped by matter.created once the matter exists"
                },
                {
                  "name": "feeAgreements",
                  "meaning": "The engagement contracts inside the quote, one per legal product"
                },
                {
                  "name": "market",
                  "meaning": "US or GB"
                },
                {
                  "name": "expiresAt",
                  "meaning": "When an unsent or unpaid quote lapses"
                }
              ],
              "references": [
                {
                  "field": "leadId",
                  "target": "sales",
                  "meaning": "the lead this quote was raised for"
                },
                {
                  "field": "matterId",
                  "target": "matters",
                  "meaning": "the matter born from this quote"
                },
                {
                  "field": "createdByPersonId",
                  "target": "people",
                  "meaning": "who drafted the quote"
                }
              ],
              "lifecycle": "DRAFT → PENDING → ACTIVE → COMPLETED / CANCELLED",
              "grouped": []
            },
            {
              "name": "Scope",
              "service": "work-service",
              "db": "work-db",
              "file": "services/work-service/prisma/schema.prisma",
              "line": 141,
              "idPrefix": "qscp_",
              "doc": null,
              "fieldCount": 9,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "feeAgreementId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "feeAgreement",
                  "type": "FeeAgreement",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "scopeType",
                  "type": "ScopeType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "title",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "externalId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "isCustom",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "externalId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "One scope line on a fee agreement: an INCLUSION or EXCLUSION saying what the work does or doesn't cover, either from the product catalog or custom-written.",
              "keyFields": [
                {
                  "name": "scopeType",
                  "meaning": "INCLUSION or EXCLUSION"
                },
                {
                  "name": "externalId",
                  "meaning": "The CMS catalog scope this line came from, when not custom"
                },
                {
                  "name": "isCustom",
                  "meaning": "True when written for this agreement rather than taken from the catalog"
                }
              ],
              "references": [
                {
                  "field": "feeAgreementId",
                  "target": "deal",
                  "meaning": "the fee agreement this line scopes"
                }
              ],
              "lifecycle": null,
              "grouped": []
            }
          ]
        },
        {
          "name": "assignment-service",
          "group": "services",
          "db": "assignment-db",
          "enums": [
            {
              "name": "AssignmentStatus",
              "file": "services/assignment-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "PENDING",
                  "doc": null
                },
                {
                  "name": "ACCEPTED",
                  "doc": null
                },
                {
                  "name": "REASSIGNED",
                  "doc": null
                },
                {
                  "name": "REJECTED",
                  "doc": null
                },
                {
                  "name": "CANCELLED",
                  "doc": null
                }
              ]
            },
            {
              "name": "EligilityStatus",
              "file": "services/assignment-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "AVAILABLE",
                  "doc": null
                },
                {
                  "name": "OUT_OF_OFFICE",
                  "doc": null
                },
                {
                  "name": "REVOKED",
                  "doc": null
                }
              ]
            },
            {
              "name": "EventType",
              "file": "services/assignment-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "aggregate",
                  "doc": null
                },
                {
                  "name": "ephemeral",
                  "doc": null
                }
              ]
            },
            {
              "name": "FeePlanStatus",
              "file": "services/assignment-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "ACTIVE",
                  "doc": null
                },
                {
                  "name": "INACTIVE",
                  "doc": null
                }
              ]
            }
          ],
          "models": [
            {
              "name": "Assignment",
              "service": "assignment-service",
              "db": "assignment-db",
              "file": "services/assignment-service/prisma/schema.prisma",
              "line": 39,
              "idPrefix": "asgn_",
              "doc": null,
              "fieldCount": 10,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "personId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "feeAgreementId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "assignmentStatus",
                  "type": "AssignmentStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdByPersonId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "acceptedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "firmId",
                "personId",
                "matterId",
                "feeAgreementId",
                "createdByPersonId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "A firm and lawyer assigned to deliver one fee agreement. Created PENDING at quote time; matter.created stamps the matterId and acceptedAt when the deal converts.",
              "keyFields": [
                {
                  "name": "assignmentStatus",
                  "meaning": "PENDING → ACCEPTED / REJECTED / REASSIGNED / CANCELLED"
                },
                {
                  "name": "feeAgreementId",
                  "meaning": "The fee agreement being served (in work-db, no FK)"
                },
                {
                  "name": "personId",
                  "meaning": "The lawyer doing the work"
                },
                {
                  "name": "firmId",
                  "meaning": "The firm the lawyer serves under"
                },
                {
                  "name": "acceptedAt",
                  "meaning": "Set when the assignment is accepted, currently on matter.created"
                }
              ],
              "references": [
                {
                  "field": "personId",
                  "target": "people",
                  "meaning": "the assigned lawyer"
                },
                {
                  "field": "firmId",
                  "target": "people",
                  "meaning": "the serving firm"
                },
                {
                  "field": "matterId",
                  "target": "matters",
                  "meaning": "the matter once it exists"
                },
                {
                  "field": "feeAgreementId",
                  "target": "deal",
                  "meaning": "the agreement in work-service being delivered"
                }
              ],
              "lifecycle": "PENDING → ACCEPTED / REJECTED / REASSIGNED / CANCELLED",
              "grouped": []
            },
            {
              "name": "Event",
              "service": "assignment-service",
              "db": "assignment-db",
              "file": "services/assignment-service/prisma/schema.prisma",
              "line": 89,
              "idPrefix": "evt_",
              "doc": null,
              "fieldCount": 7,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "timestamp",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "type",
                  "type": "EventType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "key",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "aggregateId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "aggregateType",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "payload",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "aggregateId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "The framework event store for assignment-service, same shape as work-service's. Plumbing, not domain data.",
              "keyFields": [
                {
                  "name": "type",
                  "meaning": "aggregate (state-bearing) or ephemeral"
                },
                {
                  "name": "aggregateId",
                  "meaning": "Which row the event is about"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "FeePlan",
              "service": "assignment-service",
              "db": "assignment-db",
              "file": "services/assignment-service/prisma/schema.prisma",
              "line": 69,
              "idPrefix": "fplan_",
              "doc": null,
              "fieldCount": 8,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "name",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "lawhivePercent",
                  "type": "Float",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "status",
                  "type": "FeePlanStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "endedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "firmId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A firm's standing commission agreement with Lawhive — the default lawhivePercent applied when a fee agreement sources its rate from the FIRM.",
              "keyFields": [
                {
                  "name": "lawhivePercent",
                  "meaning": "The firm's standing commission rate"
                },
                {
                  "name": "status",
                  "meaning": "ACTIVE or INACTIVE; one current plan per firm"
                },
                {
                  "name": "endedAt",
                  "meaning": "When a superseded plan stopped applying"
                }
              ],
              "references": [
                {
                  "field": "firmId",
                  "target": "people",
                  "meaning": "the firm the plan belongs to"
                }
              ],
              "lifecycle": "ACTIVE → INACTIVE",
              "grouped": []
            },
            {
              "name": "FirmEmployeeToProduct",
              "service": "assignment-service",
              "db": "assignment-db",
              "file": "services/assignment-service/prisma/schema.prisma",
              "line": 57,
              "idPrefix": "fetp_",
              "doc": null,
              "fieldCount": 8,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "personId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "legalProductId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "jurisdictionId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "eligiblityStatus",
                  "type": "EligilityStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "firmId",
                "personId",
                "legalProductId",
                "jurisdictionId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "Eligibility: whether a lawyer (or a whole firm, when personId is null) can take a given legal product in a given jurisdiction. Assignment checks read this before offering work.",
              "keyFields": [
                {
                  "name": "eligiblityStatus",
                  "meaning": "AVAILABLE, OUT_OF_OFFICE, or REVOKED (note the schema's spelling)"
                },
                {
                  "name": "legalProductId",
                  "meaning": "The CMS catalog product the eligibility covers"
                },
                {
                  "name": "jurisdictionId",
                  "meaning": "The CMS jurisdiction it applies in"
                },
                {
                  "name": "personId",
                  "meaning": "The lawyer; null means the row speaks for the firm"
                }
              ],
              "references": [
                {
                  "field": "firmId",
                  "target": "people",
                  "meaning": "the firm"
                },
                {
                  "field": "personId",
                  "target": "people",
                  "meaning": "the individual lawyer, when set"
                }
              ],
              "lifecycle": null,
              "grouped": []
            }
          ]
        }
      ]
    },
    {
      "id": "money",
      "order": 10,
      "name": "Money: payments, reconciliation, ledger",
      "services": [
        "transaction-service",
        "payment-service",
        "ledger-service"
      ],
      "databases": [
        "transaction-db",
        "payment-db",
        "ledger-db"
      ],
      "tagline": "What should be paid, what actually got paid, matching the two, and the books",
      "whatItIs": "Where actual money moves and gets accounted for, in three stages. First, intent: transaction intents, invoices, and the counterparties money should move between. Then, settlement: the payments that really happened (card via Stripe, bank transfer, refund) and the reconciliation records that match them to what was intended. Finally, the books: double-entry ledger accounts, journal transactions, and postings. Card payments are taken through Stripe checkout or MOTO, bank payments and refunds are recorded, and account balances can be queried straight off the ledger.",
      "howItConnects": "Money knows what everything else is paying for: intents and invoices point at the matter, at the quote and fee agreement behind it, and at the firm and person paying. Its reconciliation event is the biggest business moment on the platform. One payment landing sets four domains in motion: invoices are marked paid, the deal's bills settle and its fee agreements start, the ledger gets its postings, and the sales lead converts. Failed or cancelled card payments take a short cut: the Stripe webhook marks everything failed without ever reaching reconciliation.",
      "lifecycle": "intent DRAFT → PENDING → PAID; payment arrives → reconciled → fan-out",
      "flows": [
        {
          "id": "settlement-fanout",
          "title": "Settlement: from intent to the reconciliation fan-out",
          "mermaid": "flowchart TD\n  A[TransactionIntent + Invoice<br/>what should be paid] --> B[Payment arrives<br/>Stripe webhook or bank entry]\n  B --> C[Reconciliation created<br/>payment matched to intent]\n  C -->|reconciliation.created| F{{fan-out}}\n  F --> T1[intent + invoice PAID<br/>transaction-service]\n  F --> T2[bill PAID, quote COMPLETED,<br/>fee agreements IN_PROGRESS<br/>work-service]\n  F --> T3[ledger entry + postings<br/>platform-api into ledger-service]\n  F --> T4[lead converts<br/>lead-api]",
          "caption": "Creating a Reconciliation fires reconciliation.created, the platform's biggest business event, with four consumers. Failures take a different road: transaction-service consumes webhook/stripe/payment.failed and payment.canceled directly and marks the transaction, intent, and invoice FAILED or CANCELLED — no reconciliation is created."
        }
      ],
      "notes": [
        {
          "kind": "duplication",
          "body": "Stripe, bank, and counterparty models exist in both transaction-service and payment-service with different shapes: transaction-service is authoritative for intent, payment-service for settlement. Invoice also exists twice — work-service holds the older copy, transaction-service the newer payments-integrated one, bridged by work-service's newPaymentsServiceInvoiceId pointer."
        },
        {
          "kind": "status",
          "body": "The whole area is under active rework into a cohesive finance domain (cashiering + accounting). The shapes here are current state; the rework unifies the duplicated Stripe/bank/counterparty and invoice models."
        }
      ],
      "events": {
        "publishes": [
          {
            "name": "payment-service/bankPayment.created",
            "service": "payment-service",
            "live": "silent"
          },
          {
            "name": "payment-service/reconciliation.created",
            "service": "payment-service",
            "live": "rare"
          }
        ],
        "consumes": [
          {
            "name": "payment-service/bankPayment.created",
            "service": "payment-service",
            "live": "silent"
          },
          {
            "name": "payment-service/reconciliation.created",
            "service": "transaction-service",
            "live": "rare"
          },
          {
            "name": "webhook/stripe/payment.canceled",
            "service": "transaction-service",
            "live": "silent"
          },
          {
            "name": "webhook/stripe/payment.failed",
            "service": "transaction-service",
            "live": "silent"
          },
          {
            "name": "webhook/stripe/payment.succeeded",
            "service": "payment-service",
            "live": "rare"
          }
        ]
      },
      "servicesDetail": [
        {
          "name": "transaction-service",
          "group": "services",
          "db": "transaction-db",
          "enums": [
            {
              "name": "AccountType",
              "file": "services/transaction-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "STRIPE",
                  "doc": null
                },
                {
                  "name": "BANK_ACCOUNT",
                  "doc": null
                }
              ]
            },
            {
              "name": "BankAccountType",
              "file": "services/transaction-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "CHECKING",
                  "doc": null
                },
                {
                  "name": "SAVINGS",
                  "doc": null
                },
                {
                  "name": "BUSINESS_CHECKING",
                  "doc": null
                },
                {
                  "name": "BUSINESS_SAVINGS",
                  "doc": null
                }
              ]
            },
            {
              "name": "BankTransferType",
              "file": "services/transaction-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "ACH",
                  "doc": null
                },
                {
                  "name": "WIRE",
                  "doc": null
                }
              ]
            },
            {
              "name": "BillStatus",
              "file": "services/transaction-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "DRAFT",
                  "doc": null
                },
                {
                  "name": "PENDING",
                  "doc": null
                },
                {
                  "name": "PAID",
                  "doc": null
                },
                {
                  "name": "VOID",
                  "doc": null
                }
              ]
            },
            {
              "name": "CounterpartyOwnerType",
              "file": "services/transaction-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "PERSON",
                  "doc": null
                },
                {
                  "name": "PROSPECT",
                  "doc": null
                },
                {
                  "name": "FIRM",
                  "doc": null
                }
              ]
            },
            {
              "name": "Currency",
              "file": "services/transaction-service/prisma/shared-models/currency.prisma",
              "doc": null,
              "values": [
                {
                  "name": "GBP",
                  "doc": null
                },
                {
                  "name": "USD",
                  "doc": null
                },
                {
                  "name": "EUR",
                  "doc": null
                }
              ]
            },
            {
              "name": "EventType",
              "file": "services/transaction-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "aggregate",
                  "doc": null
                },
                {
                  "name": "ephemeral",
                  "doc": null
                }
              ]
            },
            {
              "name": "ExternalType",
              "file": "services/transaction-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "INTERNAL",
                  "doc": null
                },
                {
                  "name": "EXTERNAL",
                  "doc": null
                }
              ]
            },
            {
              "name": "FirmTransactionTypeCounterpartyStatus",
              "file": "services/transaction-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "ACTIVE",
                  "doc": null
                },
                {
                  "name": "INACTIVE",
                  "doc": null
                }
              ]
            },
            {
              "name": "InvoiceItemType",
              "file": "services/transaction-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "FEE",
                  "doc": null
                },
                {
                  "name": "DISBURSEMENT",
                  "doc": null
                }
              ]
            },
            {
              "name": "InvoiceType",
              "file": "services/transaction-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "BILL",
                  "doc": null
                },
                {
                  "name": "CLIENT_FUNDS",
                  "doc": null
                }
              ]
            },
            {
              "name": "Market",
              "file": "services/transaction-service/prisma/shared-models/market.prisma",
              "doc": null,
              "values": [
                {
                  "name": "US",
                  "doc": null
                },
                {
                  "name": "GB",
                  "doc": null
                }
              ]
            },
            {
              "name": "PaymentStatus",
              "file": "services/transaction-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "PENDING",
                  "doc": null
                },
                {
                  "name": "COMPLETED",
                  "doc": null
                },
                {
                  "name": "FAILED",
                  "doc": null
                },
                {
                  "name": "CANCELLED",
                  "doc": null
                }
              ]
            },
            {
              "name": "TransactionMethod",
              "file": "services/transaction-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "BANK_TRANSFER",
                  "doc": null
                },
                {
                  "name": "STRIPE_PAYMENT",
                  "doc": null
                }
              ]
            },
            {
              "name": "TransactionType",
              "file": "services/transaction-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "BILL",
                  "doc": null
                },
                {
                  "name": "INVOICE",
                  "doc": null
                },
                {
                  "name": "REFUND",
                  "doc": null
                }
              ]
            },
            {
              "name": "TransferStatus",
              "file": "services/transaction-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "DRAFT",
                  "doc": null
                },
                {
                  "name": "PENDING_APPROVAL",
                  "doc": null
                },
                {
                  "name": "PENDING",
                  "doc": null
                },
                {
                  "name": "PAID",
                  "doc": null
                },
                {
                  "name": "FAILED",
                  "doc": null
                },
                {
                  "name": "CANCELLED",
                  "doc": null
                },
                {
                  "name": "REJECTED",
                  "doc": null
                }
              ]
            }
          ],
          "models": [
            {
              "name": "BankAccount",
              "service": "transaction-service",
              "db": "transaction-db",
              "file": "services/transaction-service/prisma/schema.prisma",
              "line": 220,
              "idPrefix": "bacc_",
              "doc": null,
              "fieldCount": 15,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "accountNumber",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "sortCode",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "iban",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "bicswift",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "ncc",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "bankName",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "bankAddress",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "country",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "routingNumber",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "bankAccountType",
                  "type": "BankAccountType",
                  "list": false,
                  "optional": true,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "bankTransferType",
                  "type": "BankTransferType",
                  "list": false,
                  "optional": true,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "counterparty",
                  "type": "Counterparty",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Relations",
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "Bank details attached to a counterparty: UK sort code/account number or US routing/ACH-vs-wire, plus IBAN/BIC for the rest.",
              "keyFields": [
                {
                  "name": "accountNumber",
                  "meaning": "account number, when known"
                },
                {
                  "name": "sortCode",
                  "meaning": "UK sort code"
                },
                {
                  "name": "routingNumber",
                  "meaning": "US routing number"
                },
                {
                  "name": "bankTransferType",
                  "meaning": "ACH or WIRE for US transfers"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "BankTransfer",
              "service": "transaction-service",
              "db": "transaction-db",
              "file": "services/transaction-service/prisma/schema.prisma",
              "line": 144,
              "idPrefix": "bantr_",
              "doc": null,
              "fieldCount": 6,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "metadata",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "[Metadata]",
                  "fk": false
                },
                {
                  "name": "reference",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "transaction",
                  "type": "Transaction",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Relations",
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "The intent-side bank rail behind a Transaction: little more than the reference the payer should quote, so the incoming bank entry can be matched. Much thinner than payment-service's BankTransfer.",
              "keyFields": [
                {
                  "name": "reference",
                  "meaning": "the payment reference the payer quotes on the transfer"
                },
                {
                  "name": "metadata",
                  "meaning": "free-form rail detail"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Counterparty",
              "service": "transaction-service",
              "db": "transaction-db",
              "file": "services/transaction-service/prisma/schema.prisma",
              "line": 184,
              "idPrefix": "cpty_",
              "doc": null,
              "fieldCount": 25,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "counterPartyOwnerType",
                  "type": "CounterpartyOwnerType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "counterPartyOwnerId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firstName",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "lastName",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "email",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "accountType",
                  "type": "AccountType",
                  "list": false,
                  "optional": true,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "companyName",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "description",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "metadata",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "[Metadata]",
                  "fk": false
                },
                {
                  "name": "stripeCustomerId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "market",
                  "type": "Market",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "externalType",
                  "type": "ExternalType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "staticOwnerId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "staticOwner",
                  "type": "FirmTransactionTypeCounterparty",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "bankAccount",
                  "type": "BankAccount",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Relations",
                  "fk": true
                },
                {
                  "name": "bankAccountId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "sentTransactions",
                  "type": "Transaction",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "receivedTransactions",
                  "type": "Transaction",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "sentTransactionIntents",
                  "type": "TransactionIntent",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "receivedTransactionIntents",
                  "type": "TransactionIntent",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "sentInvoices",
                  "type": "Invoice",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "receivedInvoices",
                  "type": "Invoice",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "counterPartyOwnerId",
                "stripeCustomerId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "A party to a transfer on the intent side: a PERSON, PROSPECT, or FIRM, internal or external, with Stripe customer and/or bank details attached. Every intent, invoice, and transaction names two of these.",
              "keyFields": [
                {
                  "name": "counterPartyOwnerType",
                  "meaning": "PERSON, PROSPECT, or FIRM — what kind of party this wraps"
                },
                {
                  "name": "counterPartyOwnerId",
                  "meaning": "id of the person/prospect/firm this counterparty represents"
                },
                {
                  "name": "externalType",
                  "meaning": "INTERNAL (Lawhive-side) or EXTERNAL"
                },
                {
                  "name": "stripeCustomerId",
                  "meaning": "Stripe customer, when this party pays by card"
                },
                {
                  "name": "bankAccountId",
                  "meaning": "attached bank details, when this party pays by transfer"
                },
                {
                  "name": "market",
                  "meaning": "US or GB"
                }
              ],
              "references": [
                {
                  "field": "counterPartyOwnerId",
                  "target": "people",
                  "meaning": "the person or firm behind this party (a prospect points into sales)"
                }
              ],
              "lifecycle": null,
              "grouped": [
                "BankAccount",
                "FirmTransactionTypeCounterparty"
              ]
            },
            {
              "name": "Event",
              "service": "transaction-service",
              "db": "transaction-db",
              "file": "services/transaction-service/prisma/schema.prisma",
              "line": 375,
              "idPrefix": "evt_",
              "doc": null,
              "fieldCount": 7,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "timestamp",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "type",
                  "type": "EventType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "key",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "aggregateId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "aggregateType",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "payload",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "aggregateId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "The service's append-only event store row (framework convention): an aggregate or ephemeral event with key, aggregate pointer, and payload.",
              "keyFields": [
                {
                  "name": "key",
                  "meaning": "event name"
                },
                {
                  "name": "aggregateId",
                  "meaning": "the row this event belongs to"
                },
                {
                  "name": "payload",
                  "meaning": "the event body"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "FirmTransactionTypeCounterparty",
              "service": "transaction-service",
              "db": "transaction-db",
              "file": "services/transaction-service/prisma/schema.prisma",
              "line": 247,
              "idPrefix": "ftcpty_",
              "doc": null,
              "fieldCount": 8,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "status",
                  "type": "FirmTransactionTypeCounterpartyStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "transactionType",
                  "type": "TransactionType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "counterparty",
                  "type": "Counterparty",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmBankAccountId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "firmId",
                "firmBankAccountId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "The standing counterparty a firm uses for a given transaction type (BILL, INVOICE, REFUND), so 'the firm's invoice counterparty' resolves deterministically. ACTIVE or INACTIVE.",
              "keyFields": [
                {
                  "name": "firmId",
                  "meaning": "the firm this standing counterparty belongs to"
                },
                {
                  "name": "transactionType",
                  "meaning": "BILL, INVOICE, or REFUND"
                },
                {
                  "name": "status",
                  "meaning": "ACTIVE or INACTIVE — deactivation swaps the standing party"
                },
                {
                  "name": "firmBankAccountId",
                  "meaning": "the firm bank account (fba_*) money routes through"
                }
              ],
              "references": [
                {
                  "field": "firmId",
                  "target": "people",
                  "meaning": "owning firm"
                },
                {
                  "field": "firmBankAccountId",
                  "target": "people",
                  "meaning": "the firm's bank account in identity-service"
                }
              ],
              "lifecycle": "ACTIVE → INACTIVE",
              "grouped": []
            },
            {
              "name": "Invoice",
              "service": "transaction-service",
              "db": "transaction-db",
              "file": "services/transaction-service/prisma/schema.prisma",
              "line": 263,
              "idPrefix": "invc_",
              "doc": null,
              "fieldCount": 22,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "humanReadableInvoiceId",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "currency",
                  "type": "Currency",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "dueDate",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "status",
                  "type": "TransferStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "description",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "type",
                  "type": "InvoiceType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "rejectionReason",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "senderId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "receiverId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "lawhivePercent",
                  "type": "Float",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "quoteId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "feeAgreementId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "metadata",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Metadata",
                  "fk": false
                },
                {
                  "name": "sender",
                  "type": "Counterparty",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Relations",
                  "fk": true
                },
                {
                  "name": "receiver",
                  "type": "Counterparty",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "invoiceItems",
                  "type": "InvoiceItem",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "transactionIntents",
                  "type": "TransactionIntent",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "matterId",
                "quoteId",
                "feeAgreementId",
                "firmId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "The newer, payments-integrated invoice between counterparties: a BILL (lawyer billing) or CLIENT_FUNDS (client money in). This is the copy that actually gets marked PAID, superseding work-service's older Invoice.",
              "keyFields": [
                {
                  "name": "status",
                  "meaning": "TransferStatus: DRAFT → PENDING → PAID / FAILED / CANCELLED / REJECTED"
                },
                {
                  "name": "type",
                  "meaning": "BILL or CLIENT_FUNDS"
                },
                {
                  "name": "humanReadableInvoiceId",
                  "meaning": "the sequential number shown on the document"
                },
                {
                  "name": "lawhivePercent",
                  "meaning": "Lawhive's commission share of this invoice"
                },
                {
                  "name": "senderId",
                  "meaning": "issuing counterparty"
                },
                {
                  "name": "receiverId",
                  "meaning": "counterparty being billed"
                }
              ],
              "references": [
                {
                  "field": "matterId",
                  "target": "matters",
                  "meaning": "the matter being billed"
                },
                {
                  "field": "quoteId",
                  "target": "deal",
                  "meaning": "the quote this invoice bills against"
                },
                {
                  "field": "feeAgreementId",
                  "target": "deal",
                  "meaning": "the fee agreement behind a lawyer bill"
                },
                {
                  "field": "firmId",
                  "target": "people",
                  "meaning": "the firm on the invoice"
                }
              ],
              "lifecycle": "DRAFT → PENDING → PAID / FAILED / CANCELLED / REJECTED",
              "grouped": [
                "InvoiceItem"
              ]
            },
            {
              "name": "InvoiceItem",
              "service": "transaction-service",
              "db": "transaction-db",
              "file": "services/transaction-service/prisma/schema.prisma",
              "line": 297,
              "idPrefix": "invt_",
              "doc": null,
              "fieldCount": 12,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "description",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "preTaxAmount",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "taxAmount",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "currency",
                  "type": "Currency",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "type",
                  "type": "InvoiceItemType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "taxesMetadata",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "[TaxesMetadata]",
                  "fk": false
                },
                {
                  "name": "invoiceId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "payableId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "invoice",
                  "type": "Invoice",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Relations",
                  "fk": true
                }
              ],
              "externalRefs": [
                "payableId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "One line on an invoice: a FEE or DISBURSEMENT with pre-tax amount, tax, and a pointer to the deal payable it bills.",
              "keyFields": [
                {
                  "name": "preTaxAmount",
                  "meaning": "line amount before tax, minor units"
                },
                {
                  "name": "taxAmount",
                  "meaning": "tax on the line; breakdown in taxesMetadata"
                },
                {
                  "name": "type",
                  "meaning": "FEE or DISBURSEMENT"
                }
              ],
              "references": [
                {
                  "field": "payableId",
                  "target": "deal",
                  "meaning": "the fee-agreement payable this line bills"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "StripePayment",
              "service": "transaction-service",
              "db": "transaction-db",
              "file": "services/transaction-service/prisma/schema.prisma",
              "line": 125,
              "idPrefix": "strp_",
              "doc": null,
              "fieldCount": 12,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "stripePaymentIntentId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "stripeCheckoutSessionId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "stripeCheckoutSessionURL",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "paymentStatus",
                  "type": "PaymentStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "last4",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "receiptUrl",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "metadata",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "[Metadata]",
                  "fk": false
                },
                {
                  "name": "market",
                  "type": "Market",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "transaction",
                  "type": "Transaction",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Relations",
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "stripePaymentIntentId",
                "stripeCheckoutSessionId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "The intent-side Stripe detail behind a Transaction: checkout session and URL up front, then payment intent id, card last4, and receipt once reconciliation completes it. Distinct shape from payment-service's StripePayment.",
              "keyFields": [
                {
                  "name": "paymentStatus",
                  "meaning": "PENDING → COMPLETED / FAILED / CANCELLED, driven by webhooks and reconciliation"
                },
                {
                  "name": "stripePaymentIntentId",
                  "meaning": "Stripe's payment intent, once known"
                },
                {
                  "name": "stripeCheckoutSessionURL",
                  "meaning": "the checkout link handed to the client"
                },
                {
                  "name": "receiptUrl",
                  "meaning": "Stripe receipt, filled in on completion"
                }
              ],
              "references": [],
              "lifecycle": "PENDING → COMPLETED / FAILED / CANCELLED",
              "grouped": []
            },
            {
              "name": "StripeRefund",
              "service": "transaction-service",
              "db": "transaction-db",
              "file": "services/transaction-service/prisma/schema.prisma",
              "line": 157,
              "idPrefix": "strpre_",
              "doc": null,
              "fieldCount": 10,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "originalStripePaymentIntentId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "stripeRefundId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "paymentStatus",
                  "type": "PaymentStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "last4",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "receiptUrl",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "metadata",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "[Metadata]",
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "transaction",
                  "type": "Transaction",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Relations",
                  "fk": false
                }
              ],
              "externalRefs": [
                "originalStripePaymentIntentId",
                "stripeRefundId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "The intent-side Stripe detail behind a REFUND transaction: which original payment intent is being refunded and Stripe's refund id.",
              "keyFields": [
                {
                  "name": "originalStripePaymentIntentId",
                  "meaning": "the Stripe payment being refunded"
                },
                {
                  "name": "stripeRefundId",
                  "meaning": "Stripe's id for the refund"
                },
                {
                  "name": "paymentStatus",
                  "meaning": "PENDING → COMPLETED / FAILED / CANCELLED"
                }
              ],
              "references": [],
              "lifecycle": "PENDING → COMPLETED / FAILED / CANCELLED",
              "grouped": []
            },
            {
              "name": "Transaction",
              "service": "transaction-service",
              "db": "transaction-db",
              "file": "services/transaction-service/prisma/schema.prisma",
              "line": 89,
              "idPrefix": "tran_",
              "doc": null,
              "fieldCount": 26,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "transactionType",
                  "type": "TransactionType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "transactionStatus",
                  "type": "PaymentStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "transactionMethod",
                  "type": "TransactionMethod",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "amount",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "currency",
                  "type": "Currency",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "metadata",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "[Metadata]",
                  "fk": false
                },
                {
                  "name": "description",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "market",
                  "type": "Market",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "stripePaymentId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": "Relations",
                  "fk": false
                },
                {
                  "name": "stripePayment",
                  "type": "StripePayment",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "bankTransferId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "bankTransfer",
                  "type": "BankTransfer",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "senderId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "sender",
                  "type": "Counterparty",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "receiverId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "receiver",
                  "type": "Counterparty",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "stripeRefundId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "stripeRefund",
                  "type": "StripeRefund",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "originalTransactionId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Self-referential relations for refunds",
                  "fk": false
                },
                {
                  "name": "originalTransaction",
                  "type": "Transaction",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "refunds",
                  "type": "Transaction",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdById",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "completedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "createdById"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "The older unit of money movement on the intent side: a BILL, INVOICE, or REFUND between two counterparties over a Stripe or bank rail. Still live — reconciliation marks it COMPLETED — but TransactionIntent is the modern replacement.",
              "keyFields": [
                {
                  "name": "transactionStatus",
                  "meaning": "PENDING → COMPLETED / FAILED / CANCELLED"
                },
                {
                  "name": "transactionType",
                  "meaning": "BILL, INVOICE, or REFUND"
                },
                {
                  "name": "transactionMethod",
                  "meaning": "BANK_TRANSFER or STRIPE_PAYMENT — which rail satellite applies"
                },
                {
                  "name": "amount",
                  "meaning": "amount in minor units, with currency alongside"
                },
                {
                  "name": "senderId",
                  "meaning": "paying counterparty"
                },
                {
                  "name": "receiverId",
                  "meaning": "receiving counterparty"
                },
                {
                  "name": "originalTransactionId",
                  "meaning": "for REFUNDs, the transaction being refunded"
                }
              ],
              "references": [
                {
                  "field": "createdById",
                  "target": "people",
                  "meaning": "who created the transaction"
                }
              ],
              "lifecycle": "PENDING → COMPLETED / FAILED / CANCELLED",
              "grouped": [
                "StripePayment",
                "StripeRefund",
                "BankTransfer"
              ]
            },
            {
              "name": "TransactionIntent",
              "service": "transaction-service",
              "db": "transaction-db",
              "file": "services/transaction-service/prisma/schema.prisma",
              "line": 318,
              "idPrefix": "tran_",
              "doc": null,
              "fieldCount": 30,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "transactionStatus",
                  "type": "TransferStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "rejectionReason",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "amount",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "currency",
                  "type": "Currency",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "senderId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "receiverId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "description",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "market",
                  "type": "Market",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "invoiceId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "reference",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "originalTransactionIntentId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "reversesTransactionIntentId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "U7 — set on a reversing TI; points at the TI it reverses (audit-preserving\ncorrection, distinct from refund lineage above). Nullable + additive.",
                  "fk": false
                },
                {
                  "name": "createdByPersonId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "dueDate",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "sourceFirmBankAccountId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "destinationFirmBankAccountId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "metadata",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "[Metadata]",
                  "fk": false
                },
                {
                  "name": "completedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "sender",
                  "type": "Counterparty",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Relations",
                  "fk": true
                },
                {
                  "name": "receiver",
                  "type": "Counterparty",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "invoice",
                  "type": "Invoice",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "originalTransactionIntent",
                  "type": "TransactionIntent",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Self-referential relations for refunds",
                  "fk": true
                },
                {
                  "name": "refunds",
                  "type": "TransactionIntent",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "reversesTransactionIntent",
                  "type": "TransactionIntent",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Self-referential relations for reversals (U7)",
                  "fk": true
                },
                {
                  "name": "reversedBy",
                  "type": "TransactionIntent",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "matterId",
                "firmId",
                "createdByPersonId",
                "sourceFirmBankAccountId",
                "destinationFirmBankAccountId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "An intended, authorised transfer of money between two counterparties — the modern unit of 'this should be paid'. Carries refund lineage and audit-preserving reversal lineage as separate self-references.",
              "keyFields": [
                {
                  "name": "transactionStatus",
                  "meaning": "DRAFT → PENDING_APPROVAL → PENDING → PAID / FAILED / CANCELLED / REJECTED"
                },
                {
                  "name": "amount",
                  "meaning": "amount in minor units, with currency alongside"
                },
                {
                  "name": "senderId",
                  "meaning": "counterparty the money leaves"
                },
                {
                  "name": "receiverId",
                  "meaning": "counterparty the money reaches"
                },
                {
                  "name": "invoiceId",
                  "meaning": "the invoice this intent part-pays; invoice goes PAID once its intents cover the total"
                },
                {
                  "name": "originalTransactionIntentId",
                  "meaning": "refund lineage: the intent this one refunds"
                },
                {
                  "name": "reversesTransactionIntentId",
                  "meaning": "audit-preserving correction: the intent this one reverses, distinct from refunds"
                }
              ],
              "references": [
                {
                  "field": "matterId",
                  "target": "matters",
                  "meaning": "the matter this money relates to"
                },
                {
                  "field": "firmId",
                  "target": "people",
                  "meaning": "the firm involved in the transfer"
                },
                {
                  "field": "createdByPersonId",
                  "target": "people",
                  "meaning": "who raised the intent"
                },
                {
                  "field": "sourceFirmBankAccountId",
                  "target": "people",
                  "meaning": "firm bank account (fba_*) money leaves, for ledger routing"
                }
              ],
              "lifecycle": "DRAFT → PENDING_APPROVAL → PENDING → PAID / FAILED / CANCELLED / REJECTED",
              "grouped": []
            }
          ]
        },
        {
          "name": "payment-service",
          "group": "services",
          "db": "payment-db",
          "enums": [
            {
              "name": "Currency",
              "file": "services/payment-service/prisma/shared-models/currency.prisma",
              "doc": null,
              "values": [
                {
                  "name": "GBP",
                  "doc": null
                },
                {
                  "name": "USD",
                  "doc": null
                },
                {
                  "name": "EUR",
                  "doc": null
                }
              ]
            },
            {
              "name": "Direction",
              "file": "services/payment-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "IN",
                  "doc": null
                },
                {
                  "name": "OUT",
                  "doc": null
                },
                {
                  "name": "INTERNAL",
                  "doc": null
                }
              ]
            },
            {
              "name": "EventType",
              "file": "services/payment-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "aggregate",
                  "doc": null
                },
                {
                  "name": "ephemeral",
                  "doc": null
                }
              ]
            },
            {
              "name": "Market",
              "file": "services/payment-service/prisma/shared-models/market.prisma",
              "doc": null,
              "values": [
                {
                  "name": "US",
                  "doc": null
                },
                {
                  "name": "GB",
                  "doc": null
                }
              ]
            },
            {
              "name": "PaymentCounterpartyType",
              "file": "services/payment-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "BANK",
                  "doc": null
                },
                {
                  "name": "PAYMENT_PROCESSOR",
                  "doc": null
                }
              ]
            },
            {
              "name": "PaymentProcessorCounterpartyType",
              "file": "services/payment-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "STRIPE",
                  "doc": null
                }
              ]
            },
            {
              "name": "PaymentStatus",
              "file": "services/payment-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "CANCELLED",
                  "doc": null
                },
                {
                  "name": "PROCESSING",
                  "doc": null
                },
                {
                  "name": "SUCCEEDED",
                  "doc": null
                }
              ]
            },
            {
              "name": "PaymentType",
              "file": "services/payment-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "BANK_TRANSFER",
                  "doc": null
                },
                {
                  "name": "PAYMENT_PROCESSOR",
                  "doc": null
                },
                {
                  "name": "PAYMENT_PROCESSOR_REFUND",
                  "doc": null
                }
              ]
            },
            {
              "name": "RefundStatus",
              "file": "services/payment-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "PENDING",
                  "doc": null
                },
                {
                  "name": "SUCCEEDED",
                  "doc": null
                },
                {
                  "name": "FAILED",
                  "doc": null
                },
                {
                  "name": "CANCELLED",
                  "doc": null
                }
              ]
            }
          ],
          "models": [
            {
              "name": "BankCounterparty",
              "service": "payment-service",
              "db": "payment-db",
              "file": "services/payment-service/prisma/schema.prisma",
              "line": 74,
              "idPrefix": "bancty_",
              "doc": null,
              "fieldCount": 16,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "accountNumber",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "sortCode",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "iban",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "bicswift",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "routingNumber",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "ncc",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "bankName",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "bankAddress",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "country",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "metadata",
                  "type": "Json",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "destinationTransfers",
                  "type": "BankTransfer",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": "relations",
                  "fk": false
                },
                {
                  "name": "sourceTransfers",
                  "type": "BankTransfer",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "paymentCounterparty",
                  "type": "PaymentCounterparty",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A bank account as seen from the settlement side: full international detail (sort code, IBAN, BIC, routing, NCC) for the source or destination of a bank transfer.",
              "keyFields": [
                {
                  "name": "accountNumber",
                  "meaning": "account number"
                },
                {
                  "name": "sortCode",
                  "meaning": "UK sort code"
                },
                {
                  "name": "iban",
                  "meaning": "IBAN for international accounts"
                },
                {
                  "name": "bankName",
                  "meaning": "the holding bank"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "BankTransfer",
              "service": "payment-service",
              "db": "payment-db",
              "file": "services/payment-service/prisma/schema.prisma",
              "line": 95,
              "idPrefix": "bantr_",
              "doc": null,
              "fieldCount": 15,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "paymentId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "amount",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "currency",
                  "type": "Currency",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "reference",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "destinationId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "sourceId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "sourceFirmBankAccountId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "destinationFirmBankAccountId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "metadata",
                  "type": "Json",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "payment",
                  "type": "Payment",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": "relations",
                  "fk": true
                },
                {
                  "name": "destination",
                  "type": "BankCounterparty",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "source",
                  "type": "BankCounterparty",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                }
              ],
              "externalRefs": [
                "sourceFirmBankAccountId",
                "destinationFirmBankAccountId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "The settlement-side bank rail behind a Payment: amount, currency, reference, and the source and destination bank counterparties. The authoritative bank record, unlike transaction-service's thin copy.",
              "keyFields": [
                {
                  "name": "paymentId",
                  "meaning": "the Payment this transfer settles"
                },
                {
                  "name": "amount",
                  "meaning": "amount in minor units"
                },
                {
                  "name": "sourceId",
                  "meaning": "bank counterparty money came from"
                },
                {
                  "name": "destinationId",
                  "meaning": "bank counterparty money went to"
                }
              ],
              "references": [
                {
                  "field": "sourceFirmBankAccountId",
                  "target": "people",
                  "meaning": "firm bank account (fba_*) on the sending side"
                },
                {
                  "field": "destinationFirmBankAccountId",
                  "target": "people",
                  "meaning": "firm bank account (fba_*) on the receiving side"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Event",
              "service": "payment-service",
              "db": "payment-db",
              "file": "services/payment-service/prisma/schema.prisma",
              "line": 206,
              "idPrefix": "evt_",
              "doc": null,
              "fieldCount": 7,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "timestamp",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "type",
                  "type": "EventType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "key",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "aggregateId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "aggregateType",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "payload",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "aggregateId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "The service's append-only event store row (framework convention): an aggregate or ephemeral event with key, aggregate pointer, and payload.",
              "keyFields": [
                {
                  "name": "key",
                  "meaning": "event name"
                },
                {
                  "name": "aggregateId",
                  "meaning": "the row this event belongs to"
                },
                {
                  "name": "payload",
                  "meaning": "the event body"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Payment",
              "service": "payment-service",
              "db": "payment-db",
              "file": "services/payment-service/prisma/schema.prisma",
              "line": 53,
              "idPrefix": "paym_",
              "doc": null,
              "fieldCount": 16,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "paymentType",
                  "type": "PaymentType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "currency",
                  "type": "Currency",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "direction",
                  "type": "Direction",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "reference",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "bankTransferId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "processorPaymentId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "processorRefundId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "market",
                  "type": "Market",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "metadata",
                  "type": "Json",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "manualEntryPersonId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "bankTransfer",
                  "type": "BankTransfer",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": "relations",
                  "fk": false
                },
                {
                  "name": "processorPayment",
                  "type": "StripePayment",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "processorRefund",
                  "type": "StripeRefund",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "bankTransferId",
                "processorPaymentId",
                "processorRefundId",
                "manualEntryPersonId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "A real payment event that happened: a bank transfer, card payment, or refund, direction IN, OUT, or INTERNAL. The settlement-side anchor that reconciliation matches to an intent; status lives on the rail satellite.",
              "keyFields": [
                {
                  "name": "paymentType",
                  "meaning": "BANK_TRANSFER, PAYMENT_PROCESSOR, or PAYMENT_PROCESSOR_REFUND"
                },
                {
                  "name": "direction",
                  "meaning": "IN, OUT, or INTERNAL"
                },
                {
                  "name": "processorPaymentId",
                  "meaning": "the StripePayment behind a card payment"
                },
                {
                  "name": "bankTransferId",
                  "meaning": "the BankTransfer behind a bank payment"
                },
                {
                  "name": "market",
                  "meaning": "US or GB"
                },
                {
                  "name": "manualEntryPersonId",
                  "meaning": "who keyed the payment in, when entered by hand"
                }
              ],
              "references": [
                {
                  "field": "manualEntryPersonId",
                  "target": "people",
                  "meaning": "operator who recorded a manual payment"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "PaymentCounterparty",
              "service": "payment-service",
              "db": "payment-db",
              "file": "services/payment-service/prisma/schema.prisma",
              "line": 169,
              "idPrefix": "paycty_",
              "doc": null,
              "fieldCount": 11,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "type",
                  "type": "PaymentCounterpartyType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "bankCounterpartyId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "paymentProcessorCounterpartyId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "metadata",
                  "type": "Json",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "transactionCounterpartyId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "paymentProcessorCounterparty",
                  "type": "PaymentProcessorCounterparty",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": "relations",
                  "fk": true
                },
                {
                  "name": "bankCounterparty",
                  "type": "BankCounterparty",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                }
              ],
              "externalRefs": [
                "firmId",
                "transactionCounterpartyId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "The settlement-side umbrella over a party: either a BANK counterparty or a PAYMENT_PROCESSOR one, with a bridge back to transaction-service's Counterparty.",
              "keyFields": [
                {
                  "name": "type",
                  "meaning": "BANK or PAYMENT_PROCESSOR"
                },
                {
                  "name": "bankCounterpartyId",
                  "meaning": "the bank identity, when type is BANK"
                },
                {
                  "name": "paymentProcessorCounterpartyId",
                  "meaning": "the Stripe identity, when type is PAYMENT_PROCESSOR"
                },
                {
                  "name": "transactionCounterpartyId",
                  "meaning": "bridge to transaction-service's Counterparty for the same party"
                }
              ],
              "references": [
                {
                  "field": "firmId",
                  "target": "people",
                  "meaning": "the firm this party belongs to, when firm-owned"
                },
                {
                  "field": "transactionCounterpartyId",
                  "target": "money",
                  "meaning": "cross-db pointer to the intent-side Counterparty"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "PaymentProcessorCounterparty",
              "service": "payment-service",
              "db": "payment-db",
              "file": "services/payment-service/prisma/schema.prisma",
              "line": 155,
              "idPrefix": "paypro_",
              "doc": null,
              "fieldCount": 9,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "type",
                  "type": "PaymentProcessorCounterpartyType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "accountId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "market",
                  "type": "Market",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "metadata",
                  "type": "Json",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "stripePayments",
                  "type": "StripePayment",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": "relations",
                  "fk": false
                },
                {
                  "name": "paymentCounterparty",
                  "type": "PaymentCounterparty",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "accountId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A payment-processor account as a party: today always STRIPE, keyed by the processor's account id per market.",
              "keyFields": [
                {
                  "name": "type",
                  "meaning": "STRIPE (the only value today)"
                },
                {
                  "name": "accountId",
                  "meaning": "the processor-side account id"
                },
                {
                  "name": "market",
                  "meaning": "US or GB — one Stripe account per market"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Reconciliation",
              "service": "payment-service",
              "db": "payment-db",
              "file": "services/payment-service/prisma/schema.prisma",
              "line": 185,
              "idPrefix": "reconc_",
              "doc": null,
              "fieldCount": 6,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "reconciledByPersonId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "paymentId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "transactionIntentId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "reconciledByPersonId",
                "paymentId",
                "transactionIntentId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "The record that says 'this real Payment settles this TransactionIntent'. Creating one fires payment-service/reconciliation.created, the platform's biggest business event, fanning out to four consumers.",
              "keyFields": [
                {
                  "name": "paymentId",
                  "meaning": "the settled payment"
                },
                {
                  "name": "transactionIntentId",
                  "meaning": "the intent it settles; nullable for pre-intent quotes matched by transactionId"
                },
                {
                  "name": "reconciledByPersonId",
                  "meaning": "who matched it, when done by hand"
                }
              ],
              "references": [
                {
                  "field": "transactionIntentId",
                  "target": "money",
                  "meaning": "cross-db pointer to transaction-service's intent"
                },
                {
                  "field": "reconciledByPersonId",
                  "target": "people",
                  "meaning": "the reconciling operator"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "StripePayment",
              "service": "payment-service",
              "db": "payment-db",
              "file": "services/payment-service/prisma/schema.prisma",
              "line": 118,
              "idPrefix": "strp_",
              "doc": null,
              "fieldCount": 15,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "paymentId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "amount",
                  "type": "Int",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "stripePaymentIntentId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "stripeCheckoutSessionId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "stripeCheckoutSessionURL",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "paymentStatus",
                  "type": "PaymentStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "last4",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "receiptUrl",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "paymentProcessorCounterpartyId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "metadata",
                  "type": "Json",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "payment",
                  "type": "Payment",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": "relations",
                  "fk": true
                },
                {
                  "name": "paymentProcessorCounterparty",
                  "type": "PaymentProcessorCounterparty",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                }
              ],
              "externalRefs": [
                "stripePaymentIntentId",
                "stripeCheckoutSessionId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "The settlement-side Stripe detail behind a Payment: payment intent, checkout session, status, card last4, and receipt. Authoritative for what Stripe actually did; different shape from transaction-service's copy.",
              "keyFields": [
                {
                  "name": "paymentId",
                  "meaning": "the Payment this settles"
                },
                {
                  "name": "paymentStatus",
                  "meaning": "PROCESSING → SUCCEEDED / CANCELLED"
                },
                {
                  "name": "stripePaymentIntentId",
                  "meaning": "Stripe's payment intent"
                },
                {
                  "name": "amount",
                  "meaning": "amount Stripe reports, minor units"
                }
              ],
              "references": [],
              "lifecycle": "PROCESSING → SUCCEEDED / CANCELLED",
              "grouped": []
            },
            {
              "name": "StripeRefund",
              "service": "payment-service",
              "db": "payment-db",
              "file": "services/payment-service/prisma/schema.prisma",
              "line": 138,
              "idPrefix": "strpre_",
              "doc": null,
              "fieldCount": 12,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "paymentStatus",
                  "type": "RefundStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "paymentId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "amount",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "stripePaymentIntentId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "stripeRefundId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "last4",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "receiptUrl",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "metadata",
                  "type": "Json",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "payment",
                  "type": "Payment",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": "relations",
                  "fk": true
                }
              ],
              "externalRefs": [
                "stripePaymentIntentId",
                "stripeRefundId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "The settlement-side Stripe refund behind a PAYMENT_PROCESSOR_REFUND Payment: which payment intent was refunded, for how much, with Stripe's refund id.",
              "keyFields": [
                {
                  "name": "paymentId",
                  "meaning": "the refund Payment this belongs to"
                },
                {
                  "name": "paymentStatus",
                  "meaning": "PENDING → SUCCEEDED / FAILED / CANCELLED"
                },
                {
                  "name": "amount",
                  "meaning": "refunded amount, minor units"
                },
                {
                  "name": "stripeRefundId",
                  "meaning": "Stripe's id for the refund"
                }
              ],
              "references": [],
              "lifecycle": "PENDING → SUCCEEDED / FAILED / CANCELLED",
              "grouped": []
            }
          ]
        },
        {
          "name": "ledger-service",
          "group": "services",
          "db": "ledger-db",
          "enums": [
            {
              "name": "AccountType",
              "file": "services/ledger-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "EXTERNAL",
                  "doc": null
                },
                {
                  "name": "OFFICE",
                  "doc": null
                },
                {
                  "name": "CLIENT",
                  "doc": null
                }
              ]
            },
            {
              "name": "Currency",
              "file": "services/ledger-service/prisma/shared-models/currency.prisma",
              "doc": null,
              "values": [
                {
                  "name": "GBP",
                  "doc": null
                },
                {
                  "name": "USD",
                  "doc": null
                },
                {
                  "name": "EUR",
                  "doc": null
                }
              ]
            },
            {
              "name": "EventType",
              "file": "services/ledger-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "aggregate",
                  "doc": null
                },
                {
                  "name": "ephemeral",
                  "doc": null
                }
              ]
            }
          ],
          "models": [
            {
              "name": "Account",
              "service": "ledger-service",
              "db": "ledger-db",
              "file": "services/ledger-service/prisma/schema.prisma",
              "line": 25,
              "idPrefix": null,
              "doc": null,
              "fieldCount": 11,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "type",
                  "type": "AccountType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "currency",
                  "type": "Currency",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "personId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmBankAccountId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "sourcePostings",
                  "type": "Posting",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "destinationPostings",
                  "type": "Posting",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "firmId",
                "personId",
                "matterId",
                "firmBankAccountId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "A double-entry account: EXTERNAL (the outside world, per-currency @world sentinel), OFFICE (fee money), or CLIENT (client funds held), scoped by firm, person, matter, and firm bank account. Non-EXTERNAL accounts must carry a real fba_* id (ADR 0043).",
              "keyFields": [
                {
                  "name": "type",
                  "meaning": "EXTERNAL, OFFICE, or CLIENT"
                },
                {
                  "name": "currency",
                  "meaning": "GBP, USD, or EUR; postings may not bridge currencies"
                },
                {
                  "name": "firmId",
                  "meaning": "owning firm, for firm-scoped accounts"
                },
                {
                  "name": "personId",
                  "meaning": "the client, for client-funds accounts"
                },
                {
                  "name": "matterId",
                  "meaning": "the matter the funds relate to"
                },
                {
                  "name": "firmBankAccountId",
                  "meaning": "real fba_* id, or @world:<currency> sentinel for EXTERNAL"
                }
              ],
              "references": [
                {
                  "field": "firmId",
                  "target": "people",
                  "meaning": "the firm whose books these are"
                },
                {
                  "field": "personId",
                  "target": "people",
                  "meaning": "the client whose funds are held"
                },
                {
                  "field": "matterId",
                  "target": "matters",
                  "meaning": "the matter the account is scoped to"
                },
                {
                  "field": "firmBankAccountId",
                  "target": "people",
                  "meaning": "the physical firm bank account behind the ledger account"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Event",
              "service": "ledger-service",
              "db": "ledger-db",
              "file": "services/ledger-service/prisma/schema.prisma",
              "line": 96,
              "idPrefix": "evt_",
              "doc": null,
              "fieldCount": 7,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "timestamp",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "type",
                  "type": "EventType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "key",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "aggregateId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "aggregateType",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "payload",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "aggregateId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "The service's append-only event store row; the ledger is event-sourced, so account, posting, and transaction writes flow through here as effects.",
              "keyFields": [
                {
                  "name": "key",
                  "meaning": "event name"
                },
                {
                  "name": "aggregateId",
                  "meaning": "the row this event belongs to"
                },
                {
                  "name": "payload",
                  "meaning": "the event body"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Posting",
              "service": "ledger-service",
              "db": "ledger-db",
              "file": "services/ledger-service/prisma/schema.prisma",
              "line": 59,
              "idPrefix": "pst_",
              "doc": null,
              "fieldCount": 14,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "amount",
                  "type": "BigInt",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "effectiveDate",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "sourceAccountId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "sourceAccount",
                  "type": "Account",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "destinationAccountId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "destinationAccount",
                  "type": "Account",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "transactionId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "transaction",
                  "type": "Transaction",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "reconciliationId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "sourceFirmBankAccountId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "destinationFirmBankAccountId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "reconciliationId",
                "sourceFirmBankAccountId",
                "destinationFirmBankAccountId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "One debit/credit leg of a journal entry: an amount moving from a source account to a destination account on an effective date. Both accounts must share a currency.",
              "keyFields": [
                {
                  "name": "amount",
                  "meaning": "amount moved, minor units (BigInt)"
                },
                {
                  "name": "sourceAccountId",
                  "meaning": "account debited"
                },
                {
                  "name": "destinationAccountId",
                  "meaning": "account credited"
                },
                {
                  "name": "effectiveDate",
                  "meaning": "the accounting date, distinct from createdAt"
                },
                {
                  "name": "reconciliationId",
                  "meaning": "the reconciliation that triggered this leg, when settlement-driven"
                }
              ],
              "references": [
                {
                  "field": "reconciliationId",
                  "target": "money",
                  "meaning": "cross-db pointer to payment-service's Reconciliation"
                },
                {
                  "field": "sourceFirmBankAccountId",
                  "target": "people",
                  "meaning": "physical firm bank account on the debit side"
                },
                {
                  "field": "destinationFirmBankAccountId",
                  "target": "people",
                  "meaning": "physical firm bank account on the credit side"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Transaction",
              "service": "ledger-service",
              "db": "ledger-db",
              "file": "services/ledger-service/prisma/schema.prisma",
              "line": 45,
              "idPrefix": "txn_",
              "doc": null,
              "fieldCount": 8,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "reference",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "payee",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "description",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "transactionIntentId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": true,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "postings",
                  "type": "Posting",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "transactionIntentId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "A journal entry header: who was paid, a reference, and the postings that move the money. Unique on transactionIntentId, so posting the same intent twice is idempotent.",
              "keyFields": [
                {
                  "name": "payee",
                  "meaning": "who the entry paid"
                },
                {
                  "name": "reference",
                  "meaning": "human-readable reference for the entry"
                },
                {
                  "name": "transactionIntentId",
                  "meaning": "the intent this entry books; @unique makes booking idempotent per intent"
                }
              ],
              "references": [
                {
                  "field": "transactionIntentId",
                  "target": "money",
                  "meaning": "cross-db pointer to transaction-service's intent"
                }
              ],
              "lifecycle": null,
              "grouped": []
            }
          ]
        }
      ]
    },
    {
      "id": "ai",
      "order": 11,
      "name": "AI: Lawrence and agents",
      "services": [
        "lawrence-api"
      ],
      "databases": [
        "lawrence-db"
      ],
      "tagline": "Lawrence chat, reusable skills, proactive drafts, and durable background agent runs",
      "whatItIs": "Lawrence and everything around him. This is where lawyers chat with the platform's AI assistant on a matter (streamed, with rated answers and citation flagging), where reusable skills live with a draft-to-published lifecycle and access controls, and where proactive help comes from: suggested next steps and pre-drafted messages. Bigger jobs like letter, advice-note, and form-filling generation run as tracked workflows, and every background agent execution is recorded as a durable AgentRun.",
      "howItConnects": "The platform's biggest listener. To keep Lawrence's picture of each case fresh, it consumes events from all over: files and notes from Matters, filed emails, chat messages, call transcripts, and matter creation itself. It keeps only references to what it hears about and reads the details on demand from the owning domain. Physical post borrows its case-context search to match scanned mail to cases.",
      "lifecycle": null,
      "flows": [
        {
          "id": "ai-context-refresh",
          "title": "How matter context stays fresh",
          "mermaid": "flowchart LR\n  files[Matter files / notes] --> ctx[Case context update]\n  email[Email filed] --> ctx\n  chat[Chat message] --> ctx\n  call[Call transcript] --> ctx\n  ctx --> next[Next-step prediction]\n  next --> draft[ProactiveMessageDraft]",
          "caption": "Every relevant change on a matter — files, notes, filed email, chat, call transcripts — triggers a case-context rebuild, which feeds next-step prediction and proactive drafting."
        },
        {
          "id": "ai-agent-run",
          "title": "A background agent run",
          "mermaid": "flowchart LR\n  ev[Trigger event batch] --> run[AgentRun: PENDING_START]\n  run --> worker[agent-worker executes]\n  worker --> api[lawrence-api service plane]\n  api --> done[SUCCEEDED / FAILED / NO_ACTION]",
          "caption": "Events reserve a retry-stable AgentRun row; agent-worker executes in its own world and reports back through lawrence-api's internal procedures, which own every status transition."
        },
        {
          "id": "ai-estate",
          "title": "The AI estate beyond platform-v3",
          "mermaid": "flowchart LR\n    subgraph v3[\"platform-v3 — this dashboard\"]\n        la[\"lawrence-api\"]\n        aw[\"agent-worker\"]\n    end\n    subgraph py[\"Python repos — own models, internal to them\"]\n        le[\"ai-platform / lawrence-engine\"]\n        ag[\"agents\"]\n        ing[\"ingestion\"]\n    end\n    la -->|delegates AI work| le\n    aw -->|runs agents against| le\n    la -.->|older agent runtime| ag\n    ing -.->|ingested documents & data| la",
          "caption": "The AI domain's platform-v3 services and the Python repos they work with. Those repos keep their own data models; this registry covers platform-v3 only."
        }
      ],
      "notes": [
        {
          "kind": "companion",
          "body": "agent-worker owns durable execution in its own agent_worlds database — an execution journal, not Prisma-modelled here. lawrence-api owns the record of truth for runs (AgentRun): the worker never writes lawrence-db directly, it goes through the internal service-plane procedures (ensureRun, transitionRun, finaliseRun)."
        },
        {
          "kind": "companion",
          "body": "platform-v3 is only the TypeScript half of the AI estate. The Python side lives in its own repos with their own models, internal to them and out of scope here: ai-platform (the lawrence-engine modular monolith, where the chat agent and other AI services are being consolidated), the older agents repo (Lawhive's original Python agent runtime), and ingestion (ingestion of documents and data for Lawrence and the platform)."
        }
      ],
      "events": {
        "publishes": [
          {
            "name": "agent-worker/fixture.requested",
            "service": "lawrence-api",
            "live": "active"
          },
          {
            "name": "app/case/batch-case-context-update.requested",
            "service": "lawrence-api",
            "live": "active"
          },
          {
            "name": "app/form_definition/generate.requested",
            "service": "lawrence-api",
            "live": "active"
          },
          {
            "name": "app/form_definition/process_fields.requested",
            "service": "lawrence-api",
            "live": "silent"
          },
          {
            "name": "app/lawrence-proactive/generate-suggestion-for-case.requested",
            "service": "lawrence-api",
            "live": "active"
          }
        ],
        "consumes": [
          {
            "name": "app/lawrence-proactive/classify-steps-in-suggestion-for-message-drafting.done",
            "service": "lawrence-api",
            "live": "silent"
          },
          {
            "name": "artifact_generation.final_asset_generated",
            "service": "lawrence-api",
            "live": "active"
          },
          {
            "name": "artifact_generation.final_asset_generation_failed",
            "service": "lawrence-api",
            "live": "rare"
          },
          {
            "name": "artifact_generation.progressed",
            "service": "lawrence-api",
            "live": "active"
          },
          {
            "name": "email-service/message.refiled",
            "service": "lawrence-api",
            "live": "rare"
          },
          {
            "name": "email-service/message.removed",
            "service": "lawrence-api",
            "live": "silent"
          },
          {
            "name": "email-service/message.uploaded",
            "service": "lawrence-api",
            "live": "active"
          },
          {
            "name": "form_filling.progressed",
            "service": "lawrence-api",
            "live": "silent"
          },
          {
            "name": "lawrence-api/nextStepsPrediction.requested",
            "service": "lawrence-api",
            "live": "silent"
          },
          {
            "name": "lead-api/call.transcriptUpdated",
            "service": "lawrence-api",
            "live": "silent"
          },
          {
            "name": "matter-service/call.attendance-note.requested",
            "service": "lawrence-api",
            "live": "active"
          },
          {
            "name": "matter-service/file.deleted",
            "service": "lawrence-api",
            "live": "active"
          },
          {
            "name": "matter-service/file.matterUpdated",
            "service": "lawrence-api",
            "live": "silent"
          },
          {
            "name": "matter-service/file.uploaded",
            "service": "lawrence-api",
            "live": "active"
          },
          {
            "name": "matter-service/note.created",
            "service": "lawrence-api",
            "live": "active"
          },
          {
            "name": "matter-service/note.updated",
            "service": "lawrence-api",
            "live": "rare"
          },
          {
            "name": "messaging-service/message.created",
            "service": "lawrence-api",
            "live": "active"
          },
          {
            "name": "platform-api/matter.created",
            "service": "lawrence-api",
            "live": "rare"
          }
        ]
      },
      "servicesDetail": [
        {
          "name": "lawrence-api",
          "group": "apis",
          "db": "lawrence-db",
          "enums": [
            {
              "name": "AgentRunStatus",
              "file": "apis/lawrence-api/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "PENDING_START",
                  "doc": null
                },
                {
                  "name": "RUNNING",
                  "doc": null
                },
                {
                  "name": "SUCCEEDED",
                  "doc": null
                },
                {
                  "name": "FAILED",
                  "doc": null
                },
                {
                  "name": "NO_ACTION",
                  "doc": null
                }
              ]
            },
            {
              "name": "AgentScopeType",
              "file": "apis/lawrence-api/prisma/schema.prisma",
              "doc": "The scope an agent run is bound to. MATTER is the only scope the runtime\nadmits today; FIRM/USER/ORG are modelled so the infra is scope-general, but\ntheir gating policies are deferred (see the reserve gate).",
              "values": [
                {
                  "name": "MATTER",
                  "doc": null
                },
                {
                  "name": "FIRM",
                  "doc": null
                },
                {
                  "name": "USER",
                  "doc": null
                },
                {
                  "name": "ORG",
                  "doc": null
                }
              ]
            },
            {
              "name": "AIFeedbackRating",
              "file": "apis/lawrence-api/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "POSITIVE",
                  "doc": null
                },
                {
                  "name": "NEGATIVE",
                  "doc": null
                }
              ]
            },
            {
              "name": "AIThreadMode",
              "file": "apis/lawrence-api/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "LAWRENCE",
                  "doc": null
                },
                {
                  "name": "LETTER_CONTEXT",
                  "doc": null
                },
                {
                  "name": "AGENT",
                  "doc": null
                }
              ]
            },
            {
              "name": "AIThreadSchemaVersion",
              "file": "apis/lawrence-api/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "LEGACY",
                  "doc": null
                },
                {
                  "name": "AI_SDK_V5",
                  "doc": null
                }
              ]
            },
            {
              "name": "SkillAccessType",
              "file": "apis/lawrence-api/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "EDITOR",
                  "doc": null
                },
                {
                  "name": "USER",
                  "doc": null
                }
              ]
            },
            {
              "name": "SkillStatus",
              "file": "apis/lawrence-api/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "DRAFT",
                  "doc": null
                },
                {
                  "name": "PUBLISHED",
                  "doc": null
                },
                {
                  "name": "ARCHIVED",
                  "doc": null
                }
              ]
            },
            {
              "name": "SkillSubjectType",
              "file": "apis/lawrence-api/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "USER",
                  "doc": null
                },
                {
                  "name": "TEAM",
                  "doc": null
                },
                {
                  "name": "FIRM",
                  "doc": null
                }
              ]
            }
          ],
          "models": [
            {
              "name": "AgentRun",
              "service": "lawrence-api",
              "db": "lawrence-db",
              "file": "apis/lawrence-api/prisma/schema.prisma",
              "line": 231,
              "idPrefix": "agrun_",
              "doc": "A background agent run: a durable row with an honest status, provenance, and a\nretry-stable identity. The compute plane (agent-worker) never touches this\ntable directly — it goes through lawrence-api's internal service-plane\nprocedures (see src/agent-runs).",
              "fieldCount": 22,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "agentSlug",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "triggerType",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "triggerEventId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "The batch's first event id — stable across Inngest bridge retries, so a\nretry lands on the same logical run via the unique constraint below.",
                  "fk": false
                },
                {
                  "name": "triggerEventIds",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "The full event batch, for lineage and re-runs.",
                  "fk": false
                },
                {
                  "name": "rerunOfRunId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "rerunOf",
                  "type": "AgentRun",
                  "list": false,
                  "optional": true,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "reruns",
                  "type": "AgentRun",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "scopeType",
                  "type": "AgentScopeType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": "The run's scope. (scopeType, scopeId) is the general key; matterId is a\ndenormalised copy of scopeId, set only when scopeType = MATTER, so matter\nproduct surfaces can keep querying by matterId.",
                  "fk": false
                },
                {
                  "name": "scopeId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "actorIdentityId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "The acting identity. Nullable: the firm's dedicated agent identity is a\nparked project, so a run acts as the delegating human when one is supplied\nand as no one otherwise. Never accepted from the caller.",
                  "fk": false
                },
                {
                  "name": "delegatingIdentityId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "threadId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "transcript",
                  "type": "Json",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "status",
                  "type": "AgentRunStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "error",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "inngestRunId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "workflowRunId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                }
              ],
              "externalRefs": [
                "triggerEventId",
                "scopeId",
                "matterId",
                "firmId",
                "actorIdentityId",
                "delegatingIdentityId",
                "threadId",
                "inngestRunId",
                "workflowRunId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "The durable record of truth for one background agent execution: honest status, provenance, re-run lineage, and a retry-stable identity via unique (agentSlug, triggerEventId). agent-worker executes it but only writes through lawrence-api's service-plane procedures.",
              "keyFields": [
                {
                  "name": "agentSlug",
                  "meaning": "which agent ran"
                },
                {
                  "name": "status",
                  "meaning": "PENDING_START → RUNNING → SUCCEEDED / FAILED / NO_ACTION"
                },
                {
                  "name": "triggerEventId",
                  "meaning": "first event of the trigger batch — stable across retries, so a retry lands on the same run"
                },
                {
                  "name": "scopeType",
                  "meaning": "what the run is bound to; MATTER is the only scope the runtime admits today"
                },
                {
                  "name": "scopeId",
                  "meaning": "the scoped record's id; matterId denormalises it when scopeType = MATTER"
                },
                {
                  "name": "rerunOfRunId",
                  "meaning": "lineage pointer when this run is a re-run of an earlier one"
                },
                {
                  "name": "transcript",
                  "meaning": "the run's conversation transcript, captured for observability"
                }
              ],
              "references": [
                {
                  "field": "matterId",
                  "target": "matters",
                  "meaning": "the matter the run acted on, for matter surfaces"
                },
                {
                  "field": "firmId",
                  "target": "people",
                  "meaning": "the firm the run belongs to"
                },
                {
                  "field": "actorIdentityId",
                  "target": "people",
                  "meaning": "the identity the run acts as — the delegating human, or no one; never caller-supplied"
                },
                {
                  "field": "delegatingIdentityId",
                  "target": "people",
                  "meaning": "the human who delegated the work, when one did"
                },
                {
                  "field": "threadId",
                  "target": "ai",
                  "meaning": "the AIThread the run is attached to, for chat-dispatched runs"
                }
              ],
              "lifecycle": "PENDING_START → RUNNING → SUCCEEDED / FAILED / NO_ACTION",
              "grouped": []
            },
            {
              "name": "AICitationFeedback",
              "service": "lawrence-api",
              "db": "lawrence-db",
              "file": "apis/lawrence-api/prisma/schema.prisma",
              "line": 110,
              "idPrefix": "aicfb_",
              "doc": null,
              "fieldCount": 6,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "message",
                  "type": "AIMessage",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "messageId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "citationId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "flaggedByUserId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                }
              ],
              "externalRefs": [
                "citationId",
                "flaggedByUserId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A flag on one specific citation inside a Lawrence answer — a user marking a source as wrong, one flag per (message, citation, user).",
              "keyFields": [
                {
                  "name": "citationId",
                  "meaning": "which citation within the message was flagged"
                },
                {
                  "name": "messageId",
                  "meaning": "the assistant message containing the citation"
                }
              ],
              "references": [
                {
                  "field": "flaggedByUserId",
                  "target": "people",
                  "meaning": "the user who flagged the citation"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "AICustomInstructions",
              "service": "lawrence-api",
              "db": "lawrence-db",
              "file": "apis/lawrence-api/prisma/schema.prisma",
              "line": 138,
              "idPrefix": "aicust_",
              "doc": null,
              "fieldCount": 6,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "userId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "key",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "instructions",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                }
              ],
              "externalRefs": [
                "userId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A user's standing 'how Lawrence should behave for me' text, keyed per surface so one user can hold different instructions per context.",
              "keyFields": [
                {
                  "name": "key",
                  "meaning": "which surface the instructions apply to — unique per (user, key)"
                },
                {
                  "name": "instructions",
                  "meaning": "the free-text behaviour preferences injected into prompts"
                }
              ],
              "references": [
                {
                  "field": "userId",
                  "target": "people",
                  "meaning": "the user the instructions belong to"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "AIFeedback",
              "service": "lawrence-api",
              "db": "lawrence-db",
              "file": "apis/lawrence-api/prisma/schema.prisma",
              "line": 90,
              "idPrefix": "aifb_",
              "doc": null,
              "fieldCount": 6,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "rating",
                  "type": "AIFeedbackRating",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "message",
                  "type": "AIMessage",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "messageId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "ratingUserId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                }
              ],
              "externalRefs": [
                "ratingUserId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A thumbs up or down (POSITIVE / NEGATIVE) on one Lawrence answer, one rating per user per message.",
              "keyFields": [
                {
                  "name": "rating",
                  "meaning": "POSITIVE or NEGATIVE"
                },
                {
                  "name": "messageId",
                  "meaning": "the assistant message being rated"
                }
              ],
              "references": [
                {
                  "field": "ratingUserId",
                  "target": "people",
                  "meaning": "the user giving the verdict"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "AIMessage",
              "service": "lawrence-api",
              "db": "lawrence-db",
              "file": "apis/lawrence-api/prisma/schema.prisma",
              "line": 56,
              "idPrefix": "aimsg_",
              "doc": null,
              "fieldCount": 20,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "role",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "content",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "parts",
                  "type": "Json",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "sendingUserId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "thread",
                  "type": "AIThread",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "threadId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "ratings",
                  "type": "AIFeedback",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "citationFeedback",
                  "type": "AICitationFeedback",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "omitFromGenerationContext",
                  "type": "Boolean",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "toolInvocations",
                  "type": "Json",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "inputTokens",
                  "type": "Int",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "outputTokens",
                  "type": "Int",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "cacheCreationInputTokens",
                  "type": "Int",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "cacheReadInputTokens",
                  "type": "Int",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "preCompactionInputTokens",
                  "type": "Int",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "postCompactionInputTokens",
                  "type": "Int",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "model",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "contextLimit",
                  "type": "Int",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                }
              ],
              "externalRefs": [
                "sendingUserId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "One turn in a Lawrence thread — user or assistant — with tool invocations and full token, model, and context-compaction telemetry.",
              "keyFields": [
                {
                  "name": "role",
                  "meaning": "who spoke: user or assistant"
                },
                {
                  "name": "content",
                  "meaning": "the turn's text"
                },
                {
                  "name": "parts",
                  "meaning": "structured AI-SDK message parts (v5 threads)"
                },
                {
                  "name": "toolInvocations",
                  "meaning": "tools the assistant called during this turn"
                },
                {
                  "name": "omitFromGenerationContext",
                  "meaning": "true drops this turn from future prompts (context pruning)"
                },
                {
                  "name": "inputTokens",
                  "meaning": "token telemetry, alongside output/cache/compaction counters and model"
                }
              ],
              "references": [
                {
                  "field": "sendingUserId",
                  "target": "people",
                  "meaning": "the user who sent it, when the turn is human"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "AIThread",
              "service": "lawrence-api",
              "db": "lawrence-db",
              "file": "apis/lawrence-api/prisma/schema.prisma",
              "line": 22,
              "idPrefix": "aithrd_",
              "doc": null,
              "fieldCount": 10,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "userId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "mode",
                  "type": "AIThreadMode",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "singleton",
                  "type": "Boolean",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "schemaVersion",
                  "type": "AIThreadSchemaVersion",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "title",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "titleGeneratedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "messages",
                  "type": "AIMessage",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                }
              ],
              "externalRefs": [
                "matterId",
                "userId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "A conversation between one user and Lawrence on one matter. Modes: LAWRENCE (general chat), LETTER_CONTEXT (letter drafting), AGENT (agentic); a singleton flag keeps one default thread per (matter, user).",
              "keyFields": [
                {
                  "name": "matterId",
                  "meaning": "the matter the conversation is about"
                },
                {
                  "name": "userId",
                  "meaning": "the lawyer this thread belongs to — threads are per (matter, user)"
                },
                {
                  "name": "mode",
                  "meaning": "LAWRENCE chat, LETTER_CONTEXT drafting, or AGENT"
                },
                {
                  "name": "singleton",
                  "meaning": "true marks the one default thread per (matter, user, mode)"
                },
                {
                  "name": "schemaVersion",
                  "meaning": "LEGACY or AI_SDK_V5 — which message format the thread's turns use"
                },
                {
                  "name": "title",
                  "meaning": "AI-generated thread title for the sidebar"
                }
              ],
              "references": [
                {
                  "field": "matterId",
                  "target": "matters",
                  "meaning": "the matter whose context Lawrence answers from"
                },
                {
                  "field": "userId",
                  "target": "people",
                  "meaning": "the user chatting with Lawrence"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "ProactiveMessageDraft",
              "service": "lawrence-api",
              "db": "lawrence-db",
              "file": "apis/lawrence-api/prisma/schema.prisma",
              "line": 124,
              "idPrefix": "msgdr_",
              "doc": null,
              "fieldCount": 7,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "matterId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "draftId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "nextStepSuggestionId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "nextStepClassificationId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "content",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                }
              ],
              "externalRefs": [
                "matterId",
                "draftId",
                "nextStepSuggestionId",
                "nextStepClassificationId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "An AI-drafted client message Lawrence suggests before being asked, produced by the proactive-suggestion pipeline off next-step predictions for a matter.",
              "keyFields": [
                {
                  "name": "content",
                  "meaning": "the suggested message text, ready for the lawyer to edit and send"
                },
                {
                  "name": "draftId",
                  "meaning": "the proactive pipeline's draft identifier — unique per (matter, draft)"
                },
                {
                  "name": "nextStepSuggestionId",
                  "meaning": "the next-step suggestion that prompted the draft, when there was one"
                },
                {
                  "name": "nextStepClassificationId",
                  "meaning": "the classification run that routed the suggestion into drafting"
                }
              ],
              "references": [
                {
                  "field": "matterId",
                  "target": "matters",
                  "meaning": "the matter the draft would be sent on"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "Skill",
              "service": "lawrence-api",
              "db": "lawrence-db",
              "file": "apis/lawrence-api/prisma/schema.prisma",
              "line": 151,
              "idPrefix": "skl_",
              "doc": null,
              "fieldCount": 13,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "firmId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "null = Lawhive-provided global skill",
                  "fk": false
                },
                {
                  "name": "status",
                  "type": "SkillStatus",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "name",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "description",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "body",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdByIdentityId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "usageCount",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "access",
                  "type": "SkillAccess",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "ownerTeams",
                  "type": "SkillOwnerTeam",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "deletedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "firmId",
                "createdByIdentityId"
              ],
              "interpreted": true,
              "tier": "core",
              "meaning": "A reusable AI capability — a named prompt body Lawrence can apply — either Lawhive-global (firmId null) or firm-owned, moving DRAFT → PUBLISHED → ARCHIVED. Sharing and governance hang off SkillAccess and SkillOwnerTeam.",
              "keyFields": [
                {
                  "name": "name",
                  "meaning": "what the skill is called in the picker"
                },
                {
                  "name": "body",
                  "meaning": "the prompt text the skill injects when used"
                },
                {
                  "name": "status",
                  "meaning": "DRAFT, PUBLISHED, or ARCHIVED"
                },
                {
                  "name": "firmId",
                  "meaning": "owning firm; null means a Lawhive-provided global skill"
                },
                {
                  "name": "usageCount",
                  "meaning": "how many times the skill has been invoked"
                },
                {
                  "name": "deletedAt",
                  "meaning": "soft-delete timestamp"
                }
              ],
              "references": [
                {
                  "field": "firmId",
                  "target": "people",
                  "meaning": "the firm that owns the skill, when not global"
                },
                {
                  "field": "createdByIdentityId",
                  "target": "people",
                  "meaning": "the identity that authored it"
                }
              ],
              "lifecycle": "DRAFT → PUBLISHED → ARCHIVED",
              "grouped": [
                "SkillAccess",
                "SkillOwnerTeam"
              ]
            },
            {
              "name": "SkillAccess",
              "service": "lawrence-api",
              "db": "lawrence-db",
              "file": "apis/lawrence-api/prisma/schema.prisma",
              "line": 189,
              "idPrefix": "skla_",
              "doc": null,
              "fieldCount": 8,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                },
                {
                  "name": "skill",
                  "type": "Skill",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "skillId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "subjectType",
                  "type": "SkillSubjectType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "subjectId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "accessType",
                  "type": "SkillAccessType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdByIdentityId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": "@zod.custom.omit([input])",
                  "fk": false
                }
              ],
              "externalRefs": [
                "subjectId",
                "createdByIdentityId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "One ACL entry on a skill: a USER, TEAM, or FIRM subject granted EDITOR or USER access.",
              "keyFields": [
                {
                  "name": "subjectType",
                  "meaning": "who the grant targets: USER, TEAM, or FIRM"
                },
                {
                  "name": "subjectId",
                  "meaning": "the id of that subject"
                },
                {
                  "name": "accessType",
                  "meaning": "EDITOR can change the skill; USER can only invoke it"
                }
              ],
              "references": [
                {
                  "field": "subjectId",
                  "target": "people",
                  "meaning": "the user, team, or firm being granted access"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "SkillOwnerTeam",
              "service": "lawrence-api",
              "db": "lawrence-db",
              "file": "apis/lawrence-api/prisma/schema.prisma",
              "line": 174,
              "idPrefix": null,
              "doc": "Teams whose owners (not members) govern the skill — see computeSkillRole.",
              "fieldCount": 3,
              "fields": [
                {
                  "name": "skill",
                  "type": "Skill",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "skillId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "teamId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "teamId"
              ],
              "interpreted": true,
              "tier": "supporting",
              "meaning": "A governance link: a team whose owners — not its members — govern the skill (see computeSkillRole).",
              "keyFields": [
                {
                  "name": "teamId",
                  "meaning": "the team whose owners hold governance over the skill"
                }
              ],
              "references": [
                {
                  "field": "teamId",
                  "target": "people",
                  "meaning": "the governing team"
                }
              ],
              "lifecycle": null,
              "grouped": []
            }
          ]
        }
      ]
    },
    {
      "id": "loyalty",
      "order": 12,
      "name": "Loyalty points (legacy)",
      "services": [
        "incentive-service"
      ],
      "databases": [
        "incentive-db"
      ],
      "tagline": "Lawyer loyalty scheme fed by platform v2 events; nothing in v3 reads it",
      "whatItIs": "A loyalty scheme for lawyers: named tiers with point thresholds, enrolled members with running point totals, and a ledger of every point posting. Points are earned from paid bills and referrals, and admins can post points or override a member's tier by hand. It is a legacy corner: the scheme definitions themselves live in platform v2, and this domain only carries their ids.",
      "howItConnects": "A one-way street fed by the old platform. Events from v2 (a bill paid, a referral payment made) arrive and become point postings, which then trigger tier upgrades and expiries internally. Nothing in v3 reads from this domain.",
      "lifecycle": null,
      "flows": [
        {
          "id": "loyalty-points-flow",
          "title": "How points arrive",
          "mermaid": "flowchart LR\n  v2[v2 event: bill paid / referral] --> pp[PointsPosting]\n  admin[Admin adjustment] --> pp\n  pp --> ev[pointsPosted event]\n  ev --> tier[Tier re-evaluation]\n  tier --> smt[SchemeMemberTier]",
          "caption": "v2 billing and referral events (or an admin) create point postings; each posting triggers a tier re-evaluation."
        }
      ],
      "notes": [
        {
          "kind": "legacy",
          "body": "Fed entirely by platform v2 events; nothing in v3 uses it. Documented here so nobody rediscovers it and wonders. Its future (repatriate to v2 or decommission) is tracked in the consolidation plan."
        }
      ],
      "events": {
        "publishes": [
          {
            "name": "incentive-service/schemeMember.pointsPosted",
            "service": "incentive-service",
            "live": "silent"
          },
          {
            "name": "incentive-service/schemeMemberTier.expired",
            "service": "incentive-service",
            "live": "active"
          },
          {
            "name": "incentive-service/schemeMemberTier.upgraded",
            "service": "incentive-service",
            "live": "silent"
          }
        ],
        "consumes": [
          {
            "name": "app/case/bills/bill.paid",
            "service": "incentive-service",
            "live": "silent"
          },
          {
            "name": "app/incentive/scheme-member/scheme-id.updated",
            "service": "incentive-service",
            "live": "silent"
          },
          {
            "name": "app/referrals/payment.created",
            "service": "incentive-service",
            "live": "silent"
          },
          {
            "name": "incentive-service/schemeMember.pointsPosted",
            "service": "incentive-service",
            "live": "silent"
          },
          {
            "name": "incentive-service/schemeMemberTier.expired",
            "service": "incentive-service",
            "live": "active"
          },
          {
            "name": "incentive-service/schemeMemberTier.triggerExpiredCron",
            "service": "incentive-service",
            "live": "silent"
          }
        ]
      },
      "servicesDetail": [
        {
          "name": "incentive-service",
          "group": "services",
          "db": "incentive-db",
          "enums": [
            {
              "name": "ACTION_SOURCE",
              "file": "services/incentive-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "ADMIN",
                  "doc": null
                },
                {
                  "name": "SYSTEM",
                  "doc": null
                }
              ]
            },
            {
              "name": "EventType",
              "file": "services/incentive-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "aggregate",
                  "doc": null
                },
                {
                  "name": "ephemeral",
                  "doc": null
                }
              ]
            },
            {
              "name": "PointsPostingReason",
              "file": "services/incentive-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "BILLING",
                  "doc": null
                },
                {
                  "name": "LAWYER_REFERRAL_BILLING",
                  "doc": null
                },
                {
                  "name": "CLIENT_REFERRAL_BILLING",
                  "doc": null
                },
                {
                  "name": "OTHER",
                  "doc": null
                }
              ]
            },
            {
              "name": "SchemeMemberTierExpiryMode",
              "file": "services/incentive-service/prisma/schema.prisma",
              "doc": null,
              "values": [
                {
                  "name": "ANNUALISED_RECALCULATE",
                  "doc": null
                },
                {
                  "name": "FIXED",
                  "doc": null
                }
              ]
            }
          ],
          "models": [
            {
              "name": "Event",
              "service": "incentive-service",
              "db": "incentive-db",
              "file": "services/incentive-service/prisma/schema.prisma",
              "line": 114,
              "idPrefix": "evt_",
              "doc": null,
              "fieldCount": 7,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "timestamp",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "type",
                  "type": "EventType",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "key",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "aggregateId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "aggregateType",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "payload",
                  "type": "Json",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "aggregateId"
              ],
              "interpreted": true,
              "tier": "legacy",
              "meaning": "The service framework's local event-store row: a keyed payload, optionally pinned to an aggregate. Plumbing shared across services, not loyalty business data.",
              "keyFields": [
                {
                  "name": "key",
                  "meaning": "event name used for lookup and replay"
                },
                {
                  "name": "aggregateId",
                  "meaning": "the record this event is about, when it targets one"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "PointsPosting",
              "service": "incentive-service",
              "db": "incentive-db",
              "file": "services/incentive-service/prisma/schema.prisma",
              "line": 88,
              "idPrefix": "poipos_",
              "doc": null,
              "fieldCount": 11,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "adminId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "delta",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "eventId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "reason",
                  "type": "PointsPostingReason",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "notes",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "source",
                  "type": "ACTION_SOURCE",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "schemeMember",
                  "type": "SchemeMember",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Relations",
                  "fk": true
                },
                {
                  "name": "schemeMemberId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "adminId",
                "eventId"
              ],
              "interpreted": true,
              "tier": "legacy",
              "meaning": "One entry in a member's points ledger: a signed delta with a reason — BILLING, LAWYER_REFERRAL_BILLING, CLIENT_REFERRAL_BILLING, or OTHER. Created by v2 billing/referral events or by an admin.",
              "keyFields": [
                {
                  "name": "delta",
                  "meaning": "signed points change applied to the member's total"
                },
                {
                  "name": "reason",
                  "meaning": "why the points moved: billing, a referral, or OTHER"
                },
                {
                  "name": "source",
                  "meaning": "ADMIN for manual adjustments, SYSTEM for event-driven postings"
                },
                {
                  "name": "eventId",
                  "meaning": "the inbound v2 event that produced this posting, for idempotency and audit"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "SchemeMember",
              "service": "incentive-service",
              "db": "incentive-db",
              "file": "services/incentive-service/prisma/schema.prisma",
              "line": 34,
              "idPrefix": "schmem_",
              "doc": null,
              "fieldCount": 11,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "schemeId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "externalLawyerId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "currentPointsTotal",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "anniversaryDate",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "currentSchemeTier",
                  "type": "SchemeTier",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Relations",
                  "fk": true
                },
                {
                  "name": "currentSchemeTierId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "pointsPostings",
                  "type": "PointsPosting",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "schemeMemberTiers",
                  "type": "SchemeMemberTier",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "schemeId",
                "externalLawyerId"
              ],
              "interpreted": true,
              "tier": "legacy",
              "meaning": "A lawyer enrolled in a loyalty scheme, carrying their running points total and the tier they currently sit in.",
              "keyFields": [
                {
                  "name": "externalLawyerId",
                  "meaning": "the v2 lawyer this membership belongs to"
                },
                {
                  "name": "currentPointsTotal",
                  "meaning": "running sum of the member's point postings"
                },
                {
                  "name": "currentSchemeTierId",
                  "meaning": "the tier the member currently holds"
                },
                {
                  "name": "anniversaryDate",
                  "meaning": "membership anniversary used for annualised tier recalculation"
                }
              ],
              "references": [
                {
                  "field": "externalLawyerId",
                  "target": "people",
                  "meaning": "the lawyer earning the points (a v2 identity, not a v3 one)"
                }
              ],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "SchemeMemberTier",
              "service": "incentive-service",
              "db": "incentive-db",
              "file": "services/incentive-service/prisma/schema.prisma",
              "line": 68,
              "idPrefix": "schmt_",
              "doc": null,
              "fieldCount": 14,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "adminId",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "expiresAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "expiryMode",
                  "type": "SchemeMemberTierExpiryMode",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "grantedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "grantedBy",
                  "type": "ACTION_SOURCE",
                  "list": false,
                  "optional": false,
                  "kind": "enum",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "notes",
                  "type": "String",
                  "list": false,
                  "optional": true,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "recalculationWindow",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "schemeMember",
                  "type": "SchemeMember",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Relations",
                  "fk": true
                },
                {
                  "name": "schemeMemberId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "schemeTier",
                  "type": "SchemeTier",
                  "list": false,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": true
                },
                {
                  "name": "schemeTierId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "adminId"
              ],
              "interpreted": true,
              "tier": "legacy",
              "meaning": "A tier grant for a member — who holds which tier, whether an ADMIN or the SYSTEM granted it, and when it expires. Expiry either recalculates annually (ANNUALISED_RECALCULATE) or is FIXED.",
              "keyFields": [
                {
                  "name": "grantedBy",
                  "meaning": "ADMIN (manual override) or SYSTEM (earned by points)"
                },
                {
                  "name": "expiryMode",
                  "meaning": "ANNUALISED_RECALCULATE re-evaluates on expiry; FIXED just lapses"
                },
                {
                  "name": "expiresAt",
                  "meaning": "when this grant lapses and the cron re-evaluates the member"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            },
            {
              "name": "SchemeTier",
              "service": "incentive-service",
              "db": "incentive-db",
              "file": "services/incentive-service/prisma/schema.prisma",
              "line": 19,
              "idPrefix": "schtie_",
              "doc": null,
              "fieldCount": 9,
              "fields": [
                {
                  "name": "id",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": true,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "schemeId",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "name",
                  "type": "String",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "pointsThreshold",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "tierOrder",
                  "type": "Int",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "schemeMembers",
                  "type": "SchemeMember",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": "Relations",
                  "fk": false
                },
                {
                  "name": "schemeMemberTiers",
                  "type": "SchemeMemberTier",
                  "list": true,
                  "optional": false,
                  "kind": "relation",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "createdAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                },
                {
                  "name": "updatedAt",
                  "type": "DateTime",
                  "list": false,
                  "optional": false,
                  "kind": "scalar",
                  "isId": false,
                  "isUnique": false,
                  "doc": null,
                  "fk": false
                }
              ],
              "externalRefs": [
                "schemeId"
              ],
              "interpreted": true,
              "tier": "legacy",
              "meaning": "One rung of a loyalty scheme's ladder — a named tier a lawyer reaches by crossing its points threshold. The scheme itself lives in v2; only its id is stored here.",
              "keyFields": [
                {
                  "name": "schemeId",
                  "meaning": "the v2 scheme this tier belongs to — no Scheme table exists in this database"
                },
                {
                  "name": "pointsThreshold",
                  "meaning": "points a member needs to qualify for this tier"
                },
                {
                  "name": "tierOrder",
                  "meaning": "position in the ladder, lowest to highest"
                }
              ],
              "references": [],
              "lifecycle": null,
              "grouped": []
            }
          ]
        }
      ]
    }
  ]
}