{
  "format": "makespan.v2",
  "start_date": "2026-10-14",
  "shift_starts": ["06:00", "14:00"],
  "release_mode": "hard",
  "due_mode": "soft",
  "machines": [
    { "code": "TOK-1", "name": "Tokarka 1" },
    { "code": "TOK-2", "name": "Tokarka 2" },
    { "code": "FRZ-1", "name": "Frezarka" }
  ],
  "jobs": [
    {
      "code": "ZP-001", "name": "Wałek A", "due_date": "2026-10-20", "penalty": 2,
      "operations": [
        { "code": "10", "name": "Toczenie", "variants": [ { "machine": "TOK-1", "minutes": 45 }, { "machine": "TOK-2", "minutes": 50 } ] },
        { "code": "20", "name": "Frezowanie", "variants": [ { "machine": "FRZ-1", "minutes": 30 } ] }
      ]
    },
    {
      "code": "ZP-002", "name": "Obudowa B", "release_date": "2026-10-15",
      "operations": [
        { "code": "10", "name": "Frezowanie", "variants": [ { "machine": "FRZ-1", "minutes": 60 } ] }
      ]
    }
  ]
}
