{
  "factory_id": "F01",
  "design_revision": 2,
  "design_story": "4,002㎡의 작은 우유 복합동과 두 개 지원 별동을 설계한다. 북쪽 25m 깊이의 습식 구역에서 6기 수유 사일로, 2계열 표준화·균질·살균, 4기 청정 버퍼가 차례로 이어진다. 살균실 뒤편에는 원료 랙 대신 회수 크림 2기, CIP 전환 밸브와 배관 정비 여유를 둔다. 남쪽 3개 충전 셀은 바로 옆 검사선과 아래 포장선으로 연결된다. 728㎡ 동측 냉장실은 출하 노선별 30팔레트 위치와 빈 크레이트만 저장한다. 포장재 창고는 남서쪽 306㎡에 한정하며 원유·청정 액상 구역에는 상자 재고를 두지 않는다.",
  "site": {
    "width": 118,
    "depth": 102
  },
  "buildings": [
    {
      "id": "milk",
      "name": "수유·살균·충전·냉장 복합동",
      "role": "production",
      "polygon": [
        [
          31,
          27
        ],
        [
          97,
          27
        ],
        [
          97,
          79
        ],
        [
          31,
          79
        ]
      ],
      "height": 11,
      "roof": {
        "type": "shed",
        "axis": "x",
        "pitch": 0.12
      },
      "facade": {
        "color": [
          0.8,
          0.86,
          0.88
        ],
        "accent": [
          0.04,
          0.35,
          0.55
        ],
        "material": "metal",
        "window_band_height": 3.7
      }
    },
    {
      "id": "office",
      "name": "관리·원유 검사 별동",
      "role": "office",
      "polygon": [
        [
          10,
          27
        ],
        [
          25,
          27
        ],
        [
          25,
          43
        ],
        [
          10,
          43
        ]
      ],
      "height": 6,
      "roof": {
        "type": "flat",
        "axis": "x",
        "pitch": 0.12
      },
      "facade": {
        "color": [
          0.84,
          0.8,
          0.71
        ],
        "accent": [
          0.1,
          0.28,
          0.36
        ],
        "material": "brick",
        "window_band_height": 3.7
      }
    },
    {
      "id": "utilities",
      "name": "냉열·CIP·정비 별동",
      "role": "utility",
      "polygon": [
        [
          10,
          57
        ],
        [
          25,
          57
        ],
        [
          25,
          79
        ],
        [
          10,
          79
        ]
      ],
      "height": 6,
      "roof": {
        "type": "gable",
        "axis": "x",
        "pitch": 0.12
      },
      "facade": {
        "color": [
          0.55,
          0.63,
          0.67
        ],
        "accent": [
          0.1,
          0.28,
          0.36
        ],
        "material": "metal",
        "window_band_height": 3.7
      }
    }
  ],
  "zones": [
    {
      "id": "receiving",
      "name": "6기 수유 사일로·위생 집유",
      "role": "process",
      "building_id": "milk",
      "x": 31,
      "y": 54,
      "width": 18,
      "depth": 25,
      "stage_ids": [
        "S01"
      ],
      "fixtures": []
    },
    {
      "id": "thermal",
      "name": "2계열 표준화·균질·살균",
      "role": "process",
      "building_id": "milk",
      "x": 49,
      "y": 54,
      "width": 20,
      "depth": 15,
      "stage_ids": [
        "S02",
        "S03",
        "S04"
      ],
      "fixtures": []
    },
    {
      "id": "wet-service",
      "name": "회수 크림·CIP 전환 매니폴드",
      "role": "utility",
      "building_id": "milk",
      "x": 49,
      "y": 69,
      "width": 20,
      "depth": 10,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "cream-return",
          "type": "tank_bank",
          "x": 54,
          "y": 74,
          "width": 6,
          "depth": 5,
          "height": 3.5,
          "count": 2,
          "rows": 1,
          "columns": 2,
          "angle": 0,
          "label": "회수 크림 배치 탱크 2기"
        },
        {
          "id": "process-valves",
          "type": "pipe_rack",
          "x": 64,
          "y": 76,
          "width": 7,
          "depth": 2,
          "height": 3,
          "count": 1,
          "rows": 1,
          "columns": 1,
          "angle": 0,
          "label": "제품·CIP 전환 밸브와 배관 브리지"
        }
      ]
    },
    {
      "id": "buffer",
      "name": "4기 청정 버퍼",
      "role": "process",
      "building_id": "milk",
      "x": 69,
      "y": 54,
      "width": 14,
      "depth": 18,
      "stage_ids": [
        "S05"
      ],
      "fixtures": []
    },
    {
      "id": "buffer-service",
      "name": "청정 밸브·호스 정비",
      "role": "utility",
      "building_id": "milk",
      "x": 69,
      "y": 72,
      "width": 14,
      "depth": 7,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "sterile-header",
          "type": "pipe_rack",
          "x": 76,
          "y": 76,
          "width": 11,
          "depth": 2,
          "height": 3,
          "count": 1,
          "rows": 1,
          "columns": 1,
          "angle": 0,
          "label": "청정 버퍼 회수·전환 매니폴드"
        }
      ]
    },
    {
      "id": "fill",
      "name": "3개 충전 셀",
      "role": "process",
      "building_id": "milk",
      "x": 49,
      "y": 38,
      "width": 26,
      "depth": 16,
      "stage_ids": [
        "S06"
      ],
      "fixtures": []
    },
    {
      "id": "inspect",
      "name": "충전 후 3열 검사",
      "role": "process",
      "building_id": "milk",
      "x": 75,
      "y": 38,
      "width": 8,
      "depth": 16,
      "stage_ids": [
        "S07"
      ],
      "fixtures": []
    },
    {
      "id": "pack",
      "name": "케이스 포장·크레이트 인계",
      "role": "packaging",
      "building_id": "milk",
      "x": 49,
      "y": 27,
      "width": 34,
      "depth": 11,
      "stage_ids": [
        "S08"
      ],
      "fixtures": []
    },
    {
      "id": "cold",
      "name": "당일 노선별 냉장 출하",
      "role": "cold_store",
      "building_id": "milk",
      "x": 83,
      "y": 27,
      "width": 14,
      "depth": 52,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "cold-racks",
          "type": "cold_rack",
          "x": 90,
          "y": 64,
          "width": 10,
          "depth": 18,
          "height": 5,
          "count": 30,
          "rows": 6,
          "columns": 5,
          "angle": 0,
          "label": "배송 노선별 30팔레트 위치"
        },
        {
          "id": "crate-returns",
          "type": "bin_rack",
          "x": 90,
          "y": 76,
          "width": 10,
          "depth": 3,
          "height": 2.5,
          "count": 5,
          "rows": 1,
          "columns": 5,
          "angle": 0,
          "label": "세척 완료 빈 크레이트"
        },
        {
          "id": "F01-robot-case-1",
          "type": "worktable",
          "x": 88.2,
          "y": 36.5,
          "width": 2,
          "depth": 1.5,
          "height": 1.3,
          "count": 1,
          "rows": 1,
          "columns": 1,
          "angle": 0,
          "label": "식품 외포장 인계대",
          "model_profile": "food_case_handoff"
        },
        {
          "id": "F01-robot-pallet-1",
          "type": "floor_pallets",
          "x": 92.5,
          "y": 38.0,
          "width": 1.4,
          "depth": 1.2,
          "height": 1.3,
          "count": 1,
          "rows": 1,
          "columns": 1,
          "angle": 0,
          "label": "출하 팔레트 인계"
        },
        {
          "id": "F01-robot-case-2",
          "type": "worktable",
          "x": 88.2,
          "y": 46.5,
          "width": 2,
          "depth": 1.5,
          "height": 1.3,
          "count": 1,
          "rows": 1,
          "columns": 1,
          "angle": 0,
          "label": "식품 외포장 인계대",
          "model_profile": "food_case_handoff"
        },
        {
          "id": "F01-robot-pallet-2",
          "type": "floor_pallets",
          "x": 92.5,
          "y": 48.0,
          "width": 1.4,
          "depth": 1.2,
          "height": 1.3,
          "count": 1,
          "rows": 1,
          "columns": 1,
          "angle": 0,
          "label": "출하 팔레트 인계"
        }
      ]
    },
    {
      "id": "materials",
      "name": "빈 용기·필름·캡 공급",
      "role": "warehouse",
      "building_id": "milk",
      "x": 31,
      "y": 27,
      "width": 18,
      "depth": 17,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "containers",
          "type": "pallet_rack",
          "x": 39,
          "y": 32,
          "width": 12,
          "depth": 6,
          "height": 4,
          "count": 12,
          "rows": 2,
          "columns": 6,
          "angle": 0,
          "label": "빈 용기·캡 12팔레트 위치"
        },
        {
          "id": "film-cabinet",
          "type": "cabinet",
          "x": 34,
          "y": 38,
          "width": 3,
          "depth": 2,
          "height": 2,
          "count": 2,
          "rows": 1,
          "columns": 2,
          "angle": 0,
          "label": "필름 릴·위생 소모품"
        }
      ]
    },
    {
      "id": "lab",
      "name": "공정 시료 검사",
      "role": "laboratory",
      "building_id": "milk",
      "x": 31,
      "y": 44,
      "width": 9,
      "depth": 10,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "sampling",
          "type": "lab_bench",
          "x": 35,
          "y": 49,
          "width": 6,
          "depth": 6,
          "height": 1.4,
          "count": 2,
          "rows": 1,
          "columns": 2,
          "angle": 0,
          "label": "sampling"
        }
      ]
    },
    {
      "id": "entry",
      "name": "위생 전실·작업복",
      "role": "staff",
      "building_id": "milk",
      "x": 40,
      "y": 44,
      "width": 9,
      "depth": 10,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "lockers",
          "type": "locker_bank",
          "x": 44,
          "y": 50,
          "width": 5,
          "depth": 5,
          "height": 2,
          "count": 10,
          "rows": 2,
          "columns": 5,
          "angle": 0,
          "label": "lockers"
        },
        {
          "id": "handwash",
          "type": "wash_station",
          "x": 46.5,
          "y": 45.5,
          "width": 3,
          "depth": 1.5,
          "height": 1.2,
          "count": 2,
          "rows": 1,
          "columns": 2,
          "angle": 0,
          "label": "handwash"
        }
      ]
    },
    {
      "id": "office-room",
      "name": "관리·접견",
      "role": "office",
      "building_id": "office",
      "x": 10,
      "y": 27,
      "width": 15,
      "depth": 9,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "desks",
          "type": "office_desks",
          "x": 17,
          "y": 31,
          "width": 10,
          "depth": 5,
          "height": 1.2,
          "count": 6,
          "rows": 2,
          "columns": 3,
          "angle": 0,
          "label": "desks"
        }
      ]
    },
    {
      "id": "intake-lab",
      "name": "수입 원유 검사",
      "role": "laboratory",
      "building_id": "office",
      "x": 10,
      "y": 36,
      "width": 15,
      "depth": 7,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "raw-milk-lab",
          "type": "lab_bench",
          "x": 17,
          "y": 39.5,
          "width": 10,
          "depth": 4,
          "height": 1.3,
          "count": 3,
          "rows": 1,
          "columns": 3,
          "angle": 0,
          "label": "raw-milk-lab"
        }
      ]
    },
    {
      "id": "cip",
      "name": "CIP·밸브 정비",
      "role": "utility",
      "building_id": "utilities",
      "x": 10,
      "y": 57,
      "width": 15,
      "depth": 11,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "cip-skid",
          "type": "cip_skid",
          "x": 15,
          "y": 62,
          "width": 7,
          "depth": 7,
          "height": 3.8,
          "count": 1,
          "rows": 1,
          "columns": 1,
          "angle": 0,
          "label": "cip-skid"
        },
        {
          "id": "valve-bench",
          "type": "workbench",
          "x": 22,
          "y": 62,
          "width": 3,
          "depth": 6,
          "height": 1.2,
          "count": 2,
          "rows": 2,
          "columns": 1,
          "angle": 0,
          "label": "valve-bench"
        }
      ]
    },
    {
      "id": "cold-plant",
      "name": "냉동기·압축공기",
      "role": "utility",
      "building_id": "utilities",
      "x": 10,
      "y": 68,
      "width": 15,
      "depth": 11,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "chiller",
          "type": "chiller",
          "x": 15,
          "y": 73,
          "width": 7,
          "depth": 7,
          "height": 3,
          "count": 1,
          "rows": 1,
          "columns": 1,
          "angle": 0,
          "label": "chiller"
        },
        {
          "id": "compressed-air",
          "type": "compressor",
          "x": 22,
          "y": 73,
          "width": 3,
          "depth": 6,
          "height": 2,
          "count": 1,
          "rows": 1,
          "columns": 1,
          "angle": 0,
          "label": "compressed-air"
        }
      ]
    }
  ],
  "equipment": [
    {
      "stage_id": "S01",
      "index": 0,
      "x": 35,
      "y": 59,
      "angle": 0
    },
    {
      "stage_id": "S01",
      "index": 1,
      "x": 42.5,
      "y": 59,
      "angle": 0
    },
    {
      "stage_id": "S01",
      "index": 2,
      "x": 35,
      "y": 67,
      "angle": 0
    },
    {
      "stage_id": "S01",
      "index": 3,
      "x": 42.5,
      "y": 67,
      "angle": 0
    },
    {
      "stage_id": "S01",
      "index": 4,
      "x": 35,
      "y": 75,
      "angle": 0
    },
    {
      "stage_id": "S01",
      "index": 5,
      "x": 42.5,
      "y": 75,
      "angle": 0
    },
    {
      "stage_id": "S02",
      "index": 0,
      "x": 52,
      "y": 58,
      "angle": 0
    },
    {
      "stage_id": "S02",
      "index": 1,
      "x": 52,
      "y": 65,
      "angle": 0
    },
    {
      "stage_id": "S03",
      "index": 0,
      "x": 58.5,
      "y": 58,
      "angle": 0
    },
    {
      "stage_id": "S03",
      "index": 1,
      "x": 58.5,
      "y": 65,
      "angle": 0
    },
    {
      "stage_id": "S04",
      "index": 0,
      "x": 65,
      "y": 58,
      "angle": 0
    },
    {
      "stage_id": "S04",
      "index": 1,
      "x": 65,
      "y": 65,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 0,
      "x": 72.5,
      "y": 58,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 1,
      "x": 79.5,
      "y": 58,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 2,
      "x": 72.5,
      "y": 67,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 3,
      "x": 79.5,
      "y": 67,
      "angle": 0
    },
    {
      "stage_id": "S06",
      "index": 0,
      "x": 55,
      "y": 42,
      "angle": 0
    },
    {
      "stage_id": "S06",
      "index": 1,
      "x": 68,
      "y": 42,
      "angle": 0
    },
    {
      "stage_id": "S06",
      "index": 2,
      "x": 61.5,
      "y": 50,
      "angle": 0
    },
    {
      "stage_id": "S07",
      "index": 0,
      "x": 79,
      "y": 41,
      "angle": 0
    },
    {
      "stage_id": "S07",
      "index": 1,
      "x": 79,
      "y": 46,
      "angle": 0
    },
    {
      "stage_id": "S07",
      "index": 2,
      "x": 79,
      "y": 51,
      "angle": 0
    },
    {
      "stage_id": "S08",
      "index": 0,
      "x": 54.5,
      "y": 31,
      "angle": 0
    },
    {
      "stage_id": "S08",
      "index": 1,
      "x": 65.5,
      "y": 31,
      "angle": 0
    },
    {
      "stage_id": "S08",
      "index": 2,
      "x": 76.5,
      "y": 31,
      "angle": 0
    }
  ],
  "robots": [
    {
      "definition_index": 0,
      "instance_index": 0,
      "stage_id": "S08",
      "x": 86.8,
      "y": 36.5,
      "angle": 0,
      "task_station": "F01-robot-case-1",
      "task_point": [
        87.8,
        36.5,
        1.18
      ],
      "task_points": [
        [
          87.8,
          36.5,
          1.18
        ],
        [
          88.4,
          36.5,
          1.35
        ]
      ],
      "task_fixture": {
        "fixture_ids": [
          "F01-robot-case-1"
        ],
        "target_basis": "actual generated mesh contact surfaces"
      },
      "controller_offset": [
        0,
        -1.25,
        0
      ],
      "station_correction": {
        "revision": 1,
        "previous_position": [
          59.5,
          35,
          0
        ],
        "reason": "최종 포장 제품을 밀폐 카트로 받아 실제 트레이 상면에서 외포장 상자로 인계한다."
      },
      "motion_scope": "실제 접촉 TCP의 대표 이송 동작이며 전체 동작 충돌·위생·안전 검수는 별도"
    },
    {
      "definition_index": 0,
      "instance_index": 1,
      "stage_id": "S08",
      "x": 86.8,
      "y": 46.5,
      "angle": 0,
      "task_station": "F01-robot-case-2",
      "task_point": [
        87.8,
        46.5,
        1.18
      ],
      "task_points": [
        [
          87.8,
          46.5,
          1.18
        ],
        [
          88.4,
          46.5,
          1.35
        ]
      ],
      "task_fixture": {
        "fixture_ids": [
          "F01-robot-case-2"
        ],
        "target_basis": "actual generated mesh contact surfaces"
      },
      "controller_offset": [
        0,
        -1.25,
        0
      ],
      "station_correction": {
        "revision": 1,
        "previous_position": [
          70.5,
          35,
          0
        ],
        "reason": "최종 포장 제품을 밀폐 카트로 받아 실제 트레이 상면에서 외포장 상자로 인계한다."
      },
      "motion_scope": "실제 접촉 TCP의 대표 이송 동작이며 전체 동작 충돌·위생·안전 검수는 별도"
    },
    {
      "definition_index": 1,
      "instance_index": 0,
      "stage_id": "S08",
      "x": 91,
      "y": 36.5,
      "angle": 0,
      "task_station": "F01-robot-pallet-1",
      "task_point": [
        88.4,
        36.5,
        1.35
      ],
      "task_points": [
        [
          88.4,
          36.5,
          1.35
        ],
        [
          92.24436,
          38.0,
          1.4
        ]
      ],
      "task_fixture": {
        "fixture_ids": [
          "F01-robot-case-1",
          "F01-robot-pallet-1"
        ],
        "target_basis": "actual generated mesh contact surfaces"
      },
      "controller_offset": [
        0,
        -1.25,
        0
      ],
      "station_correction": {
        "revision": 1,
        "previous_position": [
          89,
          32,
          0
        ],
        "reason": "박스 인계대의 실제 상자 윗면에서 집어 인접 출하 팔레트의 실제 상자 위치로 적층한다."
      },
      "motion_scope": "실제 접촉 TCP의 대표 이송 동작이며 전체 동작 충돌·위생·안전 검수는 별도"
    },
    {
      "definition_index": 1,
      "instance_index": 1,
      "stage_id": "S08",
      "x": 91,
      "y": 46.5,
      "angle": 0,
      "task_station": "F01-robot-pallet-2",
      "task_point": [
        88.4,
        46.5,
        1.35
      ],
      "task_points": [
        [
          88.4,
          46.5,
          1.35
        ],
        [
          92.24436,
          48.0,
          1.4
        ]
      ],
      "task_fixture": {
        "fixture_ids": [
          "F01-robot-case-2",
          "F01-robot-pallet-2"
        ],
        "target_basis": "actual generated mesh contact surfaces"
      },
      "controller_offset": [
        0,
        -1.25,
        0
      ],
      "station_correction": {
        "revision": 1,
        "previous_position": [
          89,
          44,
          0
        ],
        "reason": "박스 인계대의 실제 상자 윗면에서 집어 인접 출하 팔레트의 실제 상자 위치로 적층한다."
      },
      "motion_scope": "실제 접촉 TCP의 대표 이송 동작이며 전체 동작 충돌·위생·안전 검수는 별도"
    },
    {
      "definition_index": 2,
      "instance_index": 0,
      "stage_id": "S08",
      "x": 33,
      "y": 41,
      "angle": 0,
      "task_station": "포장재 창고 출구의 밀폐 토트 보급"
    },
    {
      "definition_index": 2,
      "instance_index": 1,
      "stage_id": "S08",
      "x": 46,
      "y": 41,
      "angle": 0,
      "task_station": "포장재 창고 출구의 밀폐 토트 보급"
    },
    {
      "definition_index": 2,
      "instance_index": 2,
      "stage_id": "S08",
      "x": 47,
      "y": 35,
      "angle": 0,
      "task_station": "포장재 창고 출구의 밀폐 토트 보급"
    }
  ],
  "logistics": [
    {
      "id": "staff-hygiene",
      "kind": "pedestrian",
      "from": "office-room",
      "to": "entry",
      "points": [
        [
          25,
          32,
          0.2
        ],
        [
          28,
          32,
          0.2
        ],
        [
          28,
          45,
          0.2
        ],
        [
          41,
          45,
          0.2
        ]
      ],
      "width": 1.2,
      "design_note": "검사대 남쪽 1m 이격 통로를 따라 위생 전실에 도달한다. 건물 외벽과 각 부서벽 개구부를 각각 기록한다."
    },
    {
      "id": "packaging-totes",
      "kind": "amr",
      "from": "materials",
      "to": "pack",
      "points": [
        [
          46,
          41,
          0.2
        ],
        [
          47.5,
          41,
          0.2
        ],
        [
          47.5,
          35,
          0.2
        ],
        [
          50,
          35,
          0.2
        ]
      ],
      "width": 1.2
    },
    {
      "id": "F01-liquid-F01-S01-S02-0",
      "kind": "pipe",
      "from": "S01",
      "to": "S02",
      "points": [
        [
          36.8,
          56.4,
          0.73
        ],
        [
          36.8,
          56.35,
          0.73
        ],
        [
          36.8,
          56.35,
          10.65
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review",
      "equipment_base_z_m": 0.28,
      "port_height_correction_m": 0.08
    },
    {
      "id": "F01-liquid-F01-S01-S02-1",
      "kind": "pipe",
      "from": "S01",
      "to": "S02",
      "points": [
        [
          44.3,
          56.4,
          0.73
        ],
        [
          44.3,
          56.35,
          0.73
        ],
        [
          44.3,
          56.35,
          10.65
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review",
      "equipment_base_z_m": 0.28,
      "port_height_correction_m": 0.08
    },
    {
      "id": "F01-liquid-F01-S01-S02-2",
      "kind": "pipe",
      "from": "S01",
      "to": "S02",
      "points": [
        [
          36.8,
          64.4,
          0.73
        ],
        [
          36.8,
          64.35,
          0.73
        ],
        [
          36.8,
          64.35,
          10.65
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review",
      "equipment_base_z_m": 0.28,
      "port_height_correction_m": 0.08
    },
    {
      "id": "F01-liquid-F01-S01-S02-3",
      "kind": "pipe",
      "from": "S01",
      "to": "S02",
      "points": [
        [
          44.3,
          64.4,
          0.73
        ],
        [
          44.3,
          64.35,
          0.73
        ],
        [
          44.3,
          64.35,
          10.65
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review",
      "equipment_base_z_m": 0.28,
      "port_height_correction_m": 0.08
    },
    {
      "id": "F01-liquid-F01-S01-S02-4",
      "kind": "pipe",
      "from": "S01",
      "to": "S02",
      "points": [
        [
          36.8,
          72.4,
          0.73
        ],
        [
          36.8,
          72.35,
          0.73
        ],
        [
          36.8,
          72.35,
          10.65
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review",
      "equipment_base_z_m": 0.28,
      "port_height_correction_m": 0.08
    },
    {
      "id": "F01-liquid-F01-S01-S02-5",
      "kind": "pipe",
      "from": "S01",
      "to": "S02",
      "points": [
        [
          44.3,
          72.4,
          0.73
        ],
        [
          44.3,
          72.35,
          0.73
        ],
        [
          44.3,
          72.35,
          10.65
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review",
      "equipment_base_z_m": 0.28,
      "port_height_correction_m": 0.08
    },
    {
      "id": "F01-liquid-F01-S01-S02-6",
      "kind": "pipe",
      "from": "S01",
      "to": "S02",
      "points": [
        [
          52.0,
          56.65,
          2.78
        ],
        [
          52.0,
          55.85,
          2.78
        ],
        [
          52.0,
          55.85,
          10.65
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review",
      "equipment_base_z_m": 0.28,
      "port_height_correction_m": 0.08
    },
    {
      "id": "F01-liquid-F01-S01-S02-7",
      "kind": "pipe",
      "from": "S01",
      "to": "S02",
      "points": [
        [
          52.0,
          63.65,
          2.78
        ],
        [
          52.0,
          62.85,
          2.78
        ],
        [
          52.0,
          62.85,
          10.65
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review",
      "equipment_base_z_m": 0.28,
      "port_height_correction_m": 0.08
    },
    {
      "id": "F01-liquid-F01-S01-S02-8",
      "kind": "pipe",
      "from": "S01",
      "to": "S02",
      "points": [
        [
          36.8,
          56.35,
          10.65
        ],
        [
          52.0,
          56.35,
          10.65
        ],
        [
          52.0,
          55.85,
          10.65
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review"
    },
    {
      "id": "F01-liquid-F01-S01-S02-9",
      "kind": "pipe",
      "from": "S01",
      "to": "S02",
      "points": [
        [
          44.3,
          56.35,
          10.65
        ],
        [
          36.8,
          56.35,
          10.65
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review"
    },
    {
      "id": "F01-liquid-F01-S01-S02-10",
      "kind": "pipe",
      "from": "S01",
      "to": "S02",
      "points": [
        [
          36.8,
          64.35,
          10.65
        ],
        [
          36.8,
          56.35,
          10.65
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review"
    },
    {
      "id": "F01-liquid-F01-S01-S02-11",
      "kind": "pipe",
      "from": "S01",
      "to": "S02",
      "points": [
        [
          44.3,
          64.35,
          10.65
        ],
        [
          36.8,
          64.35,
          10.65
        ],
        [
          36.8,
          56.35,
          10.65
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review"
    },
    {
      "id": "F01-liquid-F01-S01-S02-12",
      "kind": "pipe",
      "from": "S01",
      "to": "S02",
      "points": [
        [
          36.8,
          72.35,
          10.65
        ],
        [
          36.8,
          56.35,
          10.65
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review"
    },
    {
      "id": "F01-liquid-F01-S01-S02-13",
      "kind": "pipe",
      "from": "S01",
      "to": "S02",
      "points": [
        [
          44.3,
          72.35,
          10.65
        ],
        [
          36.8,
          72.35,
          10.65
        ],
        [
          36.8,
          56.35,
          10.65
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review"
    },
    {
      "id": "F01-liquid-F01-S01-S02-14",
      "kind": "pipe",
      "from": "S01",
      "to": "S02",
      "points": [
        [
          52.0,
          55.85,
          10.65
        ],
        [
          52.0,
          62.85,
          10.65
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review"
    },
    {
      "id": "F01-liquid-F01-S02-S03-0",
      "kind": "pipe",
      "from": "S02",
      "to": "S03",
      "points": [
        [
          53.5,
          56.65,
          2.78
        ],
        [
          53.5,
          55.85,
          2.78
        ],
        [
          53.5,
          55.85,
          10.43
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review",
      "equipment_base_z_m": 0.28,
      "port_height_correction_m": 0.08
    },
    {
      "id": "F01-liquid-F01-S02-S03-1",
      "kind": "pipe",
      "from": "S02",
      "to": "S03",
      "points": [
        [
          53.5,
          63.65,
          2.78
        ],
        [
          53.5,
          62.85,
          2.78
        ],
        [
          53.5,
          62.85,
          10.43
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review",
      "equipment_base_z_m": 0.28,
      "port_height_correction_m": 0.08
    },
    {
      "id": "F01-liquid-F01-S02-S03-2",
      "kind": "pipe",
      "from": "S02",
      "to": "S03",
      "points": [
        [
          59.95,
          56.62,
          1.69
        ],
        [
          59.95,
          55.85,
          1.69
        ],
        [
          59.95,
          55.85,
          10.43
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review",
      "equipment_base_z_m": 0.28,
      "port_height_correction_m": 0.08
    },
    {
      "id": "F01-liquid-F01-S02-S03-3",
      "kind": "pipe",
      "from": "S02",
      "to": "S03",
      "points": [
        [
          59.95,
          63.62,
          1.69
        ],
        [
          59.95,
          62.85,
          1.69
        ],
        [
          59.95,
          62.85,
          10.43
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review",
      "equipment_base_z_m": 0.28,
      "port_height_correction_m": 0.08
    },
    {
      "id": "F01-liquid-F01-S02-S03-4",
      "kind": "pipe",
      "from": "S02",
      "to": "S03",
      "points": [
        [
          53.5,
          55.85,
          10.43
        ],
        [
          59.95,
          55.85,
          10.43
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review"
    },
    {
      "id": "F01-liquid-F01-S02-S03-5",
      "kind": "pipe",
      "from": "S02",
      "to": "S03",
      "points": [
        [
          53.5,
          62.85,
          10.43
        ],
        [
          53.5,
          55.85,
          10.43
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review"
    },
    {
      "id": "F01-liquid-F01-S02-S03-6",
      "kind": "pipe",
      "from": "S02",
      "to": "S03",
      "points": [
        [
          59.95,
          55.85,
          10.43
        ],
        [
          59.95,
          62.85,
          10.43
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review"
    },
    {
      "id": "F01-liquid-F01-S03-S04-0",
      "kind": "pipe",
      "from": "S03",
      "to": "S04",
      "points": [
        [
          60.75,
          57.1,
          2.85
        ],
        [
          60.75,
          55.85,
          2.85
        ],
        [
          60.75,
          55.85,
          10.21
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review",
      "equipment_base_z_m": 0.28,
      "port_height_correction_m": 0.08
    },
    {
      "id": "F01-liquid-F01-S03-S04-1",
      "kind": "pipe",
      "from": "S03",
      "to": "S04",
      "points": [
        [
          60.75,
          64.1,
          2.85
        ],
        [
          60.75,
          62.85,
          2.85
        ],
        [
          60.75,
          62.85,
          10.21
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review",
      "equipment_base_z_m": 0.28,
      "port_height_correction_m": 0.08
    },
    {
      "id": "F01-liquid-F01-S03-S04-2",
      "kind": "pipe",
      "from": "S03",
      "to": "S04",
      "points": [
        [
          62.5,
          57.34,
          1.4
        ],
        [
          61.85,
          57.34,
          1.4
        ],
        [
          61.85,
          57.34,
          10.21
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review",
      "equipment_base_z_m": 0.28,
      "port_height_correction_m": 0.08
    },
    {
      "id": "F01-liquid-F01-S03-S04-3",
      "kind": "pipe",
      "from": "S03",
      "to": "S04",
      "points": [
        [
          62.5,
          64.34,
          1.4
        ],
        [
          61.85,
          64.34,
          1.4
        ],
        [
          61.85,
          64.34,
          10.21
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review",
      "equipment_base_z_m": 0.28,
      "port_height_correction_m": 0.08
    },
    {
      "id": "F01-liquid-F01-S03-S04-4",
      "kind": "pipe",
      "from": "S03",
      "to": "S04",
      "points": [
        [
          60.75,
          55.85,
          10.21
        ],
        [
          61.85,
          55.85,
          10.21
        ],
        [
          61.85,
          57.34,
          10.21
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review"
    },
    {
      "id": "F01-liquid-F01-S03-S04-5",
      "kind": "pipe",
      "from": "S03",
      "to": "S04",
      "points": [
        [
          60.75,
          62.85,
          10.21
        ],
        [
          60.75,
          55.85,
          10.21
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review"
    },
    {
      "id": "F01-liquid-F01-S03-S04-6",
      "kind": "pipe",
      "from": "S03",
      "to": "S04",
      "points": [
        [
          61.85,
          57.34,
          10.21
        ],
        [
          61.85,
          64.34,
          10.21
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review"
    },
    {
      "id": "F01-liquid-F01-S04-S05-0",
      "kind": "pipe",
      "from": "S04",
      "to": "S05",
      "points": [
        [
          62.5,
          58.66,
          2.16
        ],
        [
          61.85,
          58.66,
          2.16
        ],
        [
          61.85,
          58.66,
          9.99
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review",
      "equipment_base_z_m": 0.28,
      "port_height_correction_m": 0.08
    },
    {
      "id": "F01-liquid-F01-S04-S05-1",
      "kind": "pipe",
      "from": "S04",
      "to": "S05",
      "points": [
        [
          62.5,
          65.66,
          2.16
        ],
        [
          61.85,
          65.66,
          2.16
        ],
        [
          61.85,
          65.66,
          9.99
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review",
      "equipment_base_z_m": 0.28,
      "port_height_correction_m": 0.08
    },
    {
      "id": "F01-liquid-F01-S04-S05-2",
      "kind": "pipe",
      "from": "S04",
      "to": "S05",
      "points": [
        [
          72.5,
          56.32,
          4.95
        ],
        [
          72.5,
          55.35,
          4.95
        ],
        [
          72.5,
          55.35,
          9.99
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review",
      "equipment_base_z_m": 0.28,
      "port_height_correction_m": 0.08
    },
    {
      "id": "F01-liquid-F01-S04-S05-3",
      "kind": "pipe",
      "from": "S04",
      "to": "S05",
      "points": [
        [
          79.5,
          56.32,
          4.95
        ],
        [
          79.5,
          55.35,
          4.95
        ],
        [
          79.5,
          55.35,
          9.99
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review",
      "equipment_base_z_m": 0.28,
      "port_height_correction_m": 0.08
    },
    {
      "id": "F01-liquid-F01-S04-S05-4",
      "kind": "pipe",
      "from": "S04",
      "to": "S05",
      "points": [
        [
          72.5,
          65.32,
          4.95
        ],
        [
          72.5,
          64.35,
          4.95
        ],
        [
          72.5,
          64.35,
          9.99
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review",
      "equipment_base_z_m": 0.28,
      "port_height_correction_m": 0.08
    },
    {
      "id": "F01-liquid-F01-S04-S05-5",
      "kind": "pipe",
      "from": "S04",
      "to": "S05",
      "points": [
        [
          79.5,
          65.32,
          4.95
        ],
        [
          79.5,
          64.35,
          4.95
        ],
        [
          79.5,
          64.35,
          9.99
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review",
      "equipment_base_z_m": 0.28,
      "port_height_correction_m": 0.08
    },
    {
      "id": "F01-liquid-F01-S04-S05-6",
      "kind": "pipe",
      "from": "S04",
      "to": "S05",
      "points": [
        [
          61.85,
          58.66,
          9.99
        ],
        [
          72.5,
          58.66,
          9.99
        ],
        [
          72.5,
          55.35,
          9.99
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review"
    },
    {
      "id": "F01-liquid-F01-S04-S05-7",
      "kind": "pipe",
      "from": "S04",
      "to": "S05",
      "points": [
        [
          61.85,
          65.66,
          9.99
        ],
        [
          61.85,
          64.6,
          9.99
        ],
        [
          61.59,
          64.6,
          9.99
        ],
        [
          61.59,
          64.08,
          9.99
        ],
        [
          61.85,
          64.08,
          9.99
        ],
        [
          61.85,
          58.66,
          9.99
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review"
    },
    {
      "id": "F01-liquid-F01-S04-S05-8",
      "kind": "pipe",
      "from": "S04",
      "to": "S05",
      "points": [
        [
          72.5,
          55.35,
          9.99
        ],
        [
          79.5,
          55.35,
          9.99
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review"
    },
    {
      "id": "F01-liquid-F01-S04-S05-9",
      "kind": "pipe",
      "from": "S04",
      "to": "S05",
      "points": [
        [
          72.5,
          55.35,
          9.99
        ],
        [
          72.5,
          64.35,
          9.99
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review"
    },
    {
      "id": "F01-liquid-F01-S04-S05-10",
      "kind": "pipe",
      "from": "S04",
      "to": "S05",
      "points": [
        [
          72.5,
          55.35,
          9.99
        ],
        [
          79.5,
          55.35,
          9.99
        ],
        [
          79.5,
          64.35,
          9.99
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review"
    },
    {
      "id": "F01-liquid-F01-S05-S06-0",
      "kind": "pipe",
      "from": "S05",
      "to": "S06",
      "points": [
        [
          74.3,
          55.4,
          0.73
        ],
        [
          74.3,
          55.35,
          0.73
        ],
        [
          74.3,
          55.35,
          9.77
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review",
      "equipment_base_z_m": 0.28,
      "port_height_correction_m": 0.08
    },
    {
      "id": "F01-liquid-F01-S05-S06-1",
      "kind": "pipe",
      "from": "S05",
      "to": "S06",
      "points": [
        [
          81.3,
          55.4,
          0.73
        ],
        [
          81.3,
          55.35,
          0.73
        ],
        [
          81.3,
          55.35,
          9.77
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review",
      "equipment_base_z_m": 0.28,
      "port_height_correction_m": 0.08
    },
    {
      "id": "F01-liquid-F01-S05-S06-2",
      "kind": "pipe",
      "from": "S05",
      "to": "S06",
      "points": [
        [
          74.3,
          64.4,
          0.73
        ],
        [
          74.3,
          64.35,
          0.73
        ],
        [
          74.3,
          64.35,
          9.77
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review",
      "equipment_base_z_m": 0.28,
      "port_height_correction_m": 0.08
    },
    {
      "id": "F01-liquid-F01-S05-S06-3",
      "kind": "pipe",
      "from": "S05",
      "to": "S06",
      "points": [
        [
          81.3,
          64.4,
          0.73
        ],
        [
          81.3,
          64.35,
          0.73
        ],
        [
          81.3,
          64.35,
          9.77
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review",
      "equipment_base_z_m": 0.28,
      "port_height_correction_m": 0.08
    },
    {
      "id": "F01-liquid-F01-S05-S06-4",
      "kind": "pipe",
      "from": "S05",
      "to": "S06",
      "points": [
        [
          58.2,
          44.4,
          2.58
        ],
        [
          58.2,
          45.15,
          2.58
        ],
        [
          58.2,
          45.15,
          9.77
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review",
      "equipment_base_z_m": 0.28,
      "port_height_correction_m": 0.08
    },
    {
      "id": "F01-liquid-F01-S05-S06-5",
      "kind": "pipe",
      "from": "S05",
      "to": "S06",
      "points": [
        [
          71.2,
          44.4,
          2.58
        ],
        [
          71.2,
          45.15,
          2.58
        ],
        [
          71.2,
          45.15,
          9.77
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review",
      "equipment_base_z_m": 0.28,
      "port_height_correction_m": 0.08
    },
    {
      "id": "F01-liquid-F01-S05-S06-6",
      "kind": "pipe",
      "from": "S05",
      "to": "S06",
      "points": [
        [
          64.7,
          52.4,
          2.58
        ],
        [
          64.7,
          53.15,
          2.58
        ],
        [
          64.7,
          53.15,
          9.77
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review",
      "equipment_base_z_m": 0.28,
      "port_height_correction_m": 0.08
    },
    {
      "id": "F01-liquid-F01-S05-S06-7",
      "kind": "pipe",
      "from": "S05",
      "to": "S06",
      "points": [
        [
          74.3,
          55.35,
          9.77
        ],
        [
          74.3,
          45.15,
          9.77
        ],
        [
          58.2,
          45.15,
          9.77
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review"
    },
    {
      "id": "F01-liquid-F01-S05-S06-8",
      "kind": "pipe",
      "from": "S05",
      "to": "S06",
      "points": [
        [
          81.3,
          55.35,
          9.77
        ],
        [
          79.76,
          55.35,
          9.77
        ],
        [
          79.76,
          55.59,
          9.77
        ],
        [
          74.3,
          55.59,
          9.77
        ],
        [
          74.3,
          55.35,
          9.77
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review"
    },
    {
      "id": "F01-liquid-F01-S05-S06-9",
      "kind": "pipe",
      "from": "S05",
      "to": "S06",
      "points": [
        [
          74.3,
          64.35,
          9.77
        ],
        [
          74.3,
          55.35,
          9.77
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review"
    },
    {
      "id": "F01-liquid-F01-S05-S06-10",
      "kind": "pipe",
      "from": "S05",
      "to": "S06",
      "points": [
        [
          81.3,
          64.35,
          9.77
        ],
        [
          81.3,
          55.59,
          9.77
        ],
        [
          74.3,
          55.59,
          9.77
        ],
        [
          74.3,
          55.35,
          9.77
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review"
    },
    {
      "id": "F01-liquid-F01-S05-S06-11",
      "kind": "pipe",
      "from": "S05",
      "to": "S06",
      "points": [
        [
          58.2,
          45.15,
          9.77
        ],
        [
          71.2,
          45.15,
          9.77
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review"
    },
    {
      "id": "F01-liquid-F01-S05-S06-12",
      "kind": "pipe",
      "from": "S05",
      "to": "S06",
      "points": [
        [
          58.2,
          45.15,
          9.77
        ],
        [
          64.7,
          45.15,
          9.77
        ],
        [
          64.7,
          53.15,
          9.77
        ]
      ],
      "width": 0.11,
      "transfer_method": "milk",
      "review_status": "synthetic_ports_require_equipment_review"
    },
    {
      "id": "F01-solid-S06-S07-0",
      "kind": "conveyor",
      "from": "S06",
      "to": "S07",
      "points": [
        [
          59.0,
          42.0,
          1.12
        ],
        [
          59.6,
          42.0,
          1.12
        ],
        [
          61.94,
          42.0,
          1.12
        ],
        [
          61.94,
          41.0,
          1.12
        ],
        [
          63.44,
          41.0,
          1.12
        ],
        [
          63.44,
          38.94,
          1.12
        ],
        [
          75.9,
          38.94,
          1.12
        ],
        [
          75.9,
          41.0,
          1.12
        ],
        [
          76.5,
          41.0,
          1.12
        ]
      ],
      "width": 0.7,
      "transfer_method": "product_belt_with_transfer_plates",
      "review_status": "synthetic_transfer_requires_hygiene_and_controls_review"
    },
    {
      "id": "F01-solid-S06-S07-1",
      "kind": "conveyor",
      "from": "S06",
      "to": "S07",
      "points": [
        [
          72.0,
          42.0,
          1.12
        ],
        [
          72.6,
          42.0,
          1.12
        ],
        [
          75.9,
          42.0,
          1.12
        ],
        [
          75.9,
          46.0,
          1.12
        ],
        [
          76.5,
          46.0,
          1.12
        ]
      ],
      "width": 0.7,
      "transfer_method": "product_belt_with_transfer_plates",
      "review_status": "synthetic_transfer_requires_hygiene_and_controls_review"
    },
    {
      "id": "F01-solid-S06-S07-2",
      "kind": "conveyor",
      "from": "S06",
      "to": "S07",
      "points": [
        [
          65.5,
          50.0,
          1.12
        ],
        [
          66.1,
          50.0,
          1.12
        ],
        [
          75.9,
          50.0,
          1.12
        ],
        [
          75.9,
          51.0,
          1.12
        ],
        [
          76.5,
          51.0,
          1.12
        ]
      ],
      "width": 0.7,
      "transfer_method": "product_belt_with_transfer_plates",
      "review_status": "synthetic_transfer_requires_hygiene_and_controls_review"
    },
    {
      "id": "F01-solid-S07-S08-0",
      "kind": "conveyor",
      "from": "S07",
      "to": "S08",
      "points": [
        [
          81.5,
          41.0,
          1.12
        ],
        [
          82.1,
          41.0,
          1.12
        ],
        [
          82.06,
          41.0,
          1.12
        ],
        [
          82.06,
          38.94,
          1.12
        ],
        [
          49.9,
          38.94,
          1.12
        ],
        [
          49.9,
          31.0,
          1.12
        ],
        [
          50.5,
          31.0,
          1.12
        ]
      ],
      "width": 0.7,
      "transfer_method": "product_belt_with_transfer_plates",
      "review_status": "synthetic_transfer_requires_hygiene_and_controls_review"
    },
    {
      "id": "F01-solid-S07-S08-1",
      "kind": "conveyor",
      "from": "S07",
      "to": "S08",
      "points": [
        [
          81.5,
          46.0,
          1.12
        ],
        [
          82.1,
          46.0,
          1.12
        ],
        [
          82.06,
          46.0,
          1.12
        ],
        [
          82.06,
          43.94,
          1.12
        ],
        [
          74.45,
          43.94,
          1.12
        ],
        [
          74.45,
          38.94,
          1.12
        ],
        [
          60.9,
          38.94,
          1.12
        ],
        [
          60.9,
          31.0,
          1.12
        ],
        [
          61.5,
          31.0,
          1.12
        ]
      ],
      "width": 0.7,
      "transfer_method": "product_belt_with_transfer_plates",
      "review_status": "synthetic_transfer_requires_hygiene_and_controls_review"
    },
    {
      "id": "F01-solid-S07-S08-2",
      "kind": "conveyor",
      "from": "S07",
      "to": "S08",
      "points": [
        [
          81.5,
          51.0,
          1.12
        ],
        [
          82.1,
          51.0,
          1.12
        ],
        [
          82.06,
          51.0,
          1.12
        ],
        [
          82.06,
          43.94,
          1.12
        ],
        [
          74.45,
          43.94,
          1.12
        ],
        [
          74.45,
          38.94,
          1.12
        ],
        [
          71.9,
          38.94,
          1.12
        ],
        [
          71.9,
          31.0,
          1.12
        ],
        [
          72.5,
          31.0,
          1.12
        ]
      ],
      "width": 0.7,
      "transfer_method": "product_belt_with_transfer_plates",
      "review_status": "synthetic_transfer_requires_hygiene_and_controls_review"
    },
    {
      "id": "F01-raw-dock-1",
      "kind": "pipe",
      "from": "raw-dock",
      "to": "S01",
      "points": [
        [
          38,
          79,
          1.2
        ],
        [
          38,
          78,
          1.2
        ],
        [
          38,
          78,
          7.8
        ]
      ],
      "width": 0.12,
      "transfer_method": "milk",
      "design_note": "집유 도크별 위생 커플링에서 수유 사일로 사이의 x=38 공동 수유 헤더로 연결한다."
    },
    {
      "id": "F01-raw-dock-2",
      "kind": "pipe",
      "from": "raw-dock",
      "to": "S01",
      "points": [
        [
          45,
          79,
          1.2
        ],
        [
          45,
          78,
          1.2
        ],
        [
          38,
          78,
          1.2
        ]
      ],
      "width": 0.12,
      "transfer_method": "milk",
      "design_note": "집유 도크별 위생 커플링에서 수유 사일로 사이의 x=38 공동 수유 헤더로 연결한다."
    },
    {
      "id": "F01-raw-silo-branch-0",
      "kind": "pipe",
      "from": "raw-dock",
      "to": "S01",
      "points": [
        [
          38,
          57.32,
          7.8
        ],
        [
          35,
          57.32,
          7.8
        ],
        [
          35,
          57.32,
          6.96
        ]
      ],
      "width": 0.12,
      "transfer_method": "milk",
      "design_note": "공동 수유 헤더에서 S01 인스턴스 0의 남측 상부 위생 노즐로 분기한다."
    },
    {
      "id": "F01-raw-silo-branch-1",
      "kind": "pipe",
      "from": "raw-dock",
      "to": "S01",
      "points": [
        [
          38,
          57.32,
          7.8
        ],
        [
          42.5,
          57.32,
          7.8
        ],
        [
          42.5,
          57.32,
          6.96
        ]
      ],
      "width": 0.12,
      "transfer_method": "milk",
      "design_note": "공동 수유 헤더에서 S01 인스턴스 1의 남측 상부 위생 노즐로 분기한다."
    },
    {
      "id": "F01-raw-silo-branch-2",
      "kind": "pipe",
      "from": "raw-dock",
      "to": "S01",
      "points": [
        [
          38,
          65.32,
          7.8
        ],
        [
          35,
          65.32,
          7.8
        ],
        [
          35,
          65.32,
          6.96
        ]
      ],
      "width": 0.12,
      "transfer_method": "milk",
      "design_note": "공동 수유 헤더에서 S01 인스턴스 2의 남측 상부 위생 노즐로 분기한다."
    },
    {
      "id": "F01-raw-silo-branch-3",
      "kind": "pipe",
      "from": "raw-dock",
      "to": "S01",
      "points": [
        [
          38,
          65.32,
          7.8
        ],
        [
          42.5,
          65.32,
          7.8
        ],
        [
          42.5,
          65.32,
          6.96
        ]
      ],
      "width": 0.12,
      "transfer_method": "milk",
      "design_note": "공동 수유 헤더에서 S01 인스턴스 3의 남측 상부 위생 노즐로 분기한다."
    },
    {
      "id": "F01-raw-silo-branch-4",
      "kind": "pipe",
      "from": "raw-dock",
      "to": "S01",
      "points": [
        [
          38,
          73.32,
          7.8
        ],
        [
          35,
          73.32,
          7.8
        ],
        [
          35,
          73.32,
          6.96
        ]
      ],
      "width": 0.12,
      "transfer_method": "milk",
      "design_note": "공동 수유 헤더에서 S01 인스턴스 4의 남측 상부 위생 노즐로 분기한다."
    },
    {
      "id": "F01-raw-silo-branch-5",
      "kind": "pipe",
      "from": "raw-dock",
      "to": "S01",
      "points": [
        [
          38,
          73.32,
          7.8
        ],
        [
          42.5,
          73.32,
          7.8
        ],
        [
          42.5,
          73.32,
          6.96
        ]
      ],
      "width": 0.12,
      "transfer_method": "milk",
      "design_note": "공동 수유 헤더에서 S01 인스턴스 5의 남측 상부 위생 노즐로 분기한다."
    },
    {
      "id": "F01-cold-dispatch-1",
      "kind": "pedestrian",
      "from": "S08",
      "to": "shipping-dock",
      "points": [
        [
          81.4,
          31,
          0.2
        ],
        [
          81.4,
          35,
          0.2
        ],
        [
          97,
          35,
          0.2
        ]
      ],
      "width": 1.2,
      "transport_method": "manual_closed_cart",
      "carries_product": true,
      "cargo_containment": "배송 노선별 밀폐 단열 크레이트 카트",
      "design_note": "외포장 최종 셀에서 동측 냉장실 남쪽 인계 통로를 통해 실제 출하 도크에 도달한다. 북측 냉장 랙 예약 면적을 침범하지 않는다."
    },
    {
      "id": "F01-cold-dispatch-2",
      "kind": "pedestrian",
      "from": "S08",
      "to": "shipping-dock",
      "points": [
        [
          81.4,
          31,
          0.2
        ],
        [
          81.4,
          35,
          0.2
        ],
        [
          96,
          35,
          0.2
        ],
        [
          96,
          48,
          0.2
        ],
        [
          97,
          48,
          0.2
        ]
      ],
      "width": 1.2,
      "transport_method": "manual_closed_cart",
      "carries_product": true,
      "cargo_containment": "배송 노선별 밀폐 단열 크레이트 카트",
      "design_note": "외포장 최종 셀에서 동측 냉장실 남쪽 인계 통로를 통해 실제 출하 도크에 도달한다. 북측 냉장 랙 예약 면적을 침범하지 않는다."
    },
    {
      "id": "F01-staff-office-room",
      "kind": "pedestrian",
      "from": "gate",
      "to": "office-room",
      "points": [
        [
          61,
          3,
          0.2
        ],
        [
          61,
          12,
          0.2
        ],
        [
          28,
          12,
          0.2
        ],
        [
          28,
          32,
          0.2
        ],
        [
          25,
          32,
          0.2
        ]
      ],
      "width": 1.2,
      "design_note": "정문에서 동간 보행 통로를 따라 사무·CIP·냉열 지원부서로 진입한다. 사무동의 기존 위생 전실 이동선과 접속한다."
    },
    {
      "id": "F01-staff-cip",
      "kind": "pedestrian",
      "from": "gate",
      "to": "cip",
      "points": [
        [
          61,
          3,
          0.2
        ],
        [
          61,
          12,
          0.2
        ],
        [
          28,
          12,
          0.2
        ],
        [
          28,
          56,
          0.2
        ],
        [
          26,
          56,
          0.2
        ],
        [
          26,
          66.5,
          0.2
        ],
        [
          24,
          66.5,
          0.2
        ]
      ],
      "width": 1.2,
      "design_note": "정문에서 동간 보행 통로를 따라 사무·CIP·냉열 지원부서로 진입한다. 사무동의 기존 위생 전실 이동선과 접속한다."
    },
    {
      "id": "F01-staff-cold-plant",
      "kind": "pedestrian",
      "from": "gate",
      "to": "cold-plant",
      "points": [
        [
          61,
          3,
          0.2
        ],
        [
          61,
          12,
          0.2
        ],
        [
          28,
          12,
          0.2
        ],
        [
          28,
          56,
          0.2
        ],
        [
          26,
          56,
          0.2
        ],
        [
          26,
          68.8,
          0.2
        ],
        [
          24,
          68.8,
          0.2
        ]
      ],
      "width": 1.2,
      "design_note": "정문에서 동간 보행 통로를 따라 사무·CIP·냉열 지원부서로 진입한다. 사무동의 기존 위생 전실 이동선과 접속한다."
    },
    {
      "id": "F01-raw-common-header",
      "kind": "pipe",
      "from": "raw-dock",
      "to": "S01",
      "points": [
        [
          38,
          78,
          7.8
        ],
        [
          38,
          57.32,
          7.8
        ]
      ],
      "width": 0.12,
      "transfer_method": "milk",
      "design_note": "사일로 6개 분기 노즐을 잇는 단일 공동 헤더. 겹치는 배관 메시를 중복 작성하지 않는다."
    },
    {
      "id": "F01-robot-case-supply-1",
      "kind": "pedestrian",
      "from": "route:F01-cold-dispatch-1",
      "to": "fixture:F01-robot-case-1",
      "points": [
        [
          88.2,
          35,
          0.2
        ],
        [
          88.2,
          35.25,
          0.2
        ]
      ],
      "width": 1.0,
      "transport_method": "manual_closed_cart",
      "carries_product": true,
      "cargo_containment": "위생 밀폐 제품 카트",
      "design_note": "기존 제품 이송 동선에서 실제 로봇 인계대 또는 팔레트의 작업자 접근면으로 연결한다.",
      "feeds_from_route_id": "F01-cold-dispatch-1",
      "endpoint_handoffs": {
        "from": {
          "reference": "route:F01-cold-dispatch-1",
          "method": "direct_polyline_join",
          "access_point_world_xyz": [
            88.2,
            35,
            0.2
          ],
          "route_point_world_xyz": [
            88.2,
            35.0,
            0.2
          ],
          "basis": "Named existing route polyline; manual lift only for the declared cart-to-belt height change."
        }
      }
    },
    {
      "id": "F01-robot-pallet-out-1",
      "kind": "pedestrian",
      "from": "fixture:F01-robot-pallet-1",
      "to": "shipping-dock",
      "points": [
        [
          92.5,
          39.4,
          0.2
        ],
        [
          96,
          39.4,
          0.2
        ],
        [
          96,
          35,
          0.2
        ],
        [
          97,
          35,
          0.2
        ]
      ],
      "width": 1.0,
      "transport_method": "manual_closed_cart",
      "carries_product": true,
      "cargo_containment": "위생 밀폐 제품 카트",
      "design_note": "기존 제품 이송 동선에서 실제 로봇 인계대 또는 팔레트의 작업자 접근면으로 연결한다."
    },
    {
      "id": "F01-robot-case-supply-2",
      "kind": "pedestrian",
      "from": "route:F01-cold-dispatch-2",
      "to": "fixture:F01-robot-case-2",
      "points": [
        [
          96,
          45,
          0.2
        ],
        [
          88.2,
          45,
          0.2
        ],
        [
          88.2,
          45.25,
          0.2
        ]
      ],
      "width": 1.0,
      "transport_method": "manual_closed_cart",
      "carries_product": true,
      "cargo_containment": "위생 밀폐 제품 카트",
      "design_note": "기존 제품 이송 동선에서 실제 로봇 인계대 또는 팔레트의 작업자 접근면으로 연결한다.",
      "feeds_from_route_id": "F01-cold-dispatch-2",
      "endpoint_handoffs": {
        "from": {
          "reference": "route:F01-cold-dispatch-2",
          "method": "direct_polyline_join",
          "access_point_world_xyz": [
            96,
            45,
            0.2
          ],
          "route_point_world_xyz": [
            96.0,
            45.0,
            0.2
          ],
          "basis": "Named existing route polyline; manual lift only for the declared cart-to-belt height change."
        }
      }
    },
    {
      "id": "F01-robot-pallet-out-2",
      "kind": "pedestrian",
      "from": "fixture:F01-robot-pallet-2",
      "to": "shipping-dock",
      "points": [
        [
          92.5,
          49.4,
          0.2
        ],
        [
          96,
          49.4,
          0.2
        ],
        [
          96,
          48,
          0.2
        ],
        [
          97,
          48,
          0.2
        ]
      ],
      "width": 1.0,
      "transport_method": "manual_closed_cart",
      "carries_product": true,
      "cargo_containment": "위생 밀폐 제품 카트",
      "design_note": "기존 제품 이송 동선에서 실제 로봇 인계대 또는 팔레트의 작업자 접근면으로 연결한다."
    }
  ],
  "yard": {
    "roads": [
      {
        "points": [
          [
            5,
            7
          ],
          [
            110,
            7
          ],
          [
            110,
            94
          ],
          [
            5,
            94
          ],
          [
            5,
            7
          ]
        ],
        "width": 6
      },
      {
        "points": [
          [
            28,
            85
          ],
          [
            79,
            85
          ]
        ],
        "width": 5
      }
    ],
    "docks": [
      {
        "x": 38,
        "y": 79,
        "angle": 3.141592653589793,
        "building_id": "milk",
        "role": "원유 집유"
      },
      {
        "x": 45,
        "y": 79,
        "angle": 3.141592653589793,
        "building_id": "milk",
        "role": "원유 집유"
      },
      {
        "x": 97,
        "y": 35,
        "angle": 1.5707963267948966,
        "building_id": "milk",
        "role": "당일 냉장 출하"
      },
      {
        "x": 97,
        "y": 48,
        "angle": 1.5707963267948966,
        "building_id": "milk",
        "role": "냉장 출하·빈 크레이트"
      }
    ],
    "parking": [
      {
        "x": 33,
        "y": 17,
        "angle": 0,
        "count": 23
      }
    ],
    "gate": {
      "x": 61,
      "y": 3
    },
    "fence": true
  },
  "landmarks": [
    "북쪽 6기 사일로와 짧은 집유 캐노피",
    "306㎡에 한정된 남서 포장재실",
    "살균실 뒤 회수 크림·위생 배관 매니폴드",
    "728㎡ 동쪽 냉장벽과 두 개 출하 도크",
    "연속 금속 파사드와 작은 벽돌 검사 별동"
  ],
  "density": {
    "intent": "공정별 생산 셀, 원료·제품·포장재 재고, 현장 유틸리티와 작업자 공간을 서로 다른 면적으로 직접 설계하였다. 남는 공간을 무작위 상자로 채우지 않고 명시된 용도와 정비 통로를 유지한다.",
    "production_area_m2": 1920,
    "storage_area_m2": 1034,
    "support_area_m2": 1048,
    "circulation_area_m2": 0
  },
  "compact_campus_revision": 3,
  "openings": [
    {
      "id": "door-receiving",
      "building_id": "milk",
      "zone_id": "receiving",
      "x": 40.0,
      "y": 54,
      "width": 3.0,
      "height": 2.7,
      "axis": "x",
      "connects": [
        "receiving",
        "service_access"
      ]
    },
    {
      "id": "door-thermal",
      "building_id": "milk",
      "zone_id": "thermal",
      "x": 59.0,
      "y": 54,
      "width": 3.0,
      "height": 2.7,
      "axis": "x",
      "connects": [
        "thermal",
        "service_access"
      ]
    },
    {
      "id": "door-wet-service",
      "building_id": "milk",
      "zone_id": "wet-service",
      "x": 59.0,
      "y": 69,
      "width": 3.0,
      "height": 2.7,
      "axis": "x",
      "connects": [
        "wet-service",
        "service_access"
      ]
    },
    {
      "id": "door-buffer",
      "building_id": "milk",
      "zone_id": "buffer",
      "x": 76.0,
      "y": 54,
      "width": 3.0,
      "height": 2.7,
      "axis": "x",
      "connects": [
        "buffer",
        "service_access"
      ]
    },
    {
      "id": "door-buffer-service",
      "building_id": "milk",
      "zone_id": "buffer-service",
      "x": 76.0,
      "y": 72,
      "width": 3.0,
      "height": 2.7,
      "axis": "x",
      "connects": [
        "buffer-service",
        "service_access"
      ]
    },
    {
      "id": "door-fill",
      "building_id": "milk",
      "zone_id": "fill",
      "x": 62.0,
      "y": 38,
      "width": 3.0,
      "height": 2.7,
      "axis": "x",
      "connects": [
        "fill",
        "service_access"
      ]
    },
    {
      "id": "door-inspect",
      "building_id": "milk",
      "zone_id": "inspect",
      "x": 79.0,
      "y": 38,
      "width": 3.0,
      "height": 2.7,
      "axis": "x",
      "connects": [
        "inspect",
        "service_access"
      ]
    },
    {
      "id": "door-pack",
      "building_id": "milk",
      "zone_id": "pack",
      "x": 66.0,
      "y": 27,
      "width": 3.0,
      "height": 2.7,
      "axis": "x",
      "connects": [
        "pack",
        "service_access"
      ]
    },
    {
      "id": "door-cold",
      "building_id": "milk",
      "zone_id": "cold",
      "x": 90.0,
      "y": 27,
      "width": 3.0,
      "height": 2.7,
      "axis": "x",
      "connects": [
        "cold",
        "service_access"
      ]
    },
    {
      "id": "door-materials",
      "building_id": "milk",
      "zone_id": "materials",
      "x": 40.0,
      "y": 27,
      "width": 3.0,
      "height": 2.7,
      "axis": "x",
      "connects": [
        "materials",
        "service_access"
      ]
    },
    {
      "id": "door-lab",
      "building_id": "milk",
      "zone_id": "lab",
      "x": 35.5,
      "y": 44,
      "width": 3.0,
      "height": 2.7,
      "axis": "x",
      "connects": [
        "lab",
        "service_access"
      ]
    },
    {
      "id": "door-entry",
      "building_id": "milk",
      "zone_id": "entry",
      "x": 44.5,
      "y": 44,
      "width": 3.0,
      "height": 2.7,
      "axis": "x",
      "connects": [
        "entry",
        "service_access"
      ]
    },
    {
      "id": "door-office-room",
      "building_id": "office",
      "zone_id": "office-room",
      "x": 17.5,
      "y": 27,
      "width": 3.0,
      "height": 2.7,
      "axis": "x",
      "connects": [
        "office-room",
        "service_access"
      ]
    },
    {
      "id": "door-intake-lab",
      "building_id": "office",
      "zone_id": "intake-lab",
      "x": 17.5,
      "y": 36,
      "width": 3.0,
      "height": 2.7,
      "axis": "x",
      "connects": [
        "intake-lab",
        "service_access"
      ]
    },
    {
      "id": "door-cip",
      "building_id": "utilities",
      "zone_id": "cip",
      "x": 17.5,
      "y": 57,
      "width": 3.0,
      "height": 2.7,
      "axis": "x",
      "connects": [
        "cip",
        "service_access"
      ]
    },
    {
      "id": "door-cold-plant",
      "building_id": "utilities",
      "zone_id": "cold-plant",
      "x": 17.5,
      "y": 68,
      "width": 3.0,
      "height": 2.7,
      "axis": "x",
      "connects": [
        "cold-plant",
        "service_access"
      ]
    },
    {
      "id": "transfer-staff-hygiene-0",
      "building_id": "milk",
      "zone_id": "lab",
      "x": 31.0,
      "y": 45,
      "width": 1.6,
      "height": 2.5,
      "axis": "y",
      "connects": [
        "office-room",
        "entry"
      ]
    },
    {
      "id": "transfer-staff-hygiene-1",
      "building_id": "milk",
      "zone_id": "lab",
      "x": 40.0,
      "y": 45,
      "width": 1.6,
      "height": 2.5,
      "axis": "y",
      "connects": [
        "office-room",
        "entry"
      ]
    },
    {
      "id": "transfer-packaging-totes-0",
      "building_id": "milk",
      "zone_id": "pack",
      "x": 49.0,
      "y": 35,
      "width": 1.6,
      "height": 2.5,
      "axis": "y",
      "connects": [
        "materials",
        "pack"
      ]
    },
    {
      "id": "transfer-F01-solid-S06-S07-0-0",
      "building_id": "milk",
      "zone_id": "fill",
      "x": 75.0,
      "y": 38.94,
      "width": 1.6,
      "height": 2.5,
      "axis": "y",
      "connects": [
        "S06",
        "S07"
      ]
    },
    {
      "id": "transfer-F01-solid-S06-S07-1-0",
      "building_id": "milk",
      "zone_id": "fill",
      "x": 75.0,
      "y": 42.0,
      "width": 1.6,
      "height": 2.5,
      "axis": "y",
      "connects": [
        "S06",
        "S07"
      ]
    },
    {
      "id": "transfer-F01-solid-S06-S07-2-0",
      "building_id": "milk",
      "zone_id": "fill",
      "x": 75.0,
      "y": 50.0,
      "width": 1.6,
      "height": 2.5,
      "axis": "y",
      "connects": [
        "S06",
        "S07"
      ]
    },
    {
      "id": "transfer-F01-solid-S07-S08-0-1",
      "building_id": "milk",
      "zone_id": "fill",
      "x": 49.9,
      "y": 38.0,
      "width": 1.6,
      "height": 2.5,
      "axis": "x",
      "connects": [
        "S07",
        "S08"
      ]
    },
    {
      "id": "transfer-F01-solid-S07-S08-1-0",
      "building_id": "milk",
      "zone_id": "fill",
      "x": 75.0,
      "y": 43.94,
      "width": 1.6,
      "height": 2.5,
      "axis": "y",
      "connects": [
        "S07",
        "S08"
      ]
    },
    {
      "id": "transfer-F01-solid-S07-S08-1-1",
      "building_id": "milk",
      "zone_id": "fill",
      "x": 60.9,
      "y": 38.0,
      "width": 1.6,
      "height": 2.5,
      "axis": "x",
      "connects": [
        "S07",
        "S08"
      ]
    },
    {
      "id": "transfer-F01-solid-S07-S08-2-1",
      "building_id": "milk",
      "zone_id": "fill",
      "x": 71.9,
      "y": 38.0,
      "width": 1.6,
      "height": 2.5,
      "axis": "x",
      "connects": [
        "S07",
        "S08"
      ]
    },
    {
      "id": "staff-milk-exterior",
      "building_id": "milk",
      "x": 31,
      "y": 45,
      "width": 1.6,
      "height": 2.5,
      "axis": "y",
      "connects": [
        "office-room",
        "entry"
      ]
    },
    {
      "id": "staff-office-exterior",
      "building_id": "office",
      "x": 25,
      "y": 32,
      "width": 1.6,
      "height": 2.5,
      "axis": "y",
      "connects": [
        "office-room",
        "entry"
      ]
    },
    {
      "id": "staff-office-room",
      "building_id": "office",
      "x": 25,
      "y": 32,
      "width": 1.6,
      "height": 2.5,
      "axis": "y",
      "connects": [
        "office-room",
        "entry"
      ],
      "zone_id": "office-room"
    },
    {
      "id": "staff-entry-west",
      "building_id": "milk",
      "x": 40,
      "y": 45,
      "width": 1.6,
      "height": 2.5,
      "axis": "y",
      "connects": [
        "office-room",
        "entry"
      ],
      "zone_id": "entry"
    },
    {
      "id": "inspection-transfer-1",
      "building_id": "milk",
      "x": 75,
      "y": 38.94,
      "width": 1.2,
      "height": 1.6,
      "axis": "y",
      "connects": [
        "S06",
        "S07",
        "S08"
      ],
      "zone_id": "inspect"
    },
    {
      "id": "inspection-transfer-2",
      "building_id": "milk",
      "x": 75,
      "y": 42,
      "width": 1.2,
      "height": 1.6,
      "axis": "y",
      "connects": [
        "S06",
        "S07",
        "S08"
      ],
      "zone_id": "inspect"
    },
    {
      "id": "inspection-transfer-3",
      "building_id": "milk",
      "x": 75,
      "y": 50,
      "width": 1.2,
      "height": 1.6,
      "axis": "y",
      "connects": [
        "S06",
        "S07",
        "S08"
      ],
      "zone_id": "inspect"
    },
    {
      "id": "inspection-transfer-4",
      "building_id": "milk",
      "x": 75,
      "y": 43.94,
      "width": 1.2,
      "height": 1.6,
      "axis": "y",
      "connects": [
        "S06",
        "S07",
        "S08"
      ],
      "zone_id": "inspect"
    },
    {
      "id": "route-r1-building-milk-35",
      "building_id": "milk",
      "x": 38.0,
      "y": 79.0,
      "axis": "x",
      "width": 0.5,
      "height": 0.5,
      "connects": [
        "raw-dock",
        "S01"
      ],
      "route_ids": [
        "F01-raw-dock-1"
      ],
      "kind": "pipe_sleeve",
      "design_note": "해당 경로가 통과하는 소유벽의 국부 개구부. 인접 소유벽은 별도로 기록한다.",
      "sill_height": 0.95
    },
    {
      "id": "route-r1-zone-receiving-36",
      "building_id": "milk",
      "x": 38.0,
      "y": 79.0,
      "axis": "x",
      "width": 0.5,
      "height": 0.5,
      "connects": [
        "raw-dock",
        "S01"
      ],
      "route_ids": [
        "F01-raw-dock-1"
      ],
      "kind": "pipe_sleeve",
      "design_note": "해당 경로가 통과하는 소유벽의 국부 개구부. 인접 소유벽은 별도로 기록한다.",
      "zone_id": "receiving",
      "sill_height": 0.95
    },
    {
      "id": "route-r1-building-milk-37",
      "building_id": "milk",
      "x": 45.0,
      "y": 79.0,
      "axis": "x",
      "width": 0.5,
      "height": 0.5,
      "connects": [
        "raw-dock",
        "S01"
      ],
      "route_ids": [
        "F01-raw-dock-2"
      ],
      "kind": "pipe_sleeve",
      "design_note": "해당 경로가 통과하는 소유벽의 국부 개구부. 인접 소유벽은 별도로 기록한다.",
      "sill_height": 0.95
    },
    {
      "id": "route-r1-zone-receiving-38",
      "building_id": "milk",
      "x": 45.0,
      "y": 79.0,
      "axis": "x",
      "width": 0.5,
      "height": 0.5,
      "connects": [
        "raw-dock",
        "S01"
      ],
      "route_ids": [
        "F01-raw-dock-2"
      ],
      "kind": "pipe_sleeve",
      "design_note": "해당 경로가 통과하는 소유벽의 국부 개구부. 인접 소유벽은 별도로 기록한다.",
      "zone_id": "receiving",
      "sill_height": 0.95
    },
    {
      "id": "route-r1-building-milk-39",
      "building_id": "milk",
      "x": 97.0,
      "y": 35.0,
      "axis": "y",
      "width": 1.6,
      "height": 2.5,
      "connects": [
        "S08",
        "shipping-dock"
      ],
      "route_ids": [
        "F01-cold-dispatch-1"
      ],
      "kind": "personnel_door",
      "design_note": "해당 경로가 통과하는 소유벽의 국부 개구부. 인접 소유벽은 별도로 기록한다."
    },
    {
      "id": "route-r1-zone-cold-40",
      "building_id": "milk",
      "x": 97.0,
      "y": 35.0,
      "axis": "y",
      "width": 1.6,
      "height": 2.5,
      "connects": [
        "S08",
        "shipping-dock"
      ],
      "route_ids": [
        "F01-cold-dispatch-1"
      ],
      "kind": "personnel_door",
      "design_note": "해당 경로가 통과하는 소유벽의 국부 개구부. 인접 소유벽은 별도로 기록한다.",
      "zone_id": "cold"
    },
    {
      "id": "route-r1-zone-cold-41",
      "building_id": "milk",
      "x": 83.0,
      "y": 35.0,
      "axis": "y",
      "width": 1.6,
      "height": 2.5,
      "connects": [
        "S08",
        "shipping-dock"
      ],
      "route_ids": [
        "F01-cold-dispatch-1"
      ],
      "kind": "personnel_door",
      "design_note": "해당 경로가 통과하는 소유벽의 국부 개구부. 인접 소유벽은 별도로 기록한다.",
      "zone_id": "cold"
    },
    {
      "id": "route-r1-building-milk-42",
      "building_id": "milk",
      "x": 97.0,
      "y": 48.0,
      "axis": "y",
      "width": 1.6,
      "height": 2.5,
      "connects": [
        "S08",
        "shipping-dock"
      ],
      "route_ids": [
        "F01-cold-dispatch-2"
      ],
      "kind": "personnel_door",
      "design_note": "해당 경로가 통과하는 소유벽의 국부 개구부. 인접 소유벽은 별도로 기록한다."
    },
    {
      "id": "route-r1-zone-cold-43",
      "building_id": "milk",
      "x": 97.0,
      "y": 48.0,
      "axis": "y",
      "width": 1.6,
      "height": 2.5,
      "connects": [
        "S08",
        "shipping-dock"
      ],
      "route_ids": [
        "F01-cold-dispatch-2"
      ],
      "kind": "personnel_door",
      "design_note": "해당 경로가 통과하는 소유벽의 국부 개구부. 인접 소유벽은 별도로 기록한다.",
      "zone_id": "cold"
    },
    {
      "id": "route-r1-building-utilities-44",
      "building_id": "utilities",
      "x": 25.0,
      "y": 66.5,
      "axis": "y",
      "width": 1.6,
      "height": 2.5,
      "connects": [
        "gate",
        "cip"
      ],
      "route_ids": [
        "F01-staff-cip"
      ],
      "kind": "personnel_door",
      "design_note": "해당 경로가 통과하는 소유벽의 국부 개구부. 인접 소유벽은 별도로 기록한다."
    },
    {
      "id": "route-r1-zone-cip-45",
      "building_id": "utilities",
      "x": 25.0,
      "y": 66.5,
      "axis": "y",
      "width": 1.6,
      "height": 2.5,
      "connects": [
        "gate",
        "cip"
      ],
      "route_ids": [
        "F01-staff-cip"
      ],
      "kind": "personnel_door",
      "design_note": "해당 경로가 통과하는 소유벽의 국부 개구부. 인접 소유벽은 별도로 기록한다.",
      "zone_id": "cip"
    },
    {
      "id": "route-r1-building-utilities-46",
      "building_id": "utilities",
      "x": 25.0,
      "y": 68.8,
      "axis": "y",
      "width": 1.6,
      "height": 2.5,
      "connects": [
        "gate",
        "cold-plant"
      ],
      "route_ids": [
        "F01-staff-cold-plant"
      ],
      "kind": "personnel_door",
      "design_note": "해당 경로가 통과하는 소유벽의 국부 개구부. 인접 소유벽은 별도로 기록한다."
    },
    {
      "id": "route-r1-zone-cold-plant-47",
      "building_id": "utilities",
      "x": 25.0,
      "y": 68.8,
      "axis": "y",
      "width": 1.6,
      "height": 2.5,
      "connects": [
        "gate",
        "cold-plant"
      ],
      "route_ids": [
        "F01-staff-cold-plant"
      ],
      "kind": "personnel_door",
      "design_note": "해당 경로가 통과하는 소유벽의 국부 개구부. 인접 소유벽은 별도로 기록한다.",
      "zone_id": "cold-plant"
    }
  ],
  "connection_review": {
    "counts": {
      "declared_process_edges": 7,
      "wet_edges_classified": 5,
      "wet_edges_routed": 5,
      "graph_only_edges": 2,
      "unresolved_edges": 0
    },
    "unresolved": [],
    "limitations": [
      "Synthetic product ports require equipment-level visual review.",
      "Pipe pressure drop, cleanability, thermal expansion and pump sizing are not simulated.",
      "Cutaway room crossings are not validated sealed hygiene penetrations.",
      "Dry or unsupported material transfers remain graph-only; no invented floor-centre conveyors."
    ],
    "dry_connections": [
      {
        "source": "S06",
        "target": "S07",
        "index": 0,
        "method": "conveyor"
      },
      {
        "source": "S06",
        "target": "S07",
        "index": 1,
        "method": "conveyor"
      },
      {
        "source": "S06",
        "target": "S07",
        "index": 2,
        "method": "conveyor"
      },
      {
        "source": "S07",
        "target": "S08",
        "index": 0,
        "method": "conveyor"
      },
      {
        "source": "S07",
        "target": "S08",
        "index": 1,
        "method": "conveyor"
      },
      {
        "source": "S07",
        "target": "S08",
        "index": 2,
        "method": "conveyor"
      }
    ],
    "dry_unresolved": [],
    "world_base_correction": {
      "equipment_base_z_m": 0.28,
      "legacy_planner_base_z_m": 0.2,
      "riser_endpoints_adjusted_m": 0.08,
      "acceptance": "노즐 실제 형상은 최종 렌더 검수 대상"
    }
  },
  "routing_revision": 2,
  "routing_design_note": "두 북측 집유 도크는 x=38, z=7.8m의 단일 수유 헤더로 합류하며 6개 사일로의 남측 상부 위생 노즐로 각각 분기한다. 원유는 밀폐 위생 배관으로 수유한다. 포장 마지막 셀에서 동측 냉장실 남측 통로를 지나 (97,35)와 (97,48) 출하 도크로 단열 크레이트 카트를 이송한다. 정문 (61,3)에서 사무동·CIP·냉열동으로 실제 직원 보행망이 이어지고 기존 위생 전실 진입 동선에 접속한다. 건물·기물·설비·로봇의 기존 배치 좌표와 ID는 유지한다.",
  "robot_station_revision": 1,
  "robot_station_review": {
    "status": "input_authored_pending_render",
    "basis": "actual generated fixture/contact geometry, base/support primitive checks and retained process routes",
    "robots": [
      {
        "robot": "0/0",
        "stage_id": "S08",
        "position": [
          86.8,
          36.5,
          0.28
        ],
        "task_points": [
          [
            87.8,
            36.5,
            1.18
          ],
          [
            88.4,
            36.5,
            1.35
          ]
        ],
        "task_fixture": {
          "fixture_ids": [
            "F01-robot-case-1"
          ],
          "target_basis": "actual generated mesh contact surfaces"
        },
        "previous_position": [
          59.5,
          35,
          0
        ]
      },
      {
        "robot": "0/1",
        "stage_id": "S08",
        "position": [
          86.8,
          46.5,
          0.28
        ],
        "task_points": [
          [
            87.8,
            46.5,
            1.18
          ],
          [
            88.4,
            46.5,
            1.35
          ]
        ],
        "task_fixture": {
          "fixture_ids": [
            "F01-robot-case-2"
          ],
          "target_basis": "actual generated mesh contact surfaces"
        },
        "previous_position": [
          70.5,
          35,
          0
        ]
      },
      {
        "robot": "1/0",
        "stage_id": "S08",
        "position": [
          91,
          36.5,
          0.28
        ],
        "task_points": [
          [
            88.4,
            36.5,
            1.35
          ],
          [
            92.24436,
            38.0,
            1.4
          ]
        ],
        "task_fixture": {
          "fixture_ids": [
            "F01-robot-case-1",
            "F01-robot-pallet-1"
          ],
          "target_basis": "actual generated mesh contact surfaces"
        },
        "previous_position": [
          89,
          32,
          0
        ]
      },
      {
        "robot": "1/1",
        "stage_id": "S08",
        "position": [
          91,
          46.5,
          0.28
        ],
        "task_points": [
          [
            88.4,
            46.5,
            1.35
          ],
          [
            92.24436,
            48.0,
            1.4
          ]
        ],
        "task_fixture": {
          "fixture_ids": [
            "F01-robot-case-2",
            "F01-robot-pallet-2"
          ],
          "target_basis": "actual generated mesh contact surfaces"
        },
        "previous_position": [
          89,
          44,
          0
        ]
      }
    ]
  }
}
