{
 "use_case": "privileged-call-notes",
 "title": "Custody modification call: memo, conflicts names, 0.1-hour entry and a signed record",
 "about": "A synthetic call between a family lawyer and a father who wants to change a custody schedule (fictional people; the transcript is the diarizer output of a recording voiced by Decosa house voices). The memo must cite the call, the conflicts list must carry opposing counsel, the time entry must be 0.1 hour under UTBMS A106, a run without a consent statement must be refused, and the signed record must verify and fail when changed.",
 "licence": "Synthetic call written for Decosa: every person, firm and court is fictional. Part of decosa-api, AGPL-3.0-or-later.",
 "inputs": [
  {
   "file": "inputs/transcript.txt",
   "what": "The call as [mm:ss] Role: text lines (the diarizer output with roles)."
  },
  {
   "file": "inputs/consent.json",
   "what": "The recording-consent statement: both parties in Ohio, everyone agreed on the recording."
  }
 ],
 "steps": [
  {
   "id": "notes",
   "method": "POST",
   "path": "/callnotes/notes",
   "timeout": 600,
   "body": {
    "transcript": {
     "$file": "inputs/transcript.txt"
    },
    "consent": {
     "$file": "inputs/consent.json"
    },
    "call_date": "2026-09-15",
    "duration_s": 159,
    "lang": "en"
   }
  },
  {
   "id": "noconsent",
   "method": "POST",
   "path": "/callnotes/notes",
   "expect_status": 400,
   "body": {
    "transcript": {
     "$file": "inputs/transcript.txt"
    },
    "call_date": "2026-09-15"
   }
  },
  {
   "id": "verify",
   "method": "POST",
   "path": "/record/verify",
   "auth": false,
   "body": {
    "record": {
     "$ref": "notes.record"
    }
   }
  },
  {
   "id": "tampered",
   "method": "POST",
   "path": "/record/verify",
   "auth": false,
   "body": {
    "record": {
     "$ref": "notes.record"
    }
   },
   "tamper": {
    "at": "record.statement.flagged",
    "set": 99
   }
  }
 ],
 "checks": [
  {
   "says": "the memo has at least eight facts",
   "path": "notes.memo.facts",
   "count_min": 8
  },
  {
   "says": "opposing counsel is on the conflicts list",
   "path": "notes.conflicts[name~Paskett]",
   "count_min": 1
  },
  {
   "says": "the 159-second call is a 0.1-hour entry",
   "path": "notes.time_entry.hours",
   "equals": 0.1
  },
  {
   "says": "the entry uses the client-communication code",
   "path": "notes.time_entry.utbms.code",
   "equals": "A106"
  },
  {
   "says": "the recording notice was heard on the call",
   "path": "notes.consent_heard.heard",
   "equals": true
  },
  {
   "says": "every memo line was checked against the call",
   "path": "notes.claim_check.claims",
   "min": 20
  },
  {
   "says": "a run without a consent statement is refused",
   "path": "noconsent.error",
   "contains": "consent is required"
  },
  {
   "says": "the signed record verifies",
   "path": "verify.ok",
   "equals": true
  },
  {
   "says": "a changed record fails",
   "path": "tampered.ok",
   "equals": false
  },
  {
   "says": "every model call has a signed receipt",
   "receipts": "signed",
   "min": 20
  }
 ]
}