- id: purchases
  name: Purchases and expenses
  document_types:
  - id: receipt
    fields:
      merchant: string
      customer: string
      purchase_time: HH:MM
      currency: ISO 4217
      items: 'array<{description: string, quantity: integer, unit_price: decimal string, line_total: decimal string}>'
      subtotal: decimal string
      tax_rate: decimal string
      tax: decimal string
      total: decimal string
      payment_method: string
  - id: invoice
    fields:
      supplier: string
      customer: string
      due_date: ISO date
      currency: ISO 4217
      items: 'array<{description: string, quantity: integer, unit_price: decimal string, line_total: decimal string}>'
      subtotal: decimal string
      tax_rate: decimal string
      tax: decimal string
      total: decimal string
      payment_terms: string
  - id: order_confirmation
    fields:
      supplier: string
      customer: string
      delivery_date: ISO date
      currency: ISO 4217
      items: 'array<{description: string, quantity: integer, unit_price: decimal string, line_total: decimal string}>'
      subtotal: decimal string
      tax_rate: decimal string
      tax: decimal string
      total: decimal string
      delivery_instructions: string
  common_document_fields:
    id: unique string
    type: document_types[].id
    title: string
    issued_on: ISO date
    language: BCP 47
    fictional: boolean
    page_size_mm: '[width, height]'
    page_count: integer
    pdf: relative path
    text: relative path
    data: object matching the document type fields
    presentation: 'object<{document_reference: string, issuer: string, contact_email: string, postal_address: string,
      design: string}>'
  schema_notes: All listed fields are required. Money is stored as decimal strings. Monetary line totals and tax
    are rounded to two decimal places. All entities and content are fictional. All dates use YYYY-MM-DD.
- id: travel
  name: Travel and reservations
  document_types:
  - id: hotel_reservation
    fields:
      hotel: string
      guest: string
      city: string
      check_in: ISO date
      check_out: ISO date
      nights: integer
      guests: integer
      room: string
      nightly_rate: decimal string
      city_tax_per_person_night: decimal string
      room_total: decimal string
      city_tax_total: decimal string
      total: decimal string
      currency: ISO 4217
      cancellation_deadline: ISO date
      notes: array<string>
  - id: travel_itinerary
    fields:
      travellers: array<string>
      destination: string
      start_date: ISO date
      end_date: ISO date
      days: 'array<{date: ISO date, heading: string, activities: array<{time: HH:MM, activity: string, location:
        string, notes: string}>}>'
  - id: admission_reservation
    fields:
      venue: string
      visitor: string
      city: string
      visit_date: ISO date
      entry_time: HH:MM
      admission: string
      quantity: integer
      unit_price: decimal string
      total: decimal string
      currency: ISO 4217
      instructions: array<string>
  common_document_fields:
    id: unique string
    type: document_types[].id
    title: string
    issued_on: ISO date
    language: BCP 47
    fictional: boolean
    page_size_mm: '[width, height]'
    page_count: integer
    pdf: relative path
    text: relative path
    data: object matching the document type fields
    presentation: 'object<{document_reference: string, issuer: string, contact_email: string, postal_address: string,
      design: string}>'
  schema_notes: All listed fields are required. Money is stored as decimal strings. Monetary line totals and tax
    are rounded to two decimal places. All entities and content are fictional. All dates use YYYY-MM-DD.
- id: home
  name: Home and household
  document_types:
  - id: contractor_quote
    fields:
      contractor: string
      client: string
      project: string
      valid_until: ISO date
      start_date: ISO date
      duration_working_days: integer
      currency: ISO 4217
      items: 'array<{description: string, quantity: integer, unit_price: decimal string, line_total: decimal string}>'
      subtotal: decimal string
      tax_rate: decimal string
      tax: decimal string
      total: decimal string
      assumptions: array<string>
      exclusions: array<string>
  - id: maintenance_record
    fields:
      provider: string
      resident: string
      equipment: string
      asset_reference: string
      service_date: ISO date
      next_service_date: ISO date
      checks: 'array<{check: string, result: string, observation: string}>'
      work_completed: array<string>
      recommendations: array<string>
  - id: home_inventory
    fields:
      owner: string
      room: string
      review_date: ISO date
      currency: ISO 4217
      items: 'array<{item: string, reference: string, acquired: ISO date, quantity: integer, unit_value: decimal
        string, total_value: decimal string, condition: string}>'
      total_value: decimal string
      storage_notes: array<string>
  common_document_fields:
    id: unique string
    type: document_types[].id
    title: string
    issued_on: ISO date
    language: BCP 47
    fictional: boolean
    page_size_mm: '[width, height]'
    page_count: integer
    pdf: relative path
    text: relative path
    data: object matching the document type fields
    presentation: 'object<{document_reference: string, issuer: string, contact_email: string, postal_address: string,
      design: string}>'
  schema_notes: All listed fields are required. Money is stored as decimal strings. Monetary line totals and tax
    are rounded to two decimal places. All entities and content are fictional. All dates use YYYY-MM-DD.
- id: work
  name: Work and projects
  document_types:
  - id: meeting_minutes
    fields:
      organization: string
      project: string
      meeting_date: ISO date
      start_time: HH:MM
      end_time: HH:MM
      attendees: array<string>
      chair: string
      agenda: array<string>
      discussion: 'array<{heading: string, paragraphs: array<string>}>'
      decisions: array<string>
      actions: 'array<{task: string, owner: string, due_date: ISO date}>'
      next_meeting: ISO date
  - id: project_brief
    fields:
      organization: string
      project: string
      owner: string
      deadline: ISO date
      budget: decimal string
      currency: ISO 4217
      objective: string
      audience: string
      scope: array<string>
      out_of_scope: array<string>
      milestones: 'array<{date: ISO date, deliverable: string, acceptance: string}>'
      risks: 'array<{risk: string, mitigation: string}>'
      success_criteria: array<string>
  - id: progress_report
    fields:
      organization: string
      project: string
      author: string
      period_start: ISO date
      period_end: ISO date
      status: string
      summary: string
      metrics: 'array<{measure: string, previous: string, current: string, target: string}>'
      completed: array<string>
      blockers: array<string>
      next_steps: 'array<{task: string, owner: string, due_date: ISO date}>'
  common_document_fields:
    id: unique string
    type: document_types[].id
    title: string
    issued_on: ISO date
    language: BCP 47
    fictional: boolean
    page_size_mm: '[width, height]'
    page_count: integer
    pdf: relative path
    text: relative path
    data: object matching the document type fields
    presentation: 'object<{document_reference: string, issuer: string, contact_email: string, postal_address: string,
      design: string}>'
  schema_notes: All listed fields are required. Money is stored as decimal strings. Monetary line totals and tax
    are rounded to two decimal places. All entities and content are fictional. All dates use YYYY-MM-DD.
- id: study
  name: Study and learning
  document_types:
  - id: lecture_notes
    fields:
      course: string
      author: string
      session_date: ISO date
      topic: string
      sections: 'array<{heading: string, paragraphs: array<string>}>'
      key_terms: 'array<{term: string, definition: string}>'
      review_questions: array<string>
  - id: reading_summary
    fields:
      course: string
      author: string
      source_title: string
      source_author: string
      source_year: integer
      source_status: fictional teaching text
      central_question: string
      sections: 'array<{heading: string, paragraphs: array<string>}>'
      limitations: array<string>
      discussion_questions: array<string>
  - id: worksheet
    fields:
      course: string
      student: string
      topic: string
      instructions: array<string>
      questions: 'array<{number: integer, prompt: string, working_lines: integer, answer: string}>'
      include_answer_key: boolean
  common_document_fields:
    id: unique string
    type: document_types[].id
    title: string
    issued_on: ISO date
    language: BCP 47
    fictional: boolean
    page_size_mm: '[width, height]'
    page_count: integer
    pdf: relative path
    text: relative path
    data: object matching the document type fields
    presentation: 'object<{document_reference: string, issuer: string, contact_email: string, postal_address: string,
      design: string}>'
  schema_notes: All listed fields are required. Money is stored as decimal strings. Monetary line totals and tax
    are rounded to two decimal places. All entities and content are fictional. All dates use YYYY-MM-DD.
