{
  "name": "Daily construction report capture",
  "description": "Extract project name, report date, weather text from daily report. 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": "project_name",
      "label": "Project Name",
      "type": "string",
      "required": false,
      "description": "Project name exactly as printed in this daily report. Preserve identifiers and qualifiers; do not look up or infer missing information."
    },
    {
      "key": "report_date",
      "label": "Report Date",
      "type": "date",
      "required": false,
      "description": "Report date explicitly printed in this daily report. Keep it distinct from other dates; leave it empty if no calendar date is stated."
    },
    {
      "key": "weather_text",
      "label": "Weather Text",
      "type": "string",
      "required": false,
      "description": "Weather text exactly as printed in this daily report. Preserve identifiers and qualifiers; do not look up or infer missing information."
    },
    {
      "key": "workforce_rows",
      "label": "Workforce Rows",
      "type": "array",
      "required": false,
      "description": "Every visible workforce rows row in this daily report. Preserve separate rows, labels and qualifiers; do not merge entries or reconstruct missing ones.",
      "items": {
        "type": "object",
        "fields": [
          {
            "key": "trade_name",
            "label": "Trade Name",
            "type": "string",
            "required": false,
            "description": "Trade name exactly as printed in this daily report. Preserve identifiers and qualifiers; do not look up or infer missing information."
          },
          {
            "key": "subcontractor_name",
            "label": "Subcontractor Name",
            "type": "string",
            "required": false,
            "description": "Subcontractor name exactly as printed in this daily report. Preserve identifiers and qualifiers; do not look up or infer missing information."
          },
          {
            "key": "headcount",
            "label": "Headcount",
            "type": "number",
            "required": false,
            "description": "Headcount as reported in this daily report. Preserve the labeled measure and its unit; do not estimate it."
          },
          {
            "key": "hours",
            "label": "Hours",
            "type": "number",
            "required": false,
            "description": "Hours as reported in this daily report. Preserve the labeled measure and its unit; do not estimate it."
          }
        ]
      }
    },
    {
      "key": "equipment_rows",
      "label": "Equipment Rows",
      "type": "array",
      "required": false,
      "description": "Every visible equipment rows row in this daily report. Preserve separate rows, labels and qualifiers; do not merge entries or reconstruct missing ones.",
      "items": {
        "type": "object",
        "fields": [
          {
            "key": "equipment_reference",
            "label": "Equipment Reference",
            "type": "string",
            "required": false,
            "description": "Equipment reference exactly as printed in this daily report. 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 daily report. 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 daily report. Preserve the labeled measure and its unit; do not estimate it."
          }
        ]
      }
    },
    {
      "key": "progress_notes_text",
      "label": "Progress Notes Text",
      "type": "string",
      "required": false,
      "description": "Progress notes text exactly as printed in this daily report. Preserve identifiers and qualifiers; do not look up or infer missing information."
    }
  ]
}