==================
Basic schedule
==================

schedule WorkDay {
    block morning {
        08:00 -> 12:00
        action: Work
    }
}

---

(source_file
  (declaration
    (schedule_declaration
      name: (identifier)
      body: (schedule_body
        (schedule_block
          name: (identifier)
          time_range: (time_range
            start: (time)
            end: (time))
          (block_field
            name: (identifier)
            value: (identifier)))))))

==================
Schedule with modifies
==================

schedule BakerDay modifies WorkDay {
    block early_prep {
        05:00 -> 08:00
    }
}

---

(source_file
  (declaration
    (schedule_declaration
      name: (identifier)
      modifies: (identifier)
      body: (schedule_body
        (schedule_block
          name: (identifier)
          time_range: (time_range
            start: (time)
            end: (time)))))))

==================
Schedule with override
==================

schedule CustomDay modifies BaseDay {
    override work {
        06:00 -> 14:00
        intensity: "high"
    }
}

---

(source_file
  (declaration
    (schedule_declaration
      name: (identifier)
      modifies: (identifier)
      body: (schedule_body
        (override_block
          name: (identifier)
          time_range: (time_range
            start: (time)
            end: (time))
          (block_field
            name: (identifier)
            value: (string)))))))

==================
Schedule with recurrence
==================

schedule WeeklySchedule {
    recurrence MarketDay on Saturday {
        block market {
            06:00 -> 14:00
        }
    }
}

---

(source_file
  (declaration
    (schedule_declaration
      name: (identifier)
      body: (schedule_body
        (recurrence_block
          name: (identifier)
          day: (identifier)
          (schedule_block
            name: (identifier)
            time_range: (time_range
              start: (time)
              end: (time))))))))
