{
  "name": "Contractor timesheet approval inputs",
  "description": "Extract contractor name, project name, period start from contractor timesheet. 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": "contractor_name",
      "label": "Contractor Name",
      "type": "string",
      "required": false,
      "description": "Contractor name exactly as printed in this contractor timesheet. Preserve identifiers and qualifiers; do not look up or infer missing information."
    },
    {
      "key": "project_name",
      "label": "Project Name",
      "type": "string",
      "required": false,
      "description": "Project name exactly as printed in this contractor timesheet. Preserve identifiers and qualifiers; do not look up or infer missing information."
    },
    {
      "key": "period_start",
      "label": "Period Start",
      "type": "date",
      "required": false,
      "description": "Opening date printed for the reporting period, separate from the issue date."
    },
    {
      "key": "period_end",
      "label": "Period End",
      "type": "date",
      "required": false,
      "description": "Closing date printed for the reporting period, separate from payment or posting dates."
    },
    {
      "key": "time_rows",
      "label": "Time Rows",
      "type": "array",
      "required": false,
      "description": "Every visible time rows row in this contractor timesheet. Preserve separate rows, labels and qualifiers; do not merge entries or reconstruct missing ones.",
      "items": {
        "type": "object",
        "fields": [
          {
            "key": "work_date",
            "label": "Work Date",
            "type": "date",
            "required": false,
            "description": "Work date explicitly printed in this contractor timesheet. Keep it distinct from other dates; leave it empty if no calendar date is stated."
          },
          {
            "key": "project_reference",
            "label": "Project Reference",
            "type": "string",
            "required": false,
            "description": "Project reference exactly as printed in this contractor timesheet. Preserve identifiers and qualifiers; do not look up or infer missing information."
          },
          {
            "key": "cost_code",
            "label": "Cost Code",
            "type": "string",
            "required": false,
            "description": "Cost code exactly as printed in this contractor timesheet. Preserve identifiers and qualifiers; do not look up or infer missing information."
          },
          {
            "key": "task_text",
            "label": "Task Text",
            "type": "string",
            "required": false,
            "description": "Task text exactly as printed in this contractor timesheet. Preserve identifiers and qualifiers; do not look up or infer missing information."
          },
          {
            "key": "regular_hours",
            "label": "Regular Hours",
            "type": "number",
            "required": false,
            "description": "Regular hours as reported in this contractor timesheet. Preserve the labeled measure and its unit; do not estimate it."
          },
          {
            "key": "overtime_hours",
            "label": "Overtime Hours",
            "type": "number",
            "required": false,
            "description": "Overtime hours as reported in this contractor timesheet. 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": "total_hours",
      "label": "Total Hours",
      "type": "number",
      "required": false,
      "description": "Total hours as reported in this contractor timesheet. 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."
    }
  ]
}