{
  "schemaVersion": 2,
  "calculationVersion": 2,
  "templateId": "garden-28",
  "templateVersion": 2,
  "title": "Salad to beans succession",
  "status": "ready",
  "input": {
    "widthMm": 1219.2,
    "lengthMm": 2438.4,
    "fillDepthMm": 304.79999999999995,
    "sunHours": 6,
    "accessSides": "both_long",
    "units": "imperial",
    "dateMode": "example",
    "lastFrostDate": "2027-05-01",
    "firstFrostDate": null,
    "startDate": "2027-04-01",
    "ownedLiters": 0,
    "bagLiters": 40,
    "reserve": 1,
    "seedPerPlant": 2,
    "spareSeedRate": 0.1,
    "ownedLabels": 0,
    "ownedSeeds": {},
    "ownedSeedlings": {},
    "cropOverrides": {},
    "startStage": {},
    "ownedMeasure": false,
    "ownedWater": false,
    "drainageConfirmed": false
  },
  "zones": [
    {
      "zoneId": "A",
      "cropId": "leaf_lettuce",
      "x": 0,
      "y": 0,
      "w": 1,
      "h": 1,
      "phaseId": 1,
      "bedId": 0,
      "xMm": 0,
      "yMm": 0,
      "widthMm": 1219.2,
      "heightMm": 2438.4,
      "batches": 1,
      "predecessor": null
    },
    {
      "zoneId": "A-next",
      "cropId": "bush_bean",
      "x": 0,
      "y": 0,
      "w": 1,
      "h": 1,
      "phaseId": 2,
      "predecessor": "A",
      "bedId": 0,
      "xMm": 0,
      "yMm": 0,
      "widthMm": 1219.2,
      "heightMm": 2438.4,
      "batches": 1
    }
  ],
  "layout": {
    "placements": [
      {
        "id": "A-1",
        "zoneId": "A",
        "cropId": "leaf_lettuce",
        "phaseId": 1,
        "bedId": 0,
        "xMm": 152.39999999999998,
        "yMm": 152.39999999999998
      },
      {
        "id": "A-2",
        "zoneId": "A",
        "cropId": "leaf_lettuce",
        "phaseId": 1,
        "bedId": 0,
        "xMm": 457.19999999999993,
        "yMm": 152.39999999999998
      },
      {
        "id": "A-3",
        "zoneId": "A",
        "cropId": "leaf_lettuce",
        "phaseId": 1,
        "bedId": 0,
        "xMm": 761.9999999999999,
        "yMm": 152.39999999999998
      },
      {
        "id": "A-4",
        "zoneId": "A",
        "cropId": "leaf_lettuce",
        "phaseId": 1,
        "bedId": 0,
        "xMm": 1066.7999999999997,
        "yMm": 152.39999999999998
      },
      {
        "id": "A-5",
        "zoneId": "A",
        "cropId": "leaf_lettuce",
        "phaseId": 1,
        "bedId": 0,
        "xMm": 152.39999999999998,
        "yMm": 457.19999999999993
      },
      {
        "id": "A-6",
        "zoneId": "A",
        "cropId": "leaf_lettuce",
        "phaseId": 1,
        "bedId": 0,
        "xMm": 457.19999999999993,
        "yMm": 457.19999999999993
      },
      {
        "id": "A-7",
        "zoneId": "A",
        "cropId": "leaf_lettuce",
        "phaseId": 1,
        "bedId": 0,
        "xMm": 761.9999999999999,
        "yMm": 457.19999999999993
      },
      {
        "id": "A-8",
        "zoneId": "A",
        "cropId": "leaf_lettuce",
        "phaseId": 1,
        "bedId": 0,
        "xMm": 1066.7999999999997,
        "yMm": 457.19999999999993
      },
      {
        "id": "A-9",
        "zoneId": "A",
        "cropId": "leaf_lettuce",
        "phaseId": 1,
        "bedId": 0,
        "xMm": 152.39999999999998,
        "yMm": 761.9999999999999
      },
      {
        "id": "A-10",
        "zoneId": "A",
        "cropId": "leaf_lettuce",
        "phaseId": 1,
        "bedId": 0,
        "xMm": 457.19999999999993,
        "yMm": 761.9999999999999
      },
      {
        "id": "A-11",
        "zoneId": "A",
        "cropId": "leaf_lettuce",
        "phaseId": 1,
        "bedId": 0,
        "xMm": 761.9999999999999,
        "yMm": 761.9999999999999
      },
      {
        "id": "A-12",
        "zoneId": "A",
        "cropId": "leaf_lettuce",
        "phaseId": 1,
        "bedId": 0,
        "xMm": 1066.7999999999997,
        "yMm": 761.9999999999999
      },
      {
        "id": "A-13",
        "zoneId": "A",
        "cropId": "leaf_lettuce",
        "phaseId": 1,
        "bedId": 0,
        "xMm": 152.39999999999998,
        "yMm": 1066.7999999999997
      },
      {
        "id": "A-14",
        "zoneId": "A",
        "cropId": "leaf_lettuce",
        "phaseId": 1,
        "bedId": 0,
        "xMm": 457.19999999999993,
        "yMm": 1066.7999999999997
      },
      {
        "id": "A-15",
        "zoneId": "A",
        "cropId": "leaf_lettuce",
        "phaseId": 1,
        "bedId": 0,
        "xMm": 761.9999999999999,
        "yMm": 1066.7999999999997
      },
      {
        "id": "A-16",
        "zoneId": "A",
        "cropId": "leaf_lettuce",
        "phaseId": 1,
        "bedId": 0,
        "xMm": 1066.7999999999997,
        "yMm": 1066.7999999999997
      },
      {
        "id": "A-17",
        "zoneId": "A",
        "cropId": "leaf_lettuce",
        "phaseId": 1,
        "bedId": 0,
        "xMm": 152.39999999999998,
        "yMm": 1371.6
      },
      {
        "id": "A-18",
        "zoneId": "A",
        "cropId": "leaf_lettuce",
        "phaseId": 1,
        "bedId": 0,
        "xMm": 457.19999999999993,
        "yMm": 1371.6
      },
      {
        "id": "A-19",
        "zoneId": "A",
        "cropId": "leaf_lettuce",
        "phaseId": 1,
        "bedId": 0,
        "xMm": 761.9999999999999,
        "yMm": 1371.6
      },
      {
        "id": "A-20",
        "zoneId": "A",
        "cropId": "leaf_lettuce",
        "phaseId": 1,
        "bedId": 0,
        "xMm": 1066.7999999999997,
        "yMm": 1371.6
      },
      {
        "id": "A-21",
        "zoneId": "A",
        "cropId": "leaf_lettuce",
        "phaseId": 1,
        "bedId": 0,
        "xMm": 152.39999999999998,
        "yMm": 1676.3999999999996
      },
      {
        "id": "A-22",
        "zoneId": "A",
        "cropId": "leaf_lettuce",
        "phaseId": 1,
        "bedId": 0,
        "xMm": 457.19999999999993,
        "yMm": 1676.3999999999996
      },
      {
        "id": "A-23",
        "zoneId": "A",
        "cropId": "leaf_lettuce",
        "phaseId": 1,
        "bedId": 0,
        "xMm": 761.9999999999999,
        "yMm": 1676.3999999999996
      },
      {
        "id": "A-24",
        "zoneId": "A",
        "cropId": "leaf_lettuce",
        "phaseId": 1,
        "bedId": 0,
        "xMm": 1066.7999999999997,
        "yMm": 1676.3999999999996
      },
      {
        "id": "A-25",
        "zoneId": "A",
        "cropId": "leaf_lettuce",
        "phaseId": 1,
        "bedId": 0,
        "xMm": 152.39999999999998,
        "yMm": 1981.1999999999998
      },
      {
        "id": "A-26",
        "zoneId": "A",
        "cropId": "leaf_lettuce",
        "phaseId": 1,
        "bedId": 0,
        "xMm": 457.19999999999993,
        "yMm": 1981.1999999999998
      },
      {
        "id": "A-27",
        "zoneId": "A",
        "cropId": "leaf_lettuce",
        "phaseId": 1,
        "bedId": 0,
        "xMm": 761.9999999999999,
        "yMm": 1981.1999999999998
      },
      {
        "id": "A-28",
        "zoneId": "A",
        "cropId": "leaf_lettuce",
        "phaseId": 1,
        "bedId": 0,
        "xMm": 1066.7999999999997,
        "yMm": 1981.1999999999998
      },
      {
        "id": "A-29",
        "zoneId": "A",
        "cropId": "leaf_lettuce",
        "phaseId": 1,
        "bedId": 0,
        "xMm": 152.39999999999998,
        "yMm": 2285.9999999999995
      },
      {
        "id": "A-30",
        "zoneId": "A",
        "cropId": "leaf_lettuce",
        "phaseId": 1,
        "bedId": 0,
        "xMm": 457.19999999999993,
        "yMm": 2285.9999999999995
      },
      {
        "id": "A-31",
        "zoneId": "A",
        "cropId": "leaf_lettuce",
        "phaseId": 1,
        "bedId": 0,
        "xMm": 761.9999999999999,
        "yMm": 2285.9999999999995
      },
      {
        "id": "A-32",
        "zoneId": "A",
        "cropId": "leaf_lettuce",
        "phaseId": 1,
        "bedId": 0,
        "xMm": 1066.7999999999997,
        "yMm": 2285.9999999999995
      },
      {
        "id": "A-next-1",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 76.19999999999999,
        "yMm": 76.19999999999999
      },
      {
        "id": "A-next-2",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 228.59999999999997,
        "yMm": 76.19999999999999
      },
      {
        "id": "A-next-3",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 380.99999999999994,
        "yMm": 76.19999999999999
      },
      {
        "id": "A-next-4",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 533.3999999999999,
        "yMm": 76.19999999999999
      },
      {
        "id": "A-next-5",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 685.8,
        "yMm": 76.19999999999999
      },
      {
        "id": "A-next-6",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 838.1999999999998,
        "yMm": 76.19999999999999
      },
      {
        "id": "A-next-7",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 990.5999999999999,
        "yMm": 76.19999999999999
      },
      {
        "id": "A-next-8",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 1142.9999999999998,
        "yMm": 76.19999999999999
      },
      {
        "id": "A-next-9",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 76.19999999999999,
        "yMm": 228.59999999999997
      },
      {
        "id": "A-next-10",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 228.59999999999997,
        "yMm": 228.59999999999997
      },
      {
        "id": "A-next-11",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 380.99999999999994,
        "yMm": 228.59999999999997
      },
      {
        "id": "A-next-12",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 533.3999999999999,
        "yMm": 228.59999999999997
      },
      {
        "id": "A-next-13",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 685.8,
        "yMm": 228.59999999999997
      },
      {
        "id": "A-next-14",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 838.1999999999998,
        "yMm": 228.59999999999997
      },
      {
        "id": "A-next-15",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 990.5999999999999,
        "yMm": 228.59999999999997
      },
      {
        "id": "A-next-16",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 1142.9999999999998,
        "yMm": 228.59999999999997
      },
      {
        "id": "A-next-17",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 76.19999999999999,
        "yMm": 380.99999999999994
      },
      {
        "id": "A-next-18",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 228.59999999999997,
        "yMm": 380.99999999999994
      },
      {
        "id": "A-next-19",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 380.99999999999994,
        "yMm": 380.99999999999994
      },
      {
        "id": "A-next-20",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 533.3999999999999,
        "yMm": 380.99999999999994
      },
      {
        "id": "A-next-21",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 685.8,
        "yMm": 380.99999999999994
      },
      {
        "id": "A-next-22",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 838.1999999999998,
        "yMm": 380.99999999999994
      },
      {
        "id": "A-next-23",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 990.5999999999999,
        "yMm": 380.99999999999994
      },
      {
        "id": "A-next-24",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 1142.9999999999998,
        "yMm": 380.99999999999994
      },
      {
        "id": "A-next-25",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 76.19999999999999,
        "yMm": 533.3999999999999
      },
      {
        "id": "A-next-26",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 228.59999999999997,
        "yMm": 533.3999999999999
      },
      {
        "id": "A-next-27",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 380.99999999999994,
        "yMm": 533.3999999999999
      },
      {
        "id": "A-next-28",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 533.3999999999999,
        "yMm": 533.3999999999999
      },
      {
        "id": "A-next-29",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 685.8,
        "yMm": 533.3999999999999
      },
      {
        "id": "A-next-30",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 838.1999999999998,
        "yMm": 533.3999999999999
      },
      {
        "id": "A-next-31",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 990.5999999999999,
        "yMm": 533.3999999999999
      },
      {
        "id": "A-next-32",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 1142.9999999999998,
        "yMm": 533.3999999999999
      },
      {
        "id": "A-next-33",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 76.19999999999999,
        "yMm": 685.8
      },
      {
        "id": "A-next-34",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 228.59999999999997,
        "yMm": 685.8
      },
      {
        "id": "A-next-35",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 380.99999999999994,
        "yMm": 685.8
      },
      {
        "id": "A-next-36",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 533.3999999999999,
        "yMm": 685.8
      },
      {
        "id": "A-next-37",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 685.8,
        "yMm": 685.8
      },
      {
        "id": "A-next-38",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 838.1999999999998,
        "yMm": 685.8
      },
      {
        "id": "A-next-39",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 990.5999999999999,
        "yMm": 685.8
      },
      {
        "id": "A-next-40",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 1142.9999999999998,
        "yMm": 685.8
      },
      {
        "id": "A-next-41",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 76.19999999999999,
        "yMm": 838.1999999999998
      },
      {
        "id": "A-next-42",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 228.59999999999997,
        "yMm": 838.1999999999998
      },
      {
        "id": "A-next-43",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 380.99999999999994,
        "yMm": 838.1999999999998
      },
      {
        "id": "A-next-44",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 533.3999999999999,
        "yMm": 838.1999999999998
      },
      {
        "id": "A-next-45",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 685.8,
        "yMm": 838.1999999999998
      },
      {
        "id": "A-next-46",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 838.1999999999998,
        "yMm": 838.1999999999998
      },
      {
        "id": "A-next-47",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 990.5999999999999,
        "yMm": 838.1999999999998
      },
      {
        "id": "A-next-48",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 1142.9999999999998,
        "yMm": 838.1999999999998
      },
      {
        "id": "A-next-49",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 76.19999999999999,
        "yMm": 990.5999999999999
      },
      {
        "id": "A-next-50",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 228.59999999999997,
        "yMm": 990.5999999999999
      },
      {
        "id": "A-next-51",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 380.99999999999994,
        "yMm": 990.5999999999999
      },
      {
        "id": "A-next-52",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 533.3999999999999,
        "yMm": 990.5999999999999
      },
      {
        "id": "A-next-53",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 685.8,
        "yMm": 990.5999999999999
      },
      {
        "id": "A-next-54",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 838.1999999999998,
        "yMm": 990.5999999999999
      },
      {
        "id": "A-next-55",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 990.5999999999999,
        "yMm": 990.5999999999999
      },
      {
        "id": "A-next-56",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 1142.9999999999998,
        "yMm": 990.5999999999999
      },
      {
        "id": "A-next-57",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 76.19999999999999,
        "yMm": 1142.9999999999998
      },
      {
        "id": "A-next-58",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 228.59999999999997,
        "yMm": 1142.9999999999998
      },
      {
        "id": "A-next-59",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 380.99999999999994,
        "yMm": 1142.9999999999998
      },
      {
        "id": "A-next-60",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 533.3999999999999,
        "yMm": 1142.9999999999998
      },
      {
        "id": "A-next-61",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 685.8,
        "yMm": 1142.9999999999998
      },
      {
        "id": "A-next-62",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 838.1999999999998,
        "yMm": 1142.9999999999998
      },
      {
        "id": "A-next-63",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 990.5999999999999,
        "yMm": 1142.9999999999998
      },
      {
        "id": "A-next-64",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 1142.9999999999998,
        "yMm": 1142.9999999999998
      },
      {
        "id": "A-next-65",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 76.19999999999999,
        "yMm": 1295.3999999999999
      },
      {
        "id": "A-next-66",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 228.59999999999997,
        "yMm": 1295.3999999999999
      },
      {
        "id": "A-next-67",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 380.99999999999994,
        "yMm": 1295.3999999999999
      },
      {
        "id": "A-next-68",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 533.3999999999999,
        "yMm": 1295.3999999999999
      },
      {
        "id": "A-next-69",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 685.8,
        "yMm": 1295.3999999999999
      },
      {
        "id": "A-next-70",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 838.1999999999998,
        "yMm": 1295.3999999999999
      },
      {
        "id": "A-next-71",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 990.5999999999999,
        "yMm": 1295.3999999999999
      },
      {
        "id": "A-next-72",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 1142.9999999999998,
        "yMm": 1295.3999999999999
      },
      {
        "id": "A-next-73",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 76.19999999999999,
        "yMm": 1447.7999999999997
      },
      {
        "id": "A-next-74",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 228.59999999999997,
        "yMm": 1447.7999999999997
      },
      {
        "id": "A-next-75",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 380.99999999999994,
        "yMm": 1447.7999999999997
      },
      {
        "id": "A-next-76",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 533.3999999999999,
        "yMm": 1447.7999999999997
      },
      {
        "id": "A-next-77",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 685.8,
        "yMm": 1447.7999999999997
      },
      {
        "id": "A-next-78",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 838.1999999999998,
        "yMm": 1447.7999999999997
      },
      {
        "id": "A-next-79",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 990.5999999999999,
        "yMm": 1447.7999999999997
      },
      {
        "id": "A-next-80",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 1142.9999999999998,
        "yMm": 1447.7999999999997
      },
      {
        "id": "A-next-81",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 76.19999999999999,
        "yMm": 1600.1999999999998
      },
      {
        "id": "A-next-82",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 228.59999999999997,
        "yMm": 1600.1999999999998
      },
      {
        "id": "A-next-83",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 380.99999999999994,
        "yMm": 1600.1999999999998
      },
      {
        "id": "A-next-84",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 533.3999999999999,
        "yMm": 1600.1999999999998
      },
      {
        "id": "A-next-85",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 685.8,
        "yMm": 1600.1999999999998
      },
      {
        "id": "A-next-86",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 838.1999999999998,
        "yMm": 1600.1999999999998
      },
      {
        "id": "A-next-87",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 990.5999999999999,
        "yMm": 1600.1999999999998
      },
      {
        "id": "A-next-88",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 1142.9999999999998,
        "yMm": 1600.1999999999998
      },
      {
        "id": "A-next-89",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 76.19999999999999,
        "yMm": 1752.5999999999997
      },
      {
        "id": "A-next-90",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 228.59999999999997,
        "yMm": 1752.5999999999997
      },
      {
        "id": "A-next-91",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 380.99999999999994,
        "yMm": 1752.5999999999997
      },
      {
        "id": "A-next-92",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 533.3999999999999,
        "yMm": 1752.5999999999997
      },
      {
        "id": "A-next-93",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 685.8,
        "yMm": 1752.5999999999997
      },
      {
        "id": "A-next-94",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 838.1999999999998,
        "yMm": 1752.5999999999997
      },
      {
        "id": "A-next-95",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 990.5999999999999,
        "yMm": 1752.5999999999997
      },
      {
        "id": "A-next-96",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 1142.9999999999998,
        "yMm": 1752.5999999999997
      },
      {
        "id": "A-next-97",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 76.19999999999999,
        "yMm": 1904.9999999999998
      },
      {
        "id": "A-next-98",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 228.59999999999997,
        "yMm": 1904.9999999999998
      },
      {
        "id": "A-next-99",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 380.99999999999994,
        "yMm": 1904.9999999999998
      },
      {
        "id": "A-next-100",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 533.3999999999999,
        "yMm": 1904.9999999999998
      },
      {
        "id": "A-next-101",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 685.8,
        "yMm": 1904.9999999999998
      },
      {
        "id": "A-next-102",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 838.1999999999998,
        "yMm": 1904.9999999999998
      },
      {
        "id": "A-next-103",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 990.5999999999999,
        "yMm": 1904.9999999999998
      },
      {
        "id": "A-next-104",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 1142.9999999999998,
        "yMm": 1904.9999999999998
      },
      {
        "id": "A-next-105",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 76.19999999999999,
        "yMm": 2057.3999999999996
      },
      {
        "id": "A-next-106",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 228.59999999999997,
        "yMm": 2057.3999999999996
      },
      {
        "id": "A-next-107",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 380.99999999999994,
        "yMm": 2057.3999999999996
      },
      {
        "id": "A-next-108",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 533.3999999999999,
        "yMm": 2057.3999999999996
      },
      {
        "id": "A-next-109",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 685.8,
        "yMm": 2057.3999999999996
      },
      {
        "id": "A-next-110",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 838.1999999999998,
        "yMm": 2057.3999999999996
      },
      {
        "id": "A-next-111",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 990.5999999999999,
        "yMm": 2057.3999999999996
      },
      {
        "id": "A-next-112",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 1142.9999999999998,
        "yMm": 2057.3999999999996
      },
      {
        "id": "A-next-113",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 76.19999999999999,
        "yMm": 2209.7999999999997
      },
      {
        "id": "A-next-114",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 228.59999999999997,
        "yMm": 2209.7999999999997
      },
      {
        "id": "A-next-115",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 380.99999999999994,
        "yMm": 2209.7999999999997
      },
      {
        "id": "A-next-116",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 533.3999999999999,
        "yMm": 2209.7999999999997
      },
      {
        "id": "A-next-117",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 685.8,
        "yMm": 2209.7999999999997
      },
      {
        "id": "A-next-118",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 838.1999999999998,
        "yMm": 2209.7999999999997
      },
      {
        "id": "A-next-119",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 990.5999999999999,
        "yMm": 2209.7999999999997
      },
      {
        "id": "A-next-120",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 1142.9999999999998,
        "yMm": 2209.7999999999997
      },
      {
        "id": "A-next-121",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 76.19999999999999,
        "yMm": 2362.2
      },
      {
        "id": "A-next-122",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 228.59999999999997,
        "yMm": 2362.2
      },
      {
        "id": "A-next-123",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 380.99999999999994,
        "yMm": 2362.2
      },
      {
        "id": "A-next-124",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 533.3999999999999,
        "yMm": 2362.2
      },
      {
        "id": "A-next-125",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 685.8,
        "yMm": 2362.2
      },
      {
        "id": "A-next-126",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 838.1999999999998,
        "yMm": 2362.2
      },
      {
        "id": "A-next-127",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 990.5999999999999,
        "yMm": 2362.2
      },
      {
        "id": "A-next-128",
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "phaseId": 2,
        "bedId": 0,
        "xMm": 1142.9999999999998,
        "yMm": 2362.2
      }
    ],
    "phaseCounts": [
      {
        "phaseId": 1,
        "count": 32
      },
      {
        "phaseId": 2,
        "count": 128
      }
    ]
  },
  "counts": [
    {
      "zoneId": "A",
      "cropId": "leaf_lettuce",
      "phaseId": 1,
      "count": 32,
      "batches": 1,
      "seasonTargets": 32,
      "seeds": 71,
      "seedlings": 0,
      "startStage": "seed",
      "spacingXmm": 304.79999999999995,
      "spacingYmm": 304.79999999999995
    },
    {
      "zoneId": "A-next",
      "cropId": "bush_bean",
      "phaseId": 2,
      "count": 128,
      "batches": 1,
      "seasonTargets": 128,
      "seeds": 141,
      "seedlings": 0,
      "startStage": "seed",
      "spacingXmm": 152.39999999999998,
      "spacingYmm": 152.39999999999998
    }
  ],
  "calendar": [
    {
      "id": "A-plant-1",
      "stage": "seed",
      "zoneId": "A",
      "cropId": "leaf_lettuce",
      "phaseId": 1,
      "bedId": 0,
      "batch": 1,
      "kind": "Direct sow",
      "offsetDays": [
        -28,
        -14
      ],
      "anchor": "last spring frost",
      "earliestDate": "2027-04-03",
      "latestDate": "2027-04-17",
      "missed": false,
      "dependsOn": [],
      "conditions": "Avoid heat and bolting; sow only in workable soil.",
      "nextAction": "Plant only when the seed packet and local weather conditions agree.",
      "status": "planned",
      "fit": "unknown",
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall"
      ]
    },
    {
      "id": "A-next-plant-1",
      "stage": "seed",
      "zoneId": "A-next",
      "cropId": "bush_bean",
      "phaseId": 2,
      "bedId": 0,
      "batch": 1,
      "kind": "Direct sow",
      "offsetDays": [
        71,
        71
      ],
      "anchor": "last spring frost",
      "earliestDate": "2027-07-11",
      "latestDate": "2027-07-11",
      "missed": false,
      "dependsOn": [
        "A-1-clear"
      ],
      "conditions": "Wait for frost risk to pass and soil to reach at least 60°F (16°C); check the local forecast. Clear the preceding crop completely first.",
      "nextAction": "Plant only when the seed packet and local weather conditions agree.",
      "status": "planned",
      "fit": "unknown",
      "sourceRefs": [
        "umn-bean",
        "umd-container",
        "umn-plant",
        "umn-fall"
      ]
    }
  ],
  "lifecycle": [
    {
      "id": "A-plant-1",
      "stage": "seed",
      "zoneId": "A",
      "cropId": "leaf_lettuce",
      "phaseId": 1,
      "bedId": 0,
      "batch": 1,
      "kind": "Direct sow",
      "offsetDays": [
        -28,
        -14
      ],
      "anchor": "last spring frost",
      "earliestDate": "2027-04-03",
      "latestDate": "2027-04-17",
      "missed": false,
      "dependsOn": [],
      "conditions": "Avoid heat and bolting; sow only in workable soil.",
      "nextAction": "Plant only when the seed packet and local weather conditions agree.",
      "status": "planned",
      "fit": "unknown",
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall"
      ]
    },
    {
      "id": "A-1-seedling",
      "stage": "seedling",
      "zoneId": "A",
      "cropId": "leaf_lettuce",
      "phaseId": 1,
      "bedId": 0,
      "batch": 1,
      "kind": "Check emergence and thin",
      "offsetDays": [
        -22,
        0
      ],
      "anchor": "last spring frost",
      "earliestDate": "2027-04-09",
      "latestDate": "2027-05-01",
      "missed": false,
      "dependsOn": [
        "A-plant-1"
      ],
      "conditions": "Mist the surface gently; small seeds must not be washed away. Thin toward 32 positions at 305 × 305 mm when true leaves appear.",
      "nextAction": "Keep stronger seedlings. Re-sow gaps only when temperatures and remaining season are suitable.",
      "status": "conditional",
      "fit": "unknown",
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall"
      ]
    },
    {
      "id": "A-1-growth",
      "stage": "growth",
      "zoneId": "A",
      "cropId": "leaf_lettuce",
      "phaseId": 1,
      "bedId": 0,
      "batch": 1,
      "kind": "Tend the growing crop",
      "offsetDays": [
        -21,
        45
      ],
      "anchor": "last spring frost",
      "earliestDate": "2027-04-10",
      "latestDate": "2027-06-15",
      "missed": false,
      "dependsOn": [
        "A-plant-1"
      ],
      "conditions": "Check the growing center and take small outer leaves without uprooting the plant.",
      "nextAction": "Check moisture, surviving plants, weeds, support and visible crop stage; adjust to rain, heat and drainage.",
      "status": "conditional",
      "fit": "unknown",
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall"
      ]
    },
    {
      "id": "A-1-harvest",
      "stage": "harvest",
      "zoneId": "A",
      "cropId": "leaf_lettuce",
      "phaseId": 1,
      "bedId": 0,
      "batch": 1,
      "kind": "Check harvest readiness",
      "offsetDays": [
        17,
        67
      ],
      "anchor": "last spring frost",
      "earliestDate": "2027-05-18",
      "latestDate": "2027-07-07",
      "missed": false,
      "dependsOn": [
        "A-1-growth"
      ],
      "conditions": "Pick usable outer leaves before bitterness or a flowering stalk develops. The 45–60-day range begins at direct sowing; check the cultivar and actual crop.",
      "nextAction": "Record what is actually ready; this estimate is not a yield guarantee.",
      "status": "conditional",
      "fit": "unknown",
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall"
      ]
    },
    {
      "id": "A-1-clear",
      "stage": "clear",
      "zoneId": "A",
      "cropId": "leaf_lettuce",
      "phaseId": 1,
      "bedId": 0,
      "batch": 1,
      "kind": "Clear and review the planting",
      "offsetDays": [
        70,
        70
      ],
      "anchor": "last spring frost",
      "earliestDate": "2027-07-10",
      "latestDate": "2027-07-10",
      "missed": false,
      "dependsOn": [
        "A-1-harvest"
      ],
      "conditions": "Remove spent plants and check the soil before a successor starts. 21 harvest days and 3 clearing days are planning allowances; actual crop condition decides the changeover.",
      "nextAction": "Record actual harvests or losses. Keep healthy perennial clumps if you are not reusing their space; revise the next planting accordingly.",
      "status": "conditional",
      "fit": "unknown",
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall"
      ]
    },
    {
      "id": "A-next-plant-1",
      "stage": "seed",
      "zoneId": "A-next",
      "cropId": "bush_bean",
      "phaseId": 2,
      "bedId": 0,
      "batch": 1,
      "kind": "Direct sow",
      "offsetDays": [
        71,
        71
      ],
      "anchor": "last spring frost",
      "earliestDate": "2027-07-11",
      "latestDate": "2027-07-11",
      "missed": false,
      "dependsOn": [
        "A-1-clear"
      ],
      "conditions": "Wait for frost risk to pass and soil to reach at least 60°F (16°C); check the local forecast. Clear the preceding crop completely first.",
      "nextAction": "Plant only when the seed packet and local weather conditions agree.",
      "status": "planned",
      "fit": "unknown",
      "sourceRefs": [
        "umn-bean",
        "umd-container",
        "umn-plant",
        "umn-fall"
      ]
    },
    {
      "id": "A-next-1-seedling",
      "stage": "seedling",
      "zoneId": "A-next",
      "cropId": "bush_bean",
      "phaseId": 2,
      "bedId": 0,
      "batch": 1,
      "kind": "Check emergence and thin",
      "offsetDays": [
        78,
        85
      ],
      "anchor": "last spring frost",
      "earliestDate": "2027-07-18",
      "latestDate": "2027-07-25",
      "missed": false,
      "dependsOn": [
        "A-next-plant-1"
      ],
      "conditions": "Use one sound seed per position; replace failures only when soil remains warm. Thin toward 128 positions at 152 × 152 mm when true leaves appear.",
      "nextAction": "Keep stronger seedlings. Re-sow gaps only when temperatures and remaining season are suitable.",
      "status": "conditional",
      "fit": "unknown",
      "sourceRefs": [
        "umn-bean",
        "umd-container",
        "umn-plant",
        "umn-fall"
      ]
    },
    {
      "id": "A-next-1-growth",
      "stage": "growth",
      "zoneId": "A-next",
      "cropId": "bush_bean",
      "phaseId": 2,
      "bedId": 0,
      "batch": 1,
      "kind": "Tend the growing crop",
      "offsetDays": [
        78,
        135
      ],
      "anchor": "last spring frost",
      "earliestDate": "2027-07-18",
      "latestDate": "2027-09-13",
      "missed": false,
      "dependsOn": [
        "A-next-plant-1"
      ],
      "conditions": "Keep pods and foliage dry where possible; bush varieties need no trellis.",
      "nextAction": "Check moisture, surviving plants, weeds, support and visible crop stage; adjust to rain, heat and drainage.",
      "status": "conditional",
      "fit": "unknown",
      "sourceRefs": [
        "umn-bean",
        "umd-container",
        "umn-plant",
        "umn-fall"
      ]
    },
    {
      "id": "A-next-1-harvest",
      "stage": "harvest",
      "zoneId": "A-next",
      "cropId": "bush_bean",
      "phaseId": 2,
      "bedId": 0,
      "batch": 1,
      "kind": "Check harvest readiness",
      "offsetDays": [
        121,
        157
      ],
      "anchor": "last spring frost",
      "earliestDate": "2027-08-30",
      "latestDate": "2027-10-05",
      "missed": false,
      "dependsOn": [
        "A-next-1-growth"
      ],
      "conditions": "Pick tender snap pods before seeds inside become prominent. The 50–65-day range begins at direct sowing; check the cultivar and actual crop.",
      "nextAction": "Record what is actually ready; this estimate is not a yield guarantee.",
      "status": "conditional",
      "fit": "unknown",
      "sourceRefs": [
        "umn-bean",
        "umd-container",
        "umn-plant",
        "umn-fall"
      ]
    },
    {
      "id": "A-next-1-clear",
      "stage": "clear",
      "zoneId": "A-next",
      "cropId": "bush_bean",
      "phaseId": 2,
      "bedId": 0,
      "batch": 1,
      "kind": "Clear and review the planting",
      "offsetDays": [
        164,
        164
      ],
      "anchor": "last spring frost",
      "earliestDate": "2027-10-12",
      "latestDate": "2027-10-12",
      "missed": false,
      "dependsOn": [
        "A-next-1-harvest"
      ],
      "conditions": "Remove spent plants and check the soil before a successor starts. 21 harvest days and 7 clearing days are planning allowances; actual crop condition decides the changeover.",
      "nextAction": "Record actual harvests or losses. Keep healthy perennial clumps if you are not reusing their space; revise the next planting accordingly.",
      "status": "conditional",
      "fit": "unknown",
      "sourceRefs": [
        "umn-bean",
        "umd-container",
        "umn-plant",
        "umn-fall"
      ]
    }
  ],
  "season": {
    "startDate": "2027-04-01",
    "endDate": "2027-10-13",
    "weeks": 28,
    "fit": "unknown",
    "firstFrostDate": null,
    "batches": [
      {
        "zoneId": "A",
        "cropId": "leaf_lettuce",
        "batch": 1,
        "fit": "unknown",
        "earliestMaturityDate": "2027-05-18",
        "latestMaturityDate": "2027-06-16",
        "remainingDays": null,
        "alternatives": []
      },
      {
        "zoneId": "A-next",
        "cropId": "bush_bean",
        "batch": 1,
        "fit": "unknown",
        "earliestMaturityDate": "2027-08-30",
        "latestMaturityDate": "2027-09-14",
        "remainingDays": null,
        "alternatives": []
      }
    ],
    "alternatives": [],
    "dateMode": "example"
  },
  "tasks": [
    {
      "id": "week-1",
      "weekIndex": 1,
      "from": "2027-04-01",
      "to": "2027-04-07",
      "title": "Prepare and begin",
      "steps": [
        "Check moisture by touch in each active root zone; adjust watering to rain, heat and drainage. Containers may need checks between weekly visits.",
        "Measure the usable space. Prepare 906.1 L of raised-bed growing mix before allowance. Harvest or clear lettuce before preparing the bean phase. Delay changeover if lettuce is still wanted or soil is cold.",
        "A (Leaf lettuce), batch 1: Direct sow. Avoid heat and bolting; sow only in workable soil. Plant only when the seed packet and local weather conditions agree."
      ],
      "dependsOn": [
        "A-plant-1"
      ],
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall",
        "umn-bean"
      ]
    },
    {
      "id": "week-2",
      "weekIndex": 2,
      "from": "2027-04-08",
      "to": "2027-04-14",
      "title": "Check, tend and act · week 2",
      "steps": [
        "Check moisture by touch in each active root zone; adjust watering to rain, heat and drainage. Containers may need checks between weekly visits.",
        "A (Leaf lettuce), batch 1: Direct sow. Avoid heat and bolting; sow only in workable soil. Plant only when the seed packet and local weather conditions agree.",
        "A (Leaf lettuce), batch 1: Check emergence and thin. Mist the surface gently; small seeds must not be washed away. Thin toward 32 positions at 305 × 305 mm when true leaves appear. Keep stronger seedlings. Re-sow gaps only when temperatures and remaining season are suitable.",
        "A (Leaf lettuce), batch 1: Tend the growing crop. Check the growing center and take small outer leaves without uprooting the plant. Check moisture, surviving plants, weeds, support and visible crop stage; adjust to rain, heat and drainage."
      ],
      "dependsOn": [
        "A-plant-1",
        "A-1-seedling",
        "A-1-growth"
      ],
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall",
        "umn-bean"
      ]
    },
    {
      "id": "week-3",
      "weekIndex": 3,
      "from": "2027-04-15",
      "to": "2027-04-21",
      "title": "Check, tend and act · week 3",
      "steps": [
        "Check moisture by touch in each active root zone; adjust watering to rain, heat and drainage. Containers may need checks between weekly visits.",
        "A (Leaf lettuce), batch 1: Direct sow. Avoid heat and bolting; sow only in workable soil. Plant only when the seed packet and local weather conditions agree.",
        "A (Leaf lettuce), batch 1: Check emergence and thin. Mist the surface gently; small seeds must not be washed away. Thin toward 32 positions at 305 × 305 mm when true leaves appear. Keep stronger seedlings. Re-sow gaps only when temperatures and remaining season are suitable.",
        "A (Leaf lettuce), batch 1: Tend the growing crop. Check the growing center and take small outer leaves without uprooting the plant. Check moisture, surviving plants, weeds, support and visible crop stage; adjust to rain, heat and drainage."
      ],
      "dependsOn": [
        "A-plant-1",
        "A-1-seedling",
        "A-1-growth"
      ],
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall",
        "umn-bean"
      ]
    },
    {
      "id": "week-4",
      "weekIndex": 4,
      "from": "2027-04-22",
      "to": "2027-04-28",
      "title": "Check, tend and act · week 4",
      "steps": [
        "Check moisture by touch in each active root zone; adjust watering to rain, heat and drainage. Containers may need checks between weekly visits.",
        "A (Leaf lettuce), batch 1: Check emergence and thin. Mist the surface gently; small seeds must not be washed away. Thin toward 32 positions at 305 × 305 mm when true leaves appear. Keep stronger seedlings. Re-sow gaps only when temperatures and remaining season are suitable.",
        "A (Leaf lettuce), batch 1: Tend the growing crop. Check the growing center and take small outer leaves without uprooting the plant. Check moisture, surviving plants, weeds, support and visible crop stage; adjust to rain, heat and drainage.",
        "Recount surviving plants before buying replacements. Check remaining seed, seedling and growing-mix inventory."
      ],
      "dependsOn": [
        "A-1-seedling",
        "A-1-growth"
      ],
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall",
        "umn-bean"
      ]
    },
    {
      "id": "week-5",
      "weekIndex": 5,
      "from": "2027-04-29",
      "to": "2027-05-05",
      "title": "Check, tend and act · week 5",
      "steps": [
        "Check moisture by touch in each active root zone; adjust watering to rain, heat and drainage. Containers may need checks between weekly visits.",
        "A (Leaf lettuce), batch 1: Check emergence and thin. Mist the surface gently; small seeds must not be washed away. Thin toward 32 positions at 305 × 305 mm when true leaves appear. Keep stronger seedlings. Re-sow gaps only when temperatures and remaining season are suitable.",
        "A (Leaf lettuce), batch 1: Tend the growing crop. Check the growing center and take small outer leaves without uprooting the plant. Check moisture, surviving plants, weeds, support and visible crop stage; adjust to rain, heat and drainage."
      ],
      "dependsOn": [
        "A-1-seedling",
        "A-1-growth"
      ],
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall",
        "umn-bean"
      ]
    },
    {
      "id": "week-6",
      "weekIndex": 6,
      "from": "2027-05-06",
      "to": "2027-05-12",
      "title": "Check, tend and act · week 6",
      "steps": [
        "Check moisture by touch in each active root zone; adjust watering to rain, heat and drainage. Containers may need checks between weekly visits.",
        "A (Leaf lettuce), batch 1: Tend the growing crop. Check the growing center and take small outer leaves without uprooting the plant. Check moisture, surviving plants, weeds, support and visible crop stage; adjust to rain, heat and drainage."
      ],
      "dependsOn": [
        "A-1-growth"
      ],
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall",
        "umn-bean"
      ]
    },
    {
      "id": "week-7",
      "weekIndex": 7,
      "from": "2027-05-13",
      "to": "2027-05-19",
      "title": "Check, tend and act · week 7",
      "steps": [
        "Check moisture by touch in each active root zone; adjust watering to rain, heat and drainage. Containers may need checks between weekly visits.",
        "A (Leaf lettuce), batch 1: Tend the growing crop. Check the growing center and take small outer leaves without uprooting the plant. Check moisture, surviving plants, weeds, support and visible crop stage; adjust to rain, heat and drainage.",
        "A (Leaf lettuce), batch 1: Check harvest readiness. Pick usable outer leaves before bitterness or a flowering stalk develops. The 45–60-day range begins at direct sowing; check the cultivar and actual crop. Record what is actually ready; this estimate is not a yield guarantee."
      ],
      "dependsOn": [
        "A-1-growth",
        "A-1-harvest"
      ],
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall",
        "umn-bean"
      ]
    },
    {
      "id": "week-8",
      "weekIndex": 8,
      "from": "2027-05-20",
      "to": "2027-05-26",
      "title": "Check, tend and act · week 8",
      "steps": [
        "Check moisture by touch in each active root zone; adjust watering to rain, heat and drainage. Containers may need checks between weekly visits.",
        "A (Leaf lettuce), batch 1: Tend the growing crop. Check the growing center and take small outer leaves without uprooting the plant. Check moisture, surviving plants, weeds, support and visible crop stage; adjust to rain, heat and drainage.",
        "A (Leaf lettuce), batch 1: Check harvest readiness. Pick usable outer leaves before bitterness or a flowering stalk develops. The 45–60-day range begins at direct sowing; check the cultivar and actual crop. Record what is actually ready; this estimate is not a yield guarantee.",
        "Recount surviving plants before buying replacements. Check remaining seed, seedling and growing-mix inventory."
      ],
      "dependsOn": [
        "A-1-growth",
        "A-1-harvest"
      ],
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall",
        "umn-bean"
      ]
    },
    {
      "id": "week-9",
      "weekIndex": 9,
      "from": "2027-05-27",
      "to": "2027-06-02",
      "title": "Check, tend and act · week 9",
      "steps": [
        "Check moisture by touch in each active root zone; adjust watering to rain, heat and drainage. Containers may need checks between weekly visits.",
        "A (Leaf lettuce), batch 1: Tend the growing crop. Check the growing center and take small outer leaves without uprooting the plant. Check moisture, surviving plants, weeds, support and visible crop stage; adjust to rain, heat and drainage.",
        "A (Leaf lettuce), batch 1: Check harvest readiness. Pick usable outer leaves before bitterness or a flowering stalk develops. The 45–60-day range begins at direct sowing; check the cultivar and actual crop. Record what is actually ready; this estimate is not a yield guarantee."
      ],
      "dependsOn": [
        "A-1-growth",
        "A-1-harvest"
      ],
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall",
        "umn-bean"
      ]
    },
    {
      "id": "week-10",
      "weekIndex": 10,
      "from": "2027-06-03",
      "to": "2027-06-09",
      "title": "Check, tend and act · week 10",
      "steps": [
        "Check moisture by touch in each active root zone; adjust watering to rain, heat and drainage. Containers may need checks between weekly visits.",
        "A (Leaf lettuce), batch 1: Tend the growing crop. Check the growing center and take small outer leaves without uprooting the plant. Check moisture, surviving plants, weeds, support and visible crop stage; adjust to rain, heat and drainage.",
        "A (Leaf lettuce), batch 1: Check harvest readiness. Pick usable outer leaves before bitterness or a flowering stalk develops. The 45–60-day range begins at direct sowing; check the cultivar and actual crop. Record what is actually ready; this estimate is not a yield guarantee."
      ],
      "dependsOn": [
        "A-1-growth",
        "A-1-harvest"
      ],
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall",
        "umn-bean"
      ]
    },
    {
      "id": "week-11",
      "weekIndex": 11,
      "from": "2027-06-10",
      "to": "2027-06-16",
      "title": "Check, tend and act · week 11",
      "steps": [
        "Check moisture by touch in each active root zone; adjust watering to rain, heat and drainage. Containers may need checks between weekly visits.",
        "A (Leaf lettuce), batch 1: Tend the growing crop. Check the growing center and take small outer leaves without uprooting the plant. Check moisture, surviving plants, weeds, support and visible crop stage; adjust to rain, heat and drainage.",
        "A (Leaf lettuce), batch 1: Check harvest readiness. Pick usable outer leaves before bitterness or a flowering stalk develops. The 45–60-day range begins at direct sowing; check the cultivar and actual crop. Record what is actually ready; this estimate is not a yield guarantee."
      ],
      "dependsOn": [
        "A-1-growth",
        "A-1-harvest"
      ],
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall",
        "umn-bean"
      ]
    },
    {
      "id": "week-12",
      "weekIndex": 12,
      "from": "2027-06-17",
      "to": "2027-06-23",
      "title": "Check, tend and act · week 12",
      "steps": [
        "Check moisture by touch in each active root zone; adjust watering to rain, heat and drainage. Containers may need checks between weekly visits.",
        "A (Leaf lettuce), batch 1: Check harvest readiness. Pick usable outer leaves before bitterness or a flowering stalk develops. The 45–60-day range begins at direct sowing; check the cultivar and actual crop. Record what is actually ready; this estimate is not a yield guarantee.",
        "Recount surviving plants before buying replacements. Check remaining seed, seedling and growing-mix inventory."
      ],
      "dependsOn": [
        "A-1-harvest"
      ],
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall",
        "umn-bean"
      ]
    },
    {
      "id": "week-13",
      "weekIndex": 13,
      "from": "2027-06-24",
      "to": "2027-06-30",
      "title": "Check, tend and act · week 13",
      "steps": [
        "Check moisture by touch in each active root zone; adjust watering to rain, heat and drainage. Containers may need checks between weekly visits.",
        "A (Leaf lettuce), batch 1: Check harvest readiness. Pick usable outer leaves before bitterness or a flowering stalk develops. The 45–60-day range begins at direct sowing; check the cultivar and actual crop. Record what is actually ready; this estimate is not a yield guarantee."
      ],
      "dependsOn": [
        "A-1-harvest"
      ],
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall",
        "umn-bean"
      ]
    },
    {
      "id": "week-14",
      "weekIndex": 14,
      "from": "2027-07-01",
      "to": "2027-07-07",
      "title": "Check, tend and act · week 14",
      "steps": [
        "Check moisture by touch in each active root zone; adjust watering to rain, heat and drainage. Containers may need checks between weekly visits.",
        "A (Leaf lettuce), batch 1: Check harvest readiness. Pick usable outer leaves before bitterness or a flowering stalk develops. The 45–60-day range begins at direct sowing; check the cultivar and actual crop. Record what is actually ready; this estimate is not a yield guarantee."
      ],
      "dependsOn": [
        "A-1-harvest"
      ],
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall",
        "umn-bean"
      ]
    },
    {
      "id": "week-15",
      "weekIndex": 15,
      "from": "2027-07-08",
      "to": "2027-07-14",
      "title": "Check, tend and act · week 15",
      "steps": [
        "Check moisture by touch in each active root zone; adjust watering to rain, heat and drainage. Containers may need checks between weekly visits.",
        "A (Leaf lettuce), batch 1: Clear and review the planting. Remove spent plants and check the soil before a successor starts. 21 harvest days and 3 clearing days are planning allowances; actual crop condition decides the changeover. Record actual harvests or losses. Keep healthy perennial clumps if you are not reusing their space; revise the next planting accordingly.",
        "A-next (Bush snap beans), batch 1: Direct sow. Wait for frost risk to pass and soil to reach at least 60°F (16°C); check the local forecast. Clear the preceding crop completely first. Plant only when the seed packet and local weather conditions agree."
      ],
      "dependsOn": [
        "A-1-clear",
        "A-next-plant-1"
      ],
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall",
        "umn-bean"
      ]
    },
    {
      "id": "week-16",
      "weekIndex": 16,
      "from": "2027-07-15",
      "to": "2027-07-21",
      "title": "Check, tend and act · week 16",
      "steps": [
        "Check moisture by touch in each active root zone; adjust watering to rain, heat and drainage. Containers may need checks between weekly visits.",
        "A-next (Bush snap beans), batch 1: Check emergence and thin. Use one sound seed per position; replace failures only when soil remains warm. Thin toward 128 positions at 152 × 152 mm when true leaves appear. Keep stronger seedlings. Re-sow gaps only when temperatures and remaining season are suitable.",
        "A-next (Bush snap beans), batch 1: Tend the growing crop. Keep pods and foliage dry where possible; bush varieties need no trellis. Check moisture, surviving plants, weeds, support and visible crop stage; adjust to rain, heat and drainage.",
        "Recount surviving plants before buying replacements. Check remaining seed, seedling and growing-mix inventory."
      ],
      "dependsOn": [
        "A-next-1-seedling",
        "A-next-1-growth"
      ],
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall",
        "umn-bean"
      ]
    },
    {
      "id": "week-17",
      "weekIndex": 17,
      "from": "2027-07-22",
      "to": "2027-07-28",
      "title": "Check, tend and act · week 17",
      "steps": [
        "Check moisture by touch in each active root zone; adjust watering to rain, heat and drainage. Containers may need checks between weekly visits.",
        "A-next (Bush snap beans), batch 1: Check emergence and thin. Use one sound seed per position; replace failures only when soil remains warm. Thin toward 128 positions at 152 × 152 mm when true leaves appear. Keep stronger seedlings. Re-sow gaps only when temperatures and remaining season are suitable.",
        "A-next (Bush snap beans), batch 1: Tend the growing crop. Keep pods and foliage dry where possible; bush varieties need no trellis. Check moisture, surviving plants, weeds, support and visible crop stage; adjust to rain, heat and drainage."
      ],
      "dependsOn": [
        "A-next-1-seedling",
        "A-next-1-growth"
      ],
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall",
        "umn-bean"
      ]
    },
    {
      "id": "week-18",
      "weekIndex": 18,
      "from": "2027-07-29",
      "to": "2027-08-04",
      "title": "Check, tend and act · week 18",
      "steps": [
        "Check moisture by touch in each active root zone; adjust watering to rain, heat and drainage. Containers may need checks between weekly visits.",
        "A-next (Bush snap beans), batch 1: Tend the growing crop. Keep pods and foliage dry where possible; bush varieties need no trellis. Check moisture, surviving plants, weeds, support and visible crop stage; adjust to rain, heat and drainage."
      ],
      "dependsOn": [
        "A-next-1-growth"
      ],
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall",
        "umn-bean"
      ]
    },
    {
      "id": "week-19",
      "weekIndex": 19,
      "from": "2027-08-05",
      "to": "2027-08-11",
      "title": "Check, tend and act · week 19",
      "steps": [
        "Check moisture by touch in each active root zone; adjust watering to rain, heat and drainage. Containers may need checks between weekly visits.",
        "A-next (Bush snap beans), batch 1: Tend the growing crop. Keep pods and foliage dry where possible; bush varieties need no trellis. Check moisture, surviving plants, weeds, support and visible crop stage; adjust to rain, heat and drainage."
      ],
      "dependsOn": [
        "A-next-1-growth"
      ],
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall",
        "umn-bean"
      ]
    },
    {
      "id": "week-20",
      "weekIndex": 20,
      "from": "2027-08-12",
      "to": "2027-08-18",
      "title": "Check, tend and act · week 20",
      "steps": [
        "Check moisture by touch in each active root zone; adjust watering to rain, heat and drainage. Containers may need checks between weekly visits.",
        "A-next (Bush snap beans), batch 1: Tend the growing crop. Keep pods and foliage dry where possible; bush varieties need no trellis. Check moisture, surviving plants, weeds, support and visible crop stage; adjust to rain, heat and drainage.",
        "Recount surviving plants before buying replacements. Check remaining seed, seedling and growing-mix inventory."
      ],
      "dependsOn": [
        "A-next-1-growth"
      ],
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall",
        "umn-bean"
      ]
    },
    {
      "id": "week-21",
      "weekIndex": 21,
      "from": "2027-08-19",
      "to": "2027-08-25",
      "title": "Check, tend and act · week 21",
      "steps": [
        "Check moisture by touch in each active root zone; adjust watering to rain, heat and drainage. Containers may need checks between weekly visits.",
        "A-next (Bush snap beans), batch 1: Tend the growing crop. Keep pods and foliage dry where possible; bush varieties need no trellis. Check moisture, surviving plants, weeds, support and visible crop stage; adjust to rain, heat and drainage."
      ],
      "dependsOn": [
        "A-next-1-growth"
      ],
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall",
        "umn-bean"
      ]
    },
    {
      "id": "week-22",
      "weekIndex": 22,
      "from": "2027-08-26",
      "to": "2027-09-01",
      "title": "Check, tend and act · week 22",
      "steps": [
        "Check moisture by touch in each active root zone; adjust watering to rain, heat and drainage. Containers may need checks between weekly visits.",
        "A-next (Bush snap beans), batch 1: Tend the growing crop. Keep pods and foliage dry where possible; bush varieties need no trellis. Check moisture, surviving plants, weeds, support and visible crop stage; adjust to rain, heat and drainage.",
        "A-next (Bush snap beans), batch 1: Check harvest readiness. Pick tender snap pods before seeds inside become prominent. The 50–65-day range begins at direct sowing; check the cultivar and actual crop. Record what is actually ready; this estimate is not a yield guarantee."
      ],
      "dependsOn": [
        "A-next-1-growth",
        "A-next-1-harvest"
      ],
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall",
        "umn-bean"
      ]
    },
    {
      "id": "week-23",
      "weekIndex": 23,
      "from": "2027-09-02",
      "to": "2027-09-08",
      "title": "Check, tend and act · week 23",
      "steps": [
        "Check moisture by touch in each active root zone; adjust watering to rain, heat and drainage. Containers may need checks between weekly visits.",
        "A-next (Bush snap beans), batch 1: Tend the growing crop. Keep pods and foliage dry where possible; bush varieties need no trellis. Check moisture, surviving plants, weeds, support and visible crop stage; adjust to rain, heat and drainage.",
        "A-next (Bush snap beans), batch 1: Check harvest readiness. Pick tender snap pods before seeds inside become prominent. The 50–65-day range begins at direct sowing; check the cultivar and actual crop. Record what is actually ready; this estimate is not a yield guarantee."
      ],
      "dependsOn": [
        "A-next-1-growth",
        "A-next-1-harvest"
      ],
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall",
        "umn-bean"
      ]
    },
    {
      "id": "week-24",
      "weekIndex": 24,
      "from": "2027-09-09",
      "to": "2027-09-15",
      "title": "Check, tend and act · week 24",
      "steps": [
        "Check moisture by touch in each active root zone; adjust watering to rain, heat and drainage. Containers may need checks between weekly visits.",
        "A-next (Bush snap beans), batch 1: Tend the growing crop. Keep pods and foliage dry where possible; bush varieties need no trellis. Check moisture, surviving plants, weeds, support and visible crop stage; adjust to rain, heat and drainage.",
        "A-next (Bush snap beans), batch 1: Check harvest readiness. Pick tender snap pods before seeds inside become prominent. The 50–65-day range begins at direct sowing; check the cultivar and actual crop. Record what is actually ready; this estimate is not a yield guarantee.",
        "Recount surviving plants before buying replacements. Check remaining seed, seedling and growing-mix inventory."
      ],
      "dependsOn": [
        "A-next-1-growth",
        "A-next-1-harvest"
      ],
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall",
        "umn-bean"
      ]
    },
    {
      "id": "week-25",
      "weekIndex": 25,
      "from": "2027-09-16",
      "to": "2027-09-22",
      "title": "Check, tend and act · week 25",
      "steps": [
        "Check moisture by touch in each active root zone; adjust watering to rain, heat and drainage. Containers may need checks between weekly visits.",
        "A-next (Bush snap beans), batch 1: Check harvest readiness. Pick tender snap pods before seeds inside become prominent. The 50–65-day range begins at direct sowing; check the cultivar and actual crop. Record what is actually ready; this estimate is not a yield guarantee."
      ],
      "dependsOn": [
        "A-next-1-harvest"
      ],
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall",
        "umn-bean"
      ]
    },
    {
      "id": "week-26",
      "weekIndex": 26,
      "from": "2027-09-23",
      "to": "2027-09-29",
      "title": "Check, tend and act · week 26",
      "steps": [
        "Check moisture by touch in each active root zone; adjust watering to rain, heat and drainage. Containers may need checks between weekly visits.",
        "A-next (Bush snap beans), batch 1: Check harvest readiness. Pick tender snap pods before seeds inside become prominent. The 50–65-day range begins at direct sowing; check the cultivar and actual crop. Record what is actually ready; this estimate is not a yield guarantee."
      ],
      "dependsOn": [
        "A-next-1-harvest"
      ],
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall",
        "umn-bean"
      ]
    },
    {
      "id": "week-27",
      "weekIndex": 27,
      "from": "2027-09-30",
      "to": "2027-10-06",
      "title": "Check, tend and act · week 27",
      "steps": [
        "Check moisture by touch in each active root zone; adjust watering to rain, heat and drainage. Containers may need checks between weekly visits.",
        "A-next (Bush snap beans), batch 1: Check harvest readiness. Pick tender snap pods before seeds inside become prominent. The 50–65-day range begins at direct sowing; check the cultivar and actual crop. Record what is actually ready; this estimate is not a yield guarantee."
      ],
      "dependsOn": [
        "A-next-1-harvest"
      ],
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall",
        "umn-bean"
      ]
    },
    {
      "id": "week-28",
      "weekIndex": 28,
      "from": "2027-10-07",
      "to": "2027-10-13",
      "title": "Finish and review the season",
      "steps": [
        "Check moisture by touch in each active root zone; adjust watering to rain, heat and drainage. Containers may need checks between weekly visits.",
        "A-next (Bush snap beans), batch 1: Clear and review the planting. Remove spent plants and check the soil before a successor starts. 21 harvest days and 7 clearing days are planning allowances; actual crop condition decides the changeover. Record actual harvests or losses. Keep healthy perennial clumps if you are not reusing their space; revise the next planting accordingly.",
        "Recount surviving plants before buying replacements. Check remaining seed, seedling and growing-mix inventory.",
        "Review harvest and crop-loss records, clear or retain plants as appropriate, and update remaining stock before planning the next season."
      ],
      "dependsOn": [
        "A-next-1-clear"
      ],
      "sourceRefs": [
        "umn-lettuce",
        "umd-container",
        "umn-plant",
        "umn-fall",
        "umn-bean"
      ]
    }
  ],
  "supplies": [
    {
      "id": "mix",
      "name": "Raised-bed growing mix",
      "grossQty": 906.1390909439999,
      "ownedQty": 0,
      "usedOwnedQty": 0,
      "remainingOwnedQty": 0,
      "netQty": 906.1390909439999,
      "unit": "L",
      "purchasePackQty": 40,
      "packs": 23,
      "purchasedQty": 920,
      "leftoverQty": 13.860909056000082
    },
    {
      "id": "labels",
      "name": "Position labels (reuse after a crop clears)",
      "grossQty": 128,
      "ownedQty": 0,
      "usedOwnedQty": 0,
      "remainingOwnedQty": 0,
      "netQty": 128,
      "unit": "each"
    },
    {
      "id": "measure",
      "name": "Measuring tool",
      "grossQty": 1,
      "ownedQty": 0,
      "usedOwnedQty": 0,
      "remainingOwnedQty": 0,
      "netQty": 1,
      "unit": "each"
    },
    {
      "id": "water",
      "name": "Gentle watering tool",
      "grossQty": 1,
      "ownedQty": 0,
      "usedOwnedQty": 0,
      "remainingOwnedQty": 0,
      "netQty": 1,
      "unit": "each"
    },
    {
      "id": "seeds-leaf_lettuce",
      "name": "Leaf lettuce · A",
      "grossQty": 71,
      "ownedQty": 0,
      "usedOwnedQty": 0,
      "remainingOwnedQty": 0,
      "netQty": 71,
      "unit": "seeds",
      "cropId": "leaf_lettuce",
      "zoneIds": [
        "A"
      ]
    },
    {
      "id": "seeds-bush_bean",
      "name": "Bush snap beans · A-next",
      "grossQty": 141,
      "ownedQty": 0,
      "usedOwnedQty": 0,
      "remainingOwnedQty": 0,
      "netQty": 141,
      "unit": "seeds",
      "cropId": "bush_bean",
      "zoneIds": [
        "A-next"
      ]
    }
  ],
  "warnings": [
    "Season fit is unassessed. Enter a first fall frost date to check whether each crop can reach maturity; relative dates cannot confirm a local growing season.",
    "Phase 2: Bush snap beans follows the final clear-bed step in A, including every batch. Confirm the soil is clear before planting."
  ],
  "grossLiters": 906.1390909439999,
  "sources": [
    {
      "id": "umn-lettuce",
      "url": "https://extension.umn.edu/garden-and-home/yard-and-garden/gardening-in-minnesota/growing-lettuce-endive-and-radicchio",
      "title": "Growing lettuce",
      "publisher": "UMN Extension",
      "factNotes": "Full-size leaf lettuce plant distance is 10–12 inches. Our 12-inch square cells use an intensive bed layout rather than conventional row aisles.",
      "retrievedAt": "2026-10-04",
      "region": "United States; frost-season home gardens",
      "licenseNotes": "Publicly readable, copyright retained by publisher. Facts paraphrased; no photos or complete source text reproduced."
    },
    {
      "id": "umd-container",
      "url": "https://www.extension.umd.edu/resource/growing-vegetables-containers-and-salad-tables",
      "title": "Growing vegetables in containers and salad tables",
      "publisher": "UMD Extension",
      "factNotes": "Sun exposure, drainage, growing media and crop-specific minimum volumes; our thresholds are conservative planning settings.",
      "retrievedAt": "2026-10-13",
      "region": "United States; frost-season home gardens",
      "licenseNotes": "Publicly readable, copyright retained by publisher. Facts paraphrased; no photos or complete source text reproduced."
    },
    {
      "id": "umn-plant",
      "url": "https://extension.umn.edu/garden-and-home/yard-and-garden/gardening-in-minnesota/planting-the-vegetable-garden",
      "title": "Planting the vegetable garden",
      "publisher": "UMN Extension",
      "factNotes": "Cool and warm season establishment; weather and soil readiness matter. Minnesota month dates are not used as global dates.",
      "retrievedAt": "2026-10-13",
      "region": "United States; frost-season home gardens",
      "licenseNotes": "Publicly readable, copyright retained by publisher. Facts paraphrased; no photos or complete source text reproduced."
    },
    {
      "id": "umn-fall",
      "url": "https://extension.umn.edu/garden-and-home/yard-and-garden/gardening-in-minnesota/planting-vegetables-in-midsummer-for-fall-harvest",
      "title": "Planting for fall harvest",
      "publisher": "UMN Extension",
      "factNotes": "Maturity is a cultivar-dependent estimate; our extra 14-day fall buffer is an explicit planning assumption.",
      "retrievedAt": "2026-10-13",
      "region": "United States; frost-season home gardens",
      "licenseNotes": "Publicly readable, copyright retained by publisher. Facts paraphrased; no photos or complete source text reproduced."
    },
    {
      "id": "umn-bean",
      "url": "https://extension.umn.edu/garden-and-home/yard-and-garden/gardening-in-minnesota/growing-beans",
      "title": "Growing beans",
      "publisher": "UMN Extension",
      "factNotes": "Direct sow bush beans in warm soil. Six-inch square cells are our compact-bed setting, not the conventional row spacing in this source.",
      "retrievedAt": "2026-10-04",
      "region": "United States; frost-season home gardens",
      "licenseNotes": "Publicly readable, copyright retained by publisher. Facts paraphrased; no photos or complete source text reproduced."
    }
  ],
  "completedTaskIds": [],
  "assumptions": [
    "Spacing is for the selected compact planting method; follow your cultivar packet where it differs.",
    "Seed allowance and minimum root-space limits are planning choices, not germination or yield guarantees.",
    "Dates are preparation windows, not forecasts. Confirm soil temperature, weather and actual crop stage.",
    "First fall frost is a conservative planning boundary, including for hardy crops. Continuing beyond it needs suitable local guidance and protection.",
    "Harvest and clearing durations are planning allowances. A successor waits for the final preceding batch to clear; actual crop progress may move those dates."
  ],
  "generatedAt": "2026-10-17T12:39:25.344Z"
}