{
  "name": "Litigation invoice expense capture",
  "description": "Extract law firm name, client name, matter reference from law firm bill. Start with an editable schema, inspect JSON and review exceptions before your system handoff.",
  "prompt_additions": "Extract only information explicitly present in this document. Do not infer missing values, verify authenticity, make business decisions, or compare other documents. Preserve identifiers as strings. Return amounts as numbers and dates as YYYY-MM-DD. Review and set required fields for your process before using this schema in production.",
  "fields": [
    {
      "key": "law_firm_name",
      "label": "Law Firm Name",
      "type": "string",
      "required": false,
      "description": "Law firm name exactly as printed in this law firm bill. Preserve identifiers and qualifiers; do not look up or infer missing information."
    },
    {
      "key": "client_name",
      "label": "Client Name",
      "type": "string",
      "required": false,
      "description": "Client name exactly as printed in this law firm bill. Preserve identifiers and qualifiers; do not look up or infer missing information."
    },
    {
      "key": "matter_reference",
      "label": "Matter Reference",
      "type": "string",
      "required": false,
      "description": "Matter reference exactly as printed in this law firm bill. Preserve identifiers and qualifiers; do not look up or infer missing information."
    },
    {
      "key": "invoice_reference",
      "label": "Invoice Reference",
      "type": "string",
      "required": false,
      "description": "Invoice reference exactly as printed in this law firm bill. Preserve identifiers and qualifiers; do not look up or infer missing information."
    },
    {
      "key": "invoice_date",
      "label": "Invoice Date",
      "type": "date",
      "required": false,
      "description": "Invoice date explicitly printed in this law firm bill. Keep it distinct from other dates; leave it empty if no calendar date is stated."
    },
    {
      "key": "time_entries",
      "label": "Time Entries",
      "type": "array",
      "required": false,
      "description": "Every visible time entries row in this law firm bill. Preserve separate rows, labels and qualifiers; do not merge entries or reconstruct missing ones.",
      "items": {
        "type": "object",
        "fields": [
          {
            "key": "service_date",
            "label": "Service Date",
            "type": "date",
            "required": false,
            "description": "Service date explicitly printed in this law firm bill. Keep it distinct from other dates; leave it empty if no calendar date is stated."
          },
          {
            "key": "timekeeper_name",
            "label": "Timekeeper Name",
            "type": "string",
            "required": false,
            "description": "Timekeeper name exactly as printed in this law firm bill. Preserve identifiers and qualifiers; do not look up or infer missing information."
          },
          {
            "key": "task_code",
            "label": "Task Code",
            "type": "string",
            "required": false,
            "description": "Task code exactly as printed in this law firm bill. Preserve identifiers and qualifiers; do not look up or infer missing information."
          },
          {
            "key": "description",
            "label": "Description",
            "type": "string",
            "required": false,
            "description": "Description exactly as printed in this law firm bill. Preserve identifiers and qualifiers; do not look up or infer missing information."
          },
          {
            "key": "hours",
            "label": "Hours",
            "type": "number",
            "required": false,
            "description": "Hours as reported in this law firm bill. Preserve the labeled measure and its unit; do not estimate it."
          },
          {
            "key": "stated_rate",
            "label": "Stated Rate",
            "type": "currency",
            "required": false,
            "description": "Rate printed in the source. Preserve its stated unit or rate basis separately."
          },
          {
            "key": "amount",
            "label": "Amount",
            "type": "currency",
            "required": false,
            "description": "Amount explicitly labeled in this law firm bill. Preserve its sign and stated currency; do not calculate a missing amount."
          }
        ]
      }
    },
    {
      "key": "expense_rows",
      "label": "Expense Rows",
      "type": "array",
      "required": false,
      "description": "Every visible expense rows row in this law firm bill. Preserve separate rows, labels and qualifiers; do not merge entries or reconstruct missing ones.",
      "items": {
        "type": "object",
        "fields": [
          {
            "key": "expense_date",
            "label": "Expense Date",
            "type": "date",
            "required": false,
            "description": "Expense date explicitly printed in this law firm bill. Keep it distinct from other dates; leave it empty if no calendar date is stated."
          },
          {
            "key": "description",
            "label": "Description",
            "type": "string",
            "required": false,
            "description": "Description exactly as printed in this law firm bill. Preserve identifiers and qualifiers; do not look up or infer missing information."
          },
          {
            "key": "amount",
            "label": "Amount",
            "type": "currency",
            "required": false,
            "description": "Amount explicitly labeled in this law firm bill. Preserve its sign and stated currency; do not calculate a missing amount."
          }
        ]
      }
    },
    {
      "key": "stated_total",
      "label": "Stated Total",
      "type": "currency",
      "required": false,
      "description": "Stated total explicitly labeled in this law firm bill. Preserve its sign and stated currency; do not calculate a missing amount."
    }
  ]
}