{
  "$schema": "https://sous.pras.ai/schema/v0/run.schema.json",
  "sous_version": "0.7.0",
  "run_id": "beef-bourguignon--home-kitchen",
  "schedule": {
    "recipe": "sous.example/beef-bourguignon",
    "kitchen": "sous.example/home-kitchen",
    "title": "Beef Bourguignon",
    "makespan_s": 16830,
    "digest": "sha256:cb9d00a425e68e96"
  },
  "executor": {
    "name": "sous_run",
    "version": "1.0",
    "clock": "simulated"
  },
  "status": "completed_with_deviations",
  "makespan_s": 16830,
  "steps": [
    {
      "id": "t_preheat_pot",
      "op": "preheat",
      "status": "done",
      "planned_start_s": 0,
      "planned_end_s": 600,
      "actual_start_s": 0,
      "actual_end_s": 250,
      "ended_by": "until_satisfied",
      "start_delta_s": 0,
      "duration_delta_s": -350
    },
    {
      "id": "t_split_wine",
      "op": "portion",
      "status": "done",
      "planned_start_s": 0,
      "planned_end_s": 60,
      "actual_start_s": 0,
      "actual_end_s": 60,
      "ended_by": "planned_duration",
      "start_delta_s": 0,
      "duration_delta_s": 0
    },
    {
      "id": "t_bundle",
      "op": "bundle",
      "status": "done",
      "planned_start_s": 60,
      "planned_end_s": 120,
      "actual_start_s": 60,
      "actual_end_s": 120,
      "ended_by": "planned_duration",
      "start_delta_s": 0,
      "duration_delta_s": 0
    },
    {
      "id": "t_cut_beef",
      "op": "cut",
      "status": "done",
      "planned_start_s": 120,
      "planned_end_s": 240,
      "actual_start_s": 120,
      "actual_end_s": 240,
      "ended_by": "planned_duration",
      "start_delta_s": 0,
      "duration_delta_s": 0
    },
    {
      "id": "t_season_beef",
      "op": "season",
      "status": "done",
      "planned_start_s": 240,
      "planned_end_s": 260,
      "actual_start_s": 240,
      "actual_end_s": 260,
      "ended_by": "planned_duration",
      "start_delta_s": 0,
      "duration_delta_s": 0
    },
    {
      "id": "prep_0_peel",
      "op": "peel",
      "status": "done",
      "planned_start_s": 260,
      "planned_end_s": 380,
      "actual_start_s": 260,
      "actual_end_s": 380,
      "ended_by": "planned_duration",
      "start_delta_s": 0,
      "duration_delta_s": 0
    },
    {
      "id": "prep_1_cut_chopped",
      "op": "cut",
      "status": "done",
      "planned_start_s": 380,
      "planned_end_s": 500,
      "actual_start_s": 380,
      "actual_end_s": 500,
      "ended_by": "planned_duration",
      "start_delta_s": 0,
      "duration_delta_s": 0
    },
    {
      "id": "t_sear",
      "op": "sear",
      "status": "done",
      "planned_start_s": 600,
      "planned_end_s": 2400,
      "actual_start_s": 600,
      "actual_end_s": 2400,
      "ended_by": "planned_duration",
      "start_delta_s": 0,
      "duration_delta_s": 0
    },
    {
      "id": "t_hold_beef",
      "op": "hold",
      "status": "done",
      "planned_start_s": 2400,
      "planned_end_s": 3000,
      "actual_start_s": 2400,
      "actual_end_s": 3000,
      "ended_by": "planned_duration",
      "start_delta_s": 0,
      "duration_delta_s": 0
    },
    {
      "id": "t_sweat",
      "op": "saute",
      "status": "done",
      "planned_start_s": 2400,
      "planned_end_s": 3300,
      "actual_start_s": 2400,
      "actual_end_s": 3300,
      "ended_by": "planned_duration",
      "start_delta_s": 0,
      "duration_delta_s": 0
    },
    {
      "id": "t_flour",
      "op": "coat",
      "status": "done",
      "planned_start_s": 3300,
      "planned_end_s": 3480,
      "actual_start_s": 3300,
      "actual_end_s": 3480,
      "ended_by": "planned_duration",
      "start_delta_s": 0,
      "duration_delta_s": 0
    },
    {
      "id": "t_deglaze",
      "op": "deglaze",
      "status": "done",
      "planned_start_s": 3480,
      "planned_end_s": 3600,
      "actual_start_s": 3480,
      "actual_end_s": 3600,
      "ended_by": "planned_duration",
      "start_delta_s": 0,
      "duration_delta_s": 0
    },
    {
      "id": "t_boil_wine",
      "op": "boil",
      "status": "done",
      "planned_start_s": 3600,
      "planned_end_s": 4200,
      "actual_start_s": 3600,
      "actual_end_s": 4200,
      "ended_by": "planned_duration",
      "start_delta_s": 0,
      "duration_delta_s": 0
    },
    {
      "id": "t_charge",
      "op": "transfer",
      "status": "done",
      "planned_start_s": 4200,
      "planned_end_s": 4230,
      "actual_start_s": 4200,
      "actual_end_s": 4230,
      "ended_by": "planned_duration",
      "start_delta_s": 0,
      "duration_delta_s": 0
    },
    {
      "id": "t_braise",
      "op": "braise",
      "status": "done",
      "planned_start_s": 4230,
      "planned_end_s": 16830,
      "actual_start_s": 4230,
      "actual_end_s": 16830,
      "ended_by": "planned_duration",
      "start_delta_s": 0,
      "duration_delta_s": 0
    }
  ],
  "events": [
    {
      "seq": 0,
      "at_s": 0,
      "type": "run_started",
      "detail": "Beef Bourguignon in sous.example/home-kitchen"
    },
    {
      "seq": 1,
      "at_s": 0,
      "type": "step_started",
      "step": "t_split_wine",
      "detail": "Divide the wine."
    },
    {
      "seq": 2,
      "at_s": 0,
      "type": "step_started",
      "step": "t_preheat_pot",
      "detail": "Set the pot over high heat until it is hot enough to sear."
    },
    {
      "seq": 3,
      "at_s": 60,
      "type": "step_finished",
      "step": "t_split_wine",
      "detail": "ended by planned_duration"
    },
    {
      "seq": 4,
      "at_s": 60,
      "type": "step_started",
      "step": "t_bundle",
      "detail": "Tie the basil, rosemary and thyme together with string."
    },
    {
      "seq": 5,
      "at_s": 120,
      "type": "step_finished",
      "step": "t_bundle",
      "detail": "ended by planned_duration"
    },
    {
      "seq": 6,
      "at_s": 120,
      "type": "step_started",
      "step": "t_cut_beef",
      "detail": "Cut beef into large, 5 cm chunks."
    },
    {
      "seq": 7,
      "at_s": 240,
      "type": "step_finished",
      "step": "t_cut_beef",
      "detail": "ended by planned_duration"
    },
    {
      "seq": 8,
      "at_s": 240,
      "type": "step_started",
      "step": "t_season_beef",
      "detail": "Season with salt, pepper and olive oil."
    },
    {
      "seq": 9,
      "at_s": 250,
      "type": "observation",
      "step": "t_preheat_pot",
      "observation": {
        "observable": "equipment_temperature",
        "value": 205,
        "unit": "Cel",
        "satisfied": true,
        "source": "sensor"
      }
    },
    {
      "seq": 10,
      "at_s": 250,
      "type": "deviation",
      "step": "t_preheat_pot",
      "deviation": {
        "kind": "ran_short",
        "planned_s": 600,
        "actual_s": 250,
        "delta_s": -350,
        "detail": "t_preheat_pot took 250s against a planned 600s"
      }
    },
    {
      "seq": 11,
      "at_s": 250,
      "type": "step_finished",
      "step": "t_preheat_pot",
      "detail": "ended by until_satisfied"
    },
    {
      "seq": 12,
      "at_s": 260,
      "type": "step_finished",
      "step": "t_season_beef",
      "detail": "ended by planned_duration"
    },
    {
      "seq": 13,
      "at_s": 260,
      "type": "step_started",
      "step": "prep_0_peel",
      "detail": "peel: onion (peeled)"
    },
    {
      "seq": 14,
      "at_s": 380,
      "type": "step_finished",
      "step": "prep_0_peel",
      "detail": "ended by planned_duration"
    },
    {
      "seq": 15,
      "at_s": 380,
      "type": "step_started",
      "step": "prep_1_cut_chopped",
      "detail": "cut chopped: onion (peeled)"
    },
    {
      "seq": 16,
      "at_s": 500,
      "type": "step_finished",
      "step": "prep_1_cut_chopped",
      "detail": "ended by planned_duration"
    },
    {
      "seq": 17,
      "at_s": 600,
      "type": "step_started",
      "step": "t_sear",
      "detail": "Cook beef a small amount at a time until golden brown on the outside."
    },
    {
      "seq": 18,
      "at_s": 2400,
      "type": "observation",
      "step": "t_sear",
      "observation": {
        "observable": "facet",
        "facet": "browning",
        "satisfied": true,
        "source": "assumed",
        "note": "no observation was recorded; the planned duration was used"
      }
    },
    {
      "seq": 19,
      "at_s": 2400,
      "type": "step_finished",
      "step": "t_sear",
      "detail": "ended by planned_duration"
    },
    {
      "seq": 20,
      "at_s": 2400,
      "type": "step_started",
      "step": "t_hold_beef",
      "detail": "Remove each portion as it's done and set aside."
    },
    {
      "seq": 21,
      "at_s": 2400,
      "type": "step_started",
      "step": "t_sweat",
      "detail": "Add onions and garlic to the same pot and cook till golden brown."
    },
    {
      "seq": 22,
      "at_s": 3000,
      "type": "step_finished",
      "step": "t_hold_beef",
      "detail": "ended by planned_duration"
    },
    {
      "seq": 23,
      "at_s": 3300,
      "type": "observation",
      "step": "t_sweat",
      "observation": {
        "observable": "facet",
        "facet": "browning",
        "satisfied": true,
        "source": "assumed",
        "note": "no observation was recorded; the planned duration was used"
      }
    },
    {
      "seq": 24,
      "at_s": 3300,
      "type": "step_finished",
      "step": "t_sweat",
      "detail": "ended by planned_duration"
    },
    {
      "seq": 25,
      "at_s": 3300,
      "type": "step_started",
      "step": "t_flour",
      "detail": "Sprinkle with 2 tablespoons of flour. Cook a few minutes longer."
    },
    {
      "seq": 26,
      "at_s": 3480,
      "type": "step_finished",
      "step": "t_flour",
      "detail": "ended by planned_duration"
    },
    {
      "seq": 27,
      "at_s": 3480,
      "type": "step_started",
      "step": "t_deglaze",
      "detail": "Add 1-2 cups of red wine."
    },
    {
      "seq": 28,
      "at_s": 3600,
      "type": "step_finished",
      "step": "t_deglaze",
      "detail": "ended by planned_duration"
    },
    {
      "seq": 29,
      "at_s": 3600,
      "type": "step_started",
      "step": "t_boil_wine",
      "detail": "Bring wine to a boil then simmer for 5 minutes."
    },
    {
      "seq": 30,
      "at_s": 4200,
      "type": "observation",
      "step": "t_boil_wine",
      "observation": {
        "observable": "elapsed",
        "satisfied": true,
        "source": "assumed",
        "note": "no observation was recorded; the planned duration was used"
      }
    },
    {
      "seq": 31,
      "at_s": 4200,
      "type": "step_finished",
      "step": "t_boil_wine",
      "detail": "ended by planned_duration"
    },
    {
      "seq": 32,
      "at_s": 4200,
      "type": "step_started",
      "step": "t_charge",
      "detail": "Add beef, carrots, herbs and mushrooms, then another couple cups of red wine and water enough to cover."
    },
    {
      "seq": 33,
      "at_s": 4230,
      "type": "step_finished",
      "step": "t_charge",
      "detail": "ended by planned_duration"
    },
    {
      "seq": 34,
      "at_s": 4230,
      "type": "step_started",
      "step": "t_braise",
      "detail": "Cook for 2-3 hours, stirring occasionally. Remove surface scum as required."
    },
    {
      "seq": 35,
      "at_s": 13230,
      "type": "observation",
      "step": "t_braise",
      "observation": {
        "observable": "internal_temperature",
        "value": 88,
        "unit": "Cel",
        "satisfied": true,
        "source": "sensor",
        "note": "probe in the centre of a beef chunk; the critical control point"
      }
    },
    {
      "seq": 36,
      "at_s": 16830,
      "type": "observation",
      "step": "t_braise",
      "observation": {
        "observable": "facet",
        "facet": "texture",
        "satisfied": true,
        "source": "assumed",
        "note": "no observation was recorded; the planned duration was used"
      }
    },
    {
      "seq": 37,
      "at_s": 16830,
      "type": "observation",
      "step": "t_braise",
      "observation": {
        "observable": "elapsed",
        "satisfied": true,
        "source": "assumed",
        "note": "no observation was recorded; the planned duration was used"
      }
    },
    {
      "seq": 38,
      "at_s": 16830,
      "type": "step_finished",
      "step": "t_braise",
      "detail": "ended by planned_duration"
    },
    {
      "seq": 39,
      "at_s": 16830,
      "type": "run_finished",
      "detail": "15 steps"
    }
  ],
  "warnings": [
    "t_sear: ended on the clock alone; its `until` was never observed",
    "t_sweat: ended on the clock alone; its `until` was never observed",
    "t_boil_wine: ended on the clock alone; its `until` was never observed",
    "t_braise: ended on the clock alone; its `until` was never observed"
  ]
}
