{
  "factory_id": "O03",
  "design_revision": 2,
  "design_story": "서리온은 두 개 SMT 라인에 맞는 작은 전자제조 캠퍼스로 다시 구성했다. 북측의 낮은 톱니 지붕동 안에는 길이 약 25m인 두 실장 라인이 6m 폭 셀 두 줄에 놓인다. 양 끝은 키팅실과 후공정 조립·기능검사실이 감싸며, 피더 카트를 거대한 빈 작업장으로 보내지 않는다. 남쪽 부품창고는 습도관리 릴 랙·PCB 매거진·입고 검사를 한 덩어리에 모으고 동쪽 포장창고는 최종검사 바로 남쪽에 붙는다. 서쪽 얕은 사무·지원동은 생산동과 높이가 다른 벽돌 매스로 읽힌다. 캐비닛과 작업대는 품번 변경에 꼭 필요한 종류만 라인 가장자리에 두며 리플로 뒤 검사와 ESD 조립을 짧은 인계로 잇는다. 폭 7m의 남쪽 물류 전면과 한 줄 주차를 제외한 바닥은 명시된 방과 도크로 사용한다. 지원동은 9개 고객·생산·공정개발 사무 작업대, 12개 ESD 락커 bank와 교대 휴게 테이블 2개, 서로 다른 공정용 AHU 2기·청정 압축공기·질소 계통, 피더/광학 정비·교정 9개 작업면으로 보완한다. 장비 사이 주 통로와 교체 작업 여유를 먼저 남기고 필요한 작업 기능만 배치한다.",
  "site": {
    "width": 92,
    "depth": 78
  },
  "buildings": [
    {
      "id": "smt-hall",
      "name": "2라인 SMT·후공정동",
      "role": "production",
      "polygon": [
        [
          28,
          39
        ],
        [
          78,
          39
        ],
        [
          78,
          63
        ],
        [
          28,
          63
        ]
      ],
      "height": 6.2,
      "roof": {
        "type": "sawtooth",
        "axis": "x",
        "pitch": 0.16
      },
      "facade": {
        "color": [
          0.83,
          0.86,
          0.86
        ],
        "accent": [
          0.1,
          0.38,
          0.39
        ],
        "material": "metal",
        "window_band_height": 0.85
      }
    },
    {
      "id": "components",
      "name": "전자부품 제습 창고",
      "role": "warehouse",
      "polygon": [
        [
          28,
          15
        ],
        [
          55,
          15
        ],
        [
          55,
          33
        ],
        [
          28,
          33
        ]
      ],
      "height": 6,
      "roof": {
        "type": "gable",
        "axis": "y",
        "pitch": 0.16
      },
      "facade": {
        "color": [
          0.57,
          0.64,
          0.65
        ],
        "accent": [
          0.08,
          0.34,
          0.37
        ],
        "material": "metal",
        "window_band_height": 0.85
      }
    },
    {
      "id": "finish",
      "name": "ESD 포장·출하동",
      "role": "warehouse",
      "polygon": [
        [
          61,
          15
        ],
        [
          78,
          15
        ],
        [
          78,
          33
        ],
        [
          61,
          33
        ]
      ],
      "height": 6,
      "roof": {
        "type": "shed",
        "axis": "x",
        "pitch": 0.14
      },
      "facade": {
        "color": [
          0.75,
          0.79,
          0.78
        ],
        "accent": [
          0.12,
          0.4,
          0.41
        ],
        "material": "metal",
        "window_band_height": 0.85
      }
    },
    {
      "id": "support",
      "name": "시험·사무·ESD 지원동",
      "role": "support",
      "polygon": [
        [
          12,
          15
        ],
        [
          24,
          15
        ],
        [
          24,
          63
        ],
        [
          12,
          63
        ]
      ],
      "height": 6.8,
      "roof": {
        "type": "flat",
        "axis": "x",
        "pitch": 0.02
      },
      "facade": {
        "color": [
          0.68,
          0.47,
          0.37
        ],
        "accent": [
          0.18,
          0.3,
          0.31
        ],
        "material": "brick",
        "window_band_height": 0.85
      }
    }
  ],
  "zones": [
    {
      "id": "kit",
      "name": "릴 키팅·매거진 준비",
      "role": "process",
      "building_id": "smt-hall",
      "x": 28,
      "y": 39,
      "width": 10,
      "depth": 8,
      "stage_ids": [
        "S01"
      ],
      "fixtures": [
        {
          "id": "kit-worktable-01",
          "type": "worktable",
          "x": 29.35,
          "y": 39.9,
          "width": 1.5,
          "depth": 0.6,
          "height": 1,
          "count": 1,
          "label": "릴 스캔·노즐 준비 1"
        },
        {
          "id": "kit-worktable-02",
          "type": "worktable",
          "x": 34.3,
          "y": 39.9,
          "width": 1.5,
          "depth": 0.6,
          "height": 1,
          "count": 1,
          "label": "릴 스캔·노즐 준비 2"
        }
      ]
    },
    {
      "id": "reel-ready",
      "name": "라인 직전 제습 보관",
      "role": "warehouse",
      "building_id": "smt-hall",
      "x": 28,
      "y": 47,
      "width": 10,
      "depth": 10,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "reel-ready-cabinet-01",
          "type": "cabinet",
          "x": 29.2,
          "y": 47.95,
          "width": 1.2,
          "depth": 0.7,
          "height": 2,
          "count": 1,
          "label": "교체 릴·MSD 제습함 1"
        },
        {
          "id": "reel-ready-cabinet-02",
          "type": "cabinet",
          "x": 31.2,
          "y": 47.95,
          "width": 1.2,
          "depth": 0.7,
          "height": 2,
          "count": 1,
          "label": "교체 릴·MSD 제습함 2"
        },
        {
          "id": "reel-ready-cabinet-03",
          "type": "cabinet",
          "x": 33.2,
          "y": 47.95,
          "width": 1.2,
          "depth": 0.7,
          "height": 2,
          "count": 1,
          "label": "교체 릴·MSD 제습함 3"
        },
        {
          "id": "reel-ready-cabinet-04",
          "type": "cabinet",
          "x": 35.2,
          "y": 47.95,
          "width": 1.2,
          "depth": 0.7,
          "height": 2,
          "count": 1,
          "label": "교체 릴·MSD 제습함 4"
        },
        {
          "id": "reel-ready-cabinet-05",
          "type": "cabinet",
          "x": 29.2,
          "y": 49.95,
          "width": 1.2,
          "depth": 0.7,
          "height": 2,
          "count": 1,
          "label": "교체 릴·MSD 제습함 5"
        },
        {
          "id": "reel-ready-cabinet-06",
          "type": "cabinet",
          "x": 31.2,
          "y": 49.95,
          "width": 1.2,
          "depth": 0.7,
          "height": 2,
          "count": 1,
          "label": "교체 릴·MSD 제습함 6"
        },
        {
          "id": "reel-ready-cabinet-07",
          "type": "cabinet",
          "x": 33.2,
          "y": 49.95,
          "width": 1.2,
          "depth": 0.7,
          "height": 2,
          "count": 1,
          "label": "교체 릴·MSD 제습함 7"
        },
        {
          "id": "reel-ready-cabinet-08",
          "type": "cabinet",
          "x": 35.2,
          "y": 49.95,
          "width": 1.2,
          "depth": 0.7,
          "height": 2,
          "count": 1,
          "label": "교체 릴·MSD 제습함 8"
        },
        {
          "id": "reel-ready-cabinet-09",
          "type": "cabinet",
          "x": 29.2,
          "y": 51.95,
          "width": 1.2,
          "depth": 0.7,
          "height": 2,
          "count": 1,
          "label": "교체 릴·MSD 제습함 9"
        },
        {
          "id": "reel-ready-cabinet-10",
          "type": "cabinet",
          "x": 31.2,
          "y": 51.95,
          "width": 1.2,
          "depth": 0.7,
          "height": 2,
          "count": 1,
          "label": "교체 릴·MSD 제습함 10"
        }
      ]
    },
    {
      "id": "stencil",
      "name": "스텐실 세척·피더 정비",
      "role": "maintenance",
      "building_id": "smt-hall",
      "x": 28,
      "y": 57,
      "width": 10,
      "depth": 6,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "stencil-wash_station-01",
          "type": "wash_station",
          "x": 29.5,
          "y": 58.2,
          "width": 1.8,
          "depth": 1.2,
          "height": 1.5,
          "count": 1,
          "label": "스텐실 세척 1"
        },
        {
          "id": "stencil-cabinet-01",
          "type": "cabinet",
          "x": 33.2,
          "y": 57.9,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "스텐실·피더 보관 1"
        },
        {
          "id": "stencil-cabinet-02",
          "type": "cabinet",
          "x": 35.2,
          "y": 57.9,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "스텐실·피더 보관 2"
        },
        {
          "id": "stencil-cabinet-03",
          "type": "cabinet",
          "x": 29.2,
          "y": 59.8,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "스텐실·피더 보관 3"
        },
        {
          "id": "stencil-cabinet-04",
          "type": "cabinet",
          "x": 31.2,
          "y": 59.8,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "스텐실·피더 보관 4"
        }
      ]
    },
    {
      "id": "line-b",
      "name": "SMT B 연속 셀",
      "role": "process",
      "building_id": "smt-hall",
      "x": 38,
      "y": 39,
      "width": 28,
      "depth": 6,
      "stage_ids": [
        "S02",
        "S03",
        "S04",
        "S05",
        "S06"
      ],
      "fixtures": [
        {
          "id": "line-b-worktable-01",
          "type": "worktable",
          "x": 39.2,
          "y": 43.7,
          "width": 1.2,
          "depth": 0.6,
          "height": 1,
          "count": 1,
          "label": "B라인 초품 인계 1"
        }
      ]
    },
    {
      "id": "line-a",
      "name": "SMT A 연속 셀",
      "role": "process",
      "building_id": "smt-hall",
      "x": 38,
      "y": 47,
      "width": 28,
      "depth": 6,
      "stage_ids": [
        "S02",
        "S03",
        "S04",
        "S05",
        "S06"
      ],
      "fixtures": [
        {
          "id": "line-a-worktable-01",
          "type": "worktable",
          "x": 39.2,
          "y": 51.7,
          "width": 1.2,
          "depth": 0.6,
          "height": 1,
          "count": 1,
          "label": "A라인 초품 인계 1"
        }
      ]
    },
    {
      "id": "feed-aisle",
      "name": "두 라인 교체 카트 통로",
      "role": "circulation",
      "building_id": "smt-hall",
      "x": 38,
      "y": 45,
      "width": 28,
      "depth": 2,
      "stage_ids": [],
      "fixtures": []
    },
    {
      "id": "aoi-hold",
      "name": "AOI 재판정·수리실",
      "role": "laboratory",
      "building_id": "smt-hall",
      "x": 38,
      "y": 53,
      "width": 18,
      "depth": 10,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "aoi-hold-lab_bench-01",
          "type": "lab_bench",
          "x": 39.5,
          "y": 54.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1,
          "count": 1,
          "label": "AOI 현미경·재작업 1"
        },
        {
          "id": "aoi-hold-lab_bench-02",
          "type": "lab_bench",
          "x": 42.1,
          "y": 54.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1,
          "count": 1,
          "label": "AOI 현미경·재작업 2"
        },
        {
          "id": "aoi-hold-lab_bench-03",
          "type": "lab_bench",
          "x": 44.7,
          "y": 54.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1,
          "count": 1,
          "label": "AOI 현미경·재작업 3"
        },
        {
          "id": "aoi-hold-lab_bench-04",
          "type": "lab_bench",
          "x": 47.3,
          "y": 54.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1,
          "count": 1,
          "label": "AOI 현미경·재작업 4"
        },
        {
          "id": "aoi-hold-lab_bench-05",
          "type": "lab_bench",
          "x": 49.9,
          "y": 54.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1,
          "count": 1,
          "label": "AOI 현미경·재작업 5"
        },
        {
          "id": "aoi-hold-lab_bench-06",
          "type": "lab_bench",
          "x": 52.5,
          "y": 54.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1,
          "count": 1,
          "label": "AOI 현미경·재작업 6"
        },
        {
          "id": "aoi-hold-cabinet-01",
          "type": "cabinet",
          "x": 39.2,
          "y": 55.8,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "기준·불량 보드 격리함 1"
        },
        {
          "id": "aoi-hold-cabinet-02",
          "type": "cabinet",
          "x": 41.2,
          "y": 55.8,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "기준·불량 보드 격리함 2"
        },
        {
          "id": "aoi-hold-cabinet-03",
          "type": "cabinet",
          "x": 43.2,
          "y": 55.8,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "기준·불량 보드 격리함 3"
        },
        {
          "id": "aoi-hold-cabinet-04",
          "type": "cabinet",
          "x": 45.2,
          "y": 55.8,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "기준·불량 보드 격리함 4"
        },
        {
          "id": "aoi-hold-cabinet-05",
          "type": "cabinet",
          "x": 47.2,
          "y": 55.8,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "기준·불량 보드 격리함 5"
        },
        {
          "id": "aoi-hold-cabinet-06",
          "type": "cabinet",
          "x": 49.2,
          "y": 55.8,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "기준·불량 보드 격리함 6"
        }
      ]
    },
    {
      "id": "feeder",
      "name": "다음 품번 피더 준비",
      "role": "warehouse",
      "building_id": "smt-hall",
      "x": 56,
      "y": 53,
      "width": 10,
      "depth": 10,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "feeder-bin_rack-01",
          "type": "bin_rack",
          "x": 57.4,
          "y": 54.1,
          "width": 1.6,
          "depth": 0.8,
          "height": 1.5,
          "count": 1,
          "label": "피더·매거진 준비 카트 1"
        },
        {
          "id": "feeder-bin_rack-02",
          "type": "bin_rack",
          "x": 59.65,
          "y": 54.1,
          "width": 1.6,
          "depth": 0.8,
          "height": 1.5,
          "count": 1,
          "label": "피더·매거진 준비 카트 2"
        },
        {
          "id": "feeder-bin_rack-03",
          "type": "bin_rack",
          "x": 61.9,
          "y": 54.1,
          "width": 1.6,
          "depth": 0.8,
          "height": 1.5,
          "count": 1,
          "label": "피더·매거진 준비 카트 3"
        },
        {
          "id": "feeder-bin_rack-04",
          "type": "bin_rack",
          "x": 64.15,
          "y": 54.1,
          "width": 1.6,
          "depth": 0.8,
          "height": 1.5,
          "count": 1,
          "label": "피더·매거진 준비 카트 4"
        },
        {
          "id": "feeder-bin_rack-05",
          "type": "bin_rack",
          "x": 57.4,
          "y": 57.6,
          "width": 1.6,
          "depth": 0.8,
          "height": 1.5,
          "count": 1,
          "label": "피더·매거진 준비 카트 5"
        },
        {
          "id": "feeder-bin_rack-06",
          "type": "bin_rack",
          "x": 59.65,
          "y": 57.6,
          "width": 1.6,
          "depth": 0.8,
          "height": 1.5,
          "count": 1,
          "label": "피더·매거진 준비 카트 6"
        },
        {
          "id": "feeder-bin_rack-07",
          "type": "bin_rack",
          "x": 61.9,
          "y": 57.6,
          "width": 1.6,
          "depth": 0.8,
          "height": 1.5,
          "count": 1,
          "label": "피더·매거진 준비 카트 7"
        },
        {
          "id": "feeder-bin_rack-08",
          "type": "bin_rack",
          "x": 64.15,
          "y": 57.6,
          "width": 1.6,
          "depth": 0.8,
          "height": 1.5,
          "count": 1,
          "label": "피더·매거진 준비 카트 8"
        }
      ]
    },
    {
      "id": "assembly",
      "name": "커넥터·방열부 4조 셀",
      "role": "process",
      "building_id": "smt-hall",
      "x": 66,
      "y": 39,
      "width": 12,
      "depth": 8,
      "stage_ids": [
        "S07"
      ],
      "fixtures": []
    },
    {
      "id": "functional",
      "name": "6채널 기능·포장 검사",
      "role": "process",
      "building_id": "smt-hall",
      "x": 66,
      "y": 47,
      "width": 12,
      "depth": 11,
      "stage_ids": [
        "S08"
      ],
      "fixtures": [
        {
          "id": "functional-cabinet-01",
          "type": "cabinet",
          "x": 71.2,
          "y": 47.9,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "고객별 검사 치구 1"
        },
        {
          "id": "functional-cabinet-02",
          "type": "cabinet",
          "x": 71.2,
          "y": 55.5,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "고객별 검사 치구 2"
        }
      ]
    },
    {
      "id": "tester-spares",
      "name": "검사 치구·보류 인계",
      "role": "warehouse",
      "building_id": "smt-hall",
      "x": 66,
      "y": 58,
      "width": 12,
      "depth": 5,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "tester-spares-cabinet-01",
          "type": "cabinet",
          "x": 67.2,
          "y": 58.9,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "전용 검사 어댑터 1"
        },
        {
          "id": "tester-spares-cabinet-02",
          "type": "cabinet",
          "x": 69.2,
          "y": 58.9,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "전용 검사 어댑터 2"
        },
        {
          "id": "tester-spares-cabinet-03",
          "type": "cabinet",
          "x": 71.2,
          "y": 58.9,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "전용 검사 어댑터 3"
        },
        {
          "id": "tester-spares-cabinet-04",
          "type": "cabinet",
          "x": 73.2,
          "y": 58.9,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "전용 검사 어댑터 4"
        }
      ]
    },
    {
      "id": "reels",
      "name": "구매 릴·IC 제습 랙",
      "role": "warehouse",
      "building_id": "components",
      "x": 28,
      "y": 15,
      "width": 17,
      "depth": 12,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "reels-bin_rack-01",
          "type": "bin_rack",
          "x": 29.6,
          "y": 16.2,
          "width": 2,
          "depth": 1,
          "height": 3,
          "count": 1,
          "label": "전자부품 릴 랙 1"
        },
        {
          "id": "reels-bin_rack-02",
          "type": "bin_rack",
          "x": 32.25,
          "y": 16.2,
          "width": 2,
          "depth": 1,
          "height": 3,
          "count": 1,
          "label": "전자부품 릴 랙 2"
        },
        {
          "id": "reels-bin_rack-03",
          "type": "bin_rack",
          "x": 34.9,
          "y": 16.2,
          "width": 2,
          "depth": 1,
          "height": 3,
          "count": 1,
          "label": "전자부품 릴 랙 3"
        },
        {
          "id": "reels-bin_rack-04",
          "type": "bin_rack",
          "x": 37.55,
          "y": 16.2,
          "width": 2,
          "depth": 1,
          "height": 3,
          "count": 1,
          "label": "전자부품 릴 랙 4"
        },
        {
          "id": "reels-bin_rack-05",
          "type": "bin_rack",
          "x": 39.0,
          "y": 18.0,
          "width": 2,
          "depth": 1,
          "height": 3,
          "count": 1,
          "label": "전자부품 릴 랙 5"
        },
        {
          "id": "reels-bin_rack-06",
          "type": "bin_rack",
          "x": 43.0,
          "y": 16.0,
          "width": 2,
          "depth": 1,
          "height": 3,
          "count": 1,
          "label": "전자부품 릴 랙 6"
        },
        {
          "id": "reels-bin_rack-07",
          "type": "bin_rack",
          "x": 29.6,
          "y": 19.9,
          "width": 2,
          "depth": 1,
          "height": 3,
          "count": 1,
          "label": "전자부품 릴 랙 7"
        },
        {
          "id": "reels-bin_rack-08",
          "type": "bin_rack",
          "x": 32.25,
          "y": 19.9,
          "width": 2,
          "depth": 1,
          "height": 3,
          "count": 1,
          "label": "전자부품 릴 랙 8"
        },
        {
          "id": "reels-bin_rack-09",
          "type": "bin_rack",
          "x": 34.9,
          "y": 19.9,
          "width": 2,
          "depth": 1,
          "height": 3,
          "count": 1,
          "label": "전자부품 릴 랙 9"
        },
        {
          "id": "reels-bin_rack-10",
          "type": "bin_rack",
          "x": 37.55,
          "y": 19.9,
          "width": 2,
          "depth": 1,
          "height": 3,
          "count": 1,
          "label": "전자부품 릴 랙 10"
        },
        {
          "id": "reels-bin_rack-11",
          "type": "bin_rack",
          "x": 40.0,
          "y": 20.5,
          "width": 2,
          "depth": 1,
          "height": 3,
          "count": 1,
          "label": "전자부품 릴 랙 11"
        },
        {
          "id": "reels-bin_rack-12",
          "type": "bin_rack",
          "x": 43.2,
          "y": 22.0,
          "width": 2,
          "depth": 1,
          "height": 3,
          "count": 1,
          "label": "전자부품 릴 랙 12"
        },
        {
          "id": "reels-bin_rack-13",
          "type": "bin_rack",
          "x": 29.6,
          "y": 23.6,
          "width": 2,
          "depth": 1,
          "height": 3,
          "count": 1,
          "label": "전자부품 릴 랙 13"
        },
        {
          "id": "reels-bin_rack-14",
          "type": "bin_rack",
          "x": 32.25,
          "y": 23.6,
          "width": 2,
          "depth": 1,
          "height": 3,
          "count": 1,
          "label": "전자부품 릴 랙 14"
        },
        {
          "id": "reels-bin_rack-15",
          "type": "bin_rack",
          "x": 34.9,
          "y": 23.6,
          "width": 2,
          "depth": 1,
          "height": 3,
          "count": 1,
          "label": "전자부품 릴 랙 15"
        },
        {
          "id": "reels-bin_rack-16",
          "type": "bin_rack",
          "x": 37.55,
          "y": 23.6,
          "width": 2,
          "depth": 1,
          "height": 3,
          "count": 1,
          "label": "전자부품 릴 랙 16"
        }
      ]
    },
    {
      "id": "pcb",
      "name": "베어 PCB·매거진",
      "role": "warehouse",
      "building_id": "components",
      "x": 45,
      "y": 15,
      "width": 10,
      "depth": 12,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "pcb-bin_rack-01",
          "type": "bin_rack",
          "x": 46.6,
          "y": 16.2,
          "width": 2,
          "depth": 1,
          "height": 3,
          "count": 1,
          "label": "ESD PCB 매거진 1"
        },
        {
          "id": "pcb-bin_rack-02",
          "type": "bin_rack",
          "x": 49.25,
          "y": 16.2,
          "width": 2,
          "depth": 1,
          "height": 3,
          "count": 1,
          "label": "ESD PCB 매거진 2"
        },
        {
          "id": "pcb-bin_rack-03",
          "type": "bin_rack",
          "x": 51.9,
          "y": 16.2,
          "width": 2,
          "depth": 1,
          "height": 3,
          "count": 1,
          "label": "ESD PCB 매거진 3"
        },
        {
          "id": "pcb-bin_rack-04",
          "type": "bin_rack",
          "x": 46.6,
          "y": 19.9,
          "width": 2,
          "depth": 1,
          "height": 3,
          "count": 1,
          "label": "ESD PCB 매거진 4"
        },
        {
          "id": "pcb-bin_rack-05",
          "type": "bin_rack",
          "x": 49.25,
          "y": 19.9,
          "width": 2,
          "depth": 1,
          "height": 3,
          "count": 1,
          "label": "ESD PCB 매거진 5"
        },
        {
          "id": "pcb-bin_rack-06",
          "type": "bin_rack",
          "x": 51.9,
          "y": 19.9,
          "width": 2,
          "depth": 1,
          "height": 3,
          "count": 1,
          "label": "ESD PCB 매거진 6"
        },
        {
          "id": "pcb-bin_rack-07",
          "type": "bin_rack",
          "x": 46.6,
          "y": 23.6,
          "width": 2,
          "depth": 1,
          "height": 3,
          "count": 1,
          "label": "ESD PCB 매거진 7"
        },
        {
          "id": "pcb-bin_rack-08",
          "type": "bin_rack",
          "x": 49.25,
          "y": 23.6,
          "width": 2,
          "depth": 1,
          "height": 3,
          "count": 1,
          "label": "ESD PCB 매거진 8"
        }
      ]
    },
    {
      "id": "incoming",
      "name": "로트 입고·개봉 검사",
      "role": "warehouse",
      "building_id": "components",
      "x": 28,
      "y": 27,
      "width": 27,
      "depth": 6,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "incoming-dock_staging-01",
          "type": "dock_staging",
          "x": 29.6,
          "y": 28.3,
          "width": 2,
          "depth": 1.4,
          "height": 1.2,
          "count": 1,
          "label": "입고 검수 대기 1"
        },
        {
          "id": "incoming-dock_staging-02",
          "type": "dock_staging",
          "x": 32.4,
          "y": 28.3,
          "width": 2,
          "depth": 1.4,
          "height": 1.2,
          "count": 1,
          "label": "입고 검수 대기 2"
        },
        {
          "id": "incoming-dock_staging-03",
          "type": "dock_staging",
          "x": 35.2,
          "y": 28.3,
          "width": 2,
          "depth": 1.4,
          "height": 1.2,
          "count": 1,
          "label": "입고 검수 대기 3"
        },
        {
          "id": "incoming-dock_staging-04",
          "type": "dock_staging",
          "x": 38.0,
          "y": 28.3,
          "width": 2,
          "depth": 1.4,
          "height": 1.2,
          "count": 1,
          "label": "입고 검수 대기 4"
        },
        {
          "id": "incoming-dock_staging-05",
          "type": "dock_staging",
          "x": 40.8,
          "y": 28.3,
          "width": 2,
          "depth": 1.4,
          "height": 1.2,
          "count": 1,
          "label": "입고 검수 대기 5"
        },
        {
          "id": "incoming-dock_staging-06",
          "type": "dock_staging",
          "x": 43.6,
          "y": 28.3,
          "width": 2,
          "depth": 1.4,
          "height": 1.2,
          "count": 1,
          "label": "입고 검수 대기 6"
        },
        {
          "id": "incoming-worktable-01",
          "type": "worktable",
          "x": 47.75,
          "y": 27.95,
          "width": 1.5,
          "depth": 0.7,
          "height": 1,
          "count": 1,
          "label": "개봉·라벨 확인 1"
        },
        {
          "id": "incoming-worktable-02",
          "type": "worktable",
          "x": 50.05,
          "y": 27.95,
          "width": 1.5,
          "depth": 0.7,
          "height": 1,
          "count": 1,
          "label": "개봉·라벨 확인 2"
        }
      ]
    },
    {
      "id": "pack",
      "name": "출하 ESD 포장·완제품 인계",
      "role": "warehouse",
      "building_id": "finish",
      "x": 61,
      "y": 24,
      "width": 17,
      "depth": 9,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "pack-workbench-01",
          "type": "workbench",
          "x": 62.5,
          "y": 25.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1,
          "count": 1,
          "label": "차폐백·라벨 포장 1"
        },
        {
          "id": "pack-workbench-02",
          "type": "workbench",
          "x": 65.1,
          "y": 25.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1,
          "count": 1,
          "label": "차폐백·라벨 포장 2"
        },
        {
          "id": "pack-workbench-03",
          "type": "workbench",
          "x": 67.7,
          "y": 25.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1,
          "count": 1,
          "label": "차폐백·라벨 포장 3"
        },
        {
          "id": "pack-workbench-04",
          "type": "workbench",
          "x": 70.3,
          "y": 25.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1,
          "count": 1,
          "label": "차폐백·라벨 포장 4"
        },
        {
          "id": "pack-workbench-05",
          "type": "workbench",
          "x": 72.9,
          "y": 25.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1,
          "count": 1,
          "label": "차폐백·라벨 포장 5"
        },
        {
          "id": "pack-cabinet-01",
          "type": "cabinet",
          "x": 76.2,
          "y": 24.9,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "ESD 포장 부자재 1"
        },
        {
          "id": "pack-cabinet-02",
          "type": "cabinet",
          "x": 62.2,
          "y": 26.8,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "ESD 포장 부자재 2"
        },
        {
          "id": "pack-cabinet-03",
          "type": "cabinet",
          "x": 64.2,
          "y": 26.8,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "ESD 포장 부자재 3"
        },
        {
          "id": "pack-cabinet-04",
          "type": "cabinet",
          "x": 66.2,
          "y": 26.8,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "ESD 포장 부자재 4"
        }
      ]
    },
    {
      "id": "finished",
      "name": "합격 PCB 납품 랙",
      "role": "warehouse",
      "building_id": "finish",
      "x": 61,
      "y": 15,
      "width": 17,
      "depth": 9,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "finished-pallet_rack-01",
          "type": "pallet_rack",
          "x": 62.8,
          "y": 16.2,
          "width": 2.4,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "고객별 완제품 1"
        },
        {
          "id": "finished-pallet_rack-02",
          "type": "pallet_rack",
          "x": 65.85,
          "y": 16.2,
          "width": 2.4,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "고객별 완제품 2"
        },
        {
          "id": "finished-pallet_rack-03",
          "type": "pallet_rack",
          "x": 68.9,
          "y": 16.2,
          "width": 2.4,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "고객별 완제품 3"
        },
        {
          "id": "finished-pallet_rack-04",
          "type": "pallet_rack",
          "x": 71.7,
          "y": 22.0,
          "width": 2.4,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "고객별 완제품 4"
        },
        {
          "id": "finished-pallet_rack-05",
          "type": "pallet_rack",
          "x": 75.0,
          "y": 16.2,
          "width": 2.4,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "고객별 완제품 5"
        },
        {
          "id": "finished-pallet_rack-06",
          "type": "pallet_rack",
          "x": 62.8,
          "y": 19.9,
          "width": 2.4,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "고객별 완제품 6"
        },
        {
          "id": "finished-pallet_rack-07",
          "type": "pallet_rack",
          "x": 65.85,
          "y": 19.9,
          "width": 2.4,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "고객별 완제품 7"
        },
        {
          "id": "finished-pallet_rack-08",
          "type": "pallet_rack",
          "x": 68.9,
          "y": 19.9,
          "width": 2.4,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "고객별 완제품 8"
        },
        {
          "id": "finished-pallet_rack-09",
          "type": "pallet_rack",
          "x": 74.7,
          "y": 22.0,
          "width": 2.4,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "고객별 완제품 9"
        },
        {
          "id": "finished-pallet_rack-10",
          "type": "pallet_rack",
          "x": 75.0,
          "y": 19.9,
          "width": 2.4,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "고객별 완제품 10"
        }
      ]
    },
    {
      "id": "office",
      "name": "생산·고객 대응",
      "role": "office",
      "building_id": "support",
      "x": 12,
      "y": 15,
      "width": 12,
      "depth": 12,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "office-office_desks-01",
          "type": "office_desks",
          "x": 13.9,
          "y": 17.2,
          "width": 2.3,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "label": "고객·입출고 운영"
        },
        {
          "id": "office-office_desks-02",
          "type": "office_desks",
          "x": 18,
          "y": 17.2,
          "width": 2.3,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "label": "고객·입출고 운영"
        },
        {
          "id": "office-office_desks-03",
          "type": "office_desks",
          "x": 22.1,
          "y": 17.2,
          "width": 2.3,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "label": "고객·입출고 운영"
        },
        {
          "id": "office-office_desks-04",
          "type": "office_desks",
          "x": 13.9,
          "y": 21.2,
          "width": 2.3,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "label": "공정·품질 엔지니어"
        },
        {
          "id": "office-office_desks-05",
          "type": "office_desks",
          "x": 18,
          "y": 21.2,
          "width": 2.3,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "label": "공정·품질 엔지니어"
        },
        {
          "id": "office-office_desks-06",
          "type": "office_desks",
          "x": 22.1,
          "y": 21.2,
          "width": 2.3,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "label": "공정·품질 엔지니어"
        },
        {
          "id": "office-office_desks-07",
          "type": "office_desks",
          "x": 13.9,
          "y": 25.2,
          "width": 2.3,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "label": "회로·치구 개발"
        },
        {
          "id": "office-office_desks-08",
          "type": "office_desks",
          "x": 18,
          "y": 25.2,
          "width": 2.3,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "label": "회로·치구 개발"
        },
        {
          "id": "office-office_desks-09",
          "type": "office_desks",
          "x": 22.1,
          "y": 25.2,
          "width": 2.3,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "label": "회로·치구 개발"
        }
      ]
    },
    {
      "id": "staff",
      "name": "ESD 탈의·휴게",
      "role": "staff",
      "building_id": "support",
      "x": 12,
      "y": 27,
      "width": 12,
      "depth": 10,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "staff-locker_bank-01",
          "type": "locker_bank",
          "x": 13.4,
          "y": 28,
          "width": 1.2,
          "depth": 0.55,
          "height": 1.8,
          "count": 1,
          "label": "교대별 ESD 작업복·신발 분리"
        },
        {
          "id": "staff-locker_bank-02",
          "type": "locker_bank",
          "x": 14.9,
          "y": 28,
          "width": 1.2,
          "depth": 0.55,
          "height": 1.8,
          "count": 1,
          "label": "교대별 ESD 작업복·신발 분리"
        },
        {
          "id": "staff-locker_bank-03",
          "type": "locker_bank",
          "x": 16.4,
          "y": 28,
          "width": 1.2,
          "depth": 0.55,
          "height": 1.8,
          "count": 1,
          "label": "교대별 ESD 작업복·신발 분리"
        },
        {
          "id": "staff-locker_bank-04",
          "type": "locker_bank",
          "x": 19.6,
          "y": 28,
          "width": 1.2,
          "depth": 0.55,
          "height": 1.8,
          "count": 1,
          "label": "교대별 ESD 작업복·신발 분리"
        },
        {
          "id": "staff-locker_bank-05",
          "type": "locker_bank",
          "x": 21.1,
          "y": 28,
          "width": 1.2,
          "depth": 0.55,
          "height": 1.8,
          "count": 1,
          "label": "교대별 ESD 작업복·신발 분리"
        },
        {
          "id": "staff-locker_bank-06",
          "type": "locker_bank",
          "x": 22.6,
          "y": 28,
          "width": 1.2,
          "depth": 0.55,
          "height": 1.8,
          "count": 1,
          "label": "교대별 ESD 작업복·신발 분리"
        },
        {
          "id": "staff-locker_bank-07",
          "type": "locker_bank",
          "x": 13.4,
          "y": 36,
          "width": 1.2,
          "depth": 0.55,
          "height": 1.8,
          "count": 1,
          "label": "교대별 ESD 작업복·신발 분리"
        },
        {
          "id": "staff-locker_bank-08",
          "type": "locker_bank",
          "x": 14.9,
          "y": 36,
          "width": 1.2,
          "depth": 0.55,
          "height": 1.8,
          "count": 1,
          "label": "교대별 ESD 작업복·신발 분리"
        },
        {
          "id": "staff-locker_bank-09",
          "type": "locker_bank",
          "x": 16.4,
          "y": 36,
          "width": 1.2,
          "depth": 0.55,
          "height": 1.8,
          "count": 1,
          "label": "교대별 ESD 작업복·신발 분리"
        },
        {
          "id": "staff-locker_bank-10",
          "type": "locker_bank",
          "x": 19.6,
          "y": 36,
          "width": 1.2,
          "depth": 0.55,
          "height": 1.8,
          "count": 1,
          "label": "교대별 ESD 작업복·신발 분리"
        },
        {
          "id": "staff-locker_bank-11",
          "type": "locker_bank",
          "x": 21.1,
          "y": 36,
          "width": 1.2,
          "depth": 0.55,
          "height": 1.8,
          "count": 1,
          "label": "교대별 ESD 작업복·신발 분리"
        },
        {
          "id": "staff-locker_bank-12",
          "type": "locker_bank",
          "x": 22.6,
          "y": 36,
          "width": 1.2,
          "depth": 0.55,
          "height": 1.8,
          "count": 1,
          "label": "교대별 ESD 작업복·신발 분리"
        },
        {
          "id": "staff-worktable-01",
          "type": "worktable",
          "x": 15,
          "y": 32.5,
          "width": 2.4,
          "depth": 1.2,
          "height": 1,
          "count": 1,
          "label": "교대 휴게·식사 6인"
        },
        {
          "id": "staff-worktable-02",
          "type": "worktable",
          "x": 21,
          "y": 32.5,
          "width": 2.4,
          "depth": 1.2,
          "height": 1,
          "count": 1,
          "label": "교대 휴게·식사 6인"
        },
        {
          "id": "staff-cabinet-01",
          "type": "cabinet",
          "x": 22.7,
          "y": 30,
          "width": 1.2,
          "depth": 0.5,
          "height": 1.4,
          "count": 1,
          "label": "ESD 신발·손목 접지 확인대"
        },
        {
          "id": "staff-bin_rack-01",
          "type": "bin_rack",
          "x": 13.4,
          "y": 30,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.2,
          "count": 1,
          "label": "개인 보호구·방진복 보급"
        }
      ]
    },
    {
      "id": "utility",
      "name": "공조·질소·청정공기",
      "role": "utility",
      "building_id": "support",
      "x": 12,
      "y": 37,
      "width": 12,
      "depth": 14,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "utility-air_handler-01",
          "type": "air_handler",
          "x": 15.5,
          "y": 40,
          "width": 4.5,
          "depth": 2.5,
          "height": 2.5,
          "count": 1,
          "label": "SMT 전처리·실장 청정 공조 AHU"
        },
        {
          "id": "utility-air_handler-02",
          "type": "air_handler",
          "x": 15.5,
          "y": 47,
          "width": 4.5,
          "depth": 2.5,
          "height": 2.5,
          "count": 1,
          "label": "후공정·검사 청정 공조 AHU"
        },
        {
          "id": "utility-compressor-01",
          "type": "compressor",
          "x": 21,
          "y": 39.5,
          "width": 2.5,
          "depth": 1.5,
          "height": 2,
          "count": 1,
          "label": "급유 없는 압축공기·건조"
        },
        {
          "id": "utility-electrical_bank-01",
          "type": "electrical_bank",
          "x": 13.1,
          "y": 49.8,
          "width": 1.5,
          "depth": 0.6,
          "height": 2,
          "count": 1,
          "label": "SMT A 전원·접지"
        },
        {
          "id": "utility-electrical_bank-02",
          "type": "electrical_bank",
          "x": 15.2,
          "y": 49.8,
          "width": 1.5,
          "depth": 0.6,
          "height": 2,
          "count": 1,
          "label": "SMT B 전원·접지"
        },
        {
          "id": "utility-electrical_bank-03",
          "type": "electrical_bank",
          "x": 17.3,
          "y": 49.8,
          "width": 1.5,
          "depth": 0.6,
          "height": 2,
          "count": 1,
          "label": "안전·통신·예비 전원"
        },
        {
          "id": "utility-tank_bank-01",
          "type": "tank_bank",
          "x": 21,
          "y": 43,
          "width": 2.4,
          "depth": 1.4,
          "height": 2.5,
          "count": 1,
          "label": "압축공기 수신기·오일미스트 필터"
        },
        {
          "id": "utility-tank_bank-02",
          "type": "tank_bank",
          "x": 21,
          "y": 46,
          "width": 2.4,
          "depth": 1.4,
          "height": 2.5,
          "count": 1,
          "label": "리플로 질소 버퍼·유량 조절"
        },
        {
          "id": "utility-cabinet-01",
          "type": "cabinet",
          "x": 21,
          "y": 49.2,
          "width": 2.2,
          "depth": 1.1,
          "height": 2.4,
          "count": 1,
          "label": "PSA 질소·건조 계통 점검"
        }
      ]
    },
    {
      "id": "maintenance",
      "name": "광학·피더 정비실",
      "role": "maintenance",
      "building_id": "support",
      "x": 12,
      "y": 51,
      "width": 12,
      "depth": 12,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "maintenance-workbench-01",
          "type": "workbench",
          "x": 14,
          "y": 52.5,
          "width": 2.4,
          "depth": 1.0,
          "height": 1,
          "count": 1,
          "label": "피더 분해·노즐 교체·정밀 배선 정비"
        },
        {
          "id": "maintenance-workbench-02",
          "type": "workbench",
          "x": 14,
          "y": 55.5,
          "width": 2.4,
          "depth": 1.0,
          "height": 1,
          "count": 1,
          "label": "피더 분해·노즐 교체·정밀 배선 정비"
        },
        {
          "id": "maintenance-workbench-03",
          "type": "workbench",
          "x": 14,
          "y": 58.5,
          "width": 2.4,
          "depth": 1.0,
          "height": 1,
          "count": 1,
          "label": "피더 분해·노즐 교체·정밀 배선 정비"
        },
        {
          "id": "maintenance-workbench-04",
          "type": "workbench",
          "x": 21.5,
          "y": 52.5,
          "width": 2.4,
          "depth": 1.0,
          "height": 1,
          "count": 1,
          "label": "피더 분해·노즐 교체·정밀 배선 정비"
        },
        {
          "id": "maintenance-workbench-05",
          "type": "workbench",
          "x": 21.5,
          "y": 55.5,
          "width": 2.4,
          "depth": 1.0,
          "height": 1,
          "count": 1,
          "label": "피더 분해·노즐 교체·정밀 배선 정비"
        },
        {
          "id": "maintenance-workbench-06",
          "type": "workbench",
          "x": 21.5,
          "y": 58.5,
          "width": 2.4,
          "depth": 1.0,
          "height": 1,
          "count": 1,
          "label": "피더 분해·노즐 교체·정밀 배선 정비"
        },
        {
          "id": "maintenance-cabinet-01",
          "type": "cabinet",
          "x": 13.2,
          "y": 62.1,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "피더·스핀들·광학 예비품 관리"
        },
        {
          "id": "maintenance-cabinet-02",
          "type": "cabinet",
          "x": 15.2,
          "y": 62.1,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "피더·스핀들·광학 예비품 관리"
        },
        {
          "id": "maintenance-cabinet-03",
          "type": "cabinet",
          "x": 17.2,
          "y": 62.1,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "피더·스핀들·광학 예비품 관리"
        },
        {
          "id": "maintenance-cabinet-04",
          "type": "cabinet",
          "x": 19.2,
          "y": 62.1,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "피더·스핀들·광학 예비품 관리"
        },
        {
          "id": "maintenance-cabinet-05",
          "type": "cabinet",
          "x": 21.2,
          "y": 62.1,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "피더·스핀들·광학 예비품 관리"
        },
        {
          "id": "maintenance-lab_bench-01",
          "type": "lab_bench",
          "x": 17.8,
          "y": 54,
          "width": 1.6,
          "depth": 1.2,
          "height": 1,
          "count": 1,
          "label": "흡착압·솔더 인쇄 치구 교정"
        },
        {
          "id": "maintenance-lab_bench-02",
          "type": "lab_bench",
          "x": 17.8,
          "y": 57.5,
          "width": 1.6,
          "depth": 1.2,
          "height": 1,
          "count": 1,
          "label": "광학 카메라·기준 보드 측정"
        },
        {
          "id": "maintenance-worktable-01",
          "type": "worktable",
          "x": 17.8,
          "y": 60.4,
          "width": 1.6,
          "depth": 1,
          "height": 1,
          "count": 1,
          "label": "분해 전후 부품·체결품 인계"
        }
      ]
    }
  ],
  "equipment": [
    {
      "stage_id": "S01",
      "index": 0,
      "x": 31,
      "y": 42.5,
      "angle": 0
    },
    {
      "stage_id": "S01",
      "index": 1,
      "x": 35,
      "y": 42.5,
      "angle": 0
    },
    {
      "stage_id": "S02",
      "index": 0,
      "x": 40,
      "y": 41,
      "angle": 0
    },
    {
      "stage_id": "S02",
      "index": 1,
      "x": 40,
      "y": 49,
      "angle": 0
    },
    {
      "stage_id": "S03",
      "index": 0,
      "x": 42.9,
      "y": 41,
      "angle": 0
    },
    {
      "stage_id": "S03",
      "index": 1,
      "x": 42.9,
      "y": 49,
      "angle": 0
    },
    {
      "stage_id": "S04",
      "index": 0,
      "x": 46,
      "y": 41,
      "angle": 0
    },
    {
      "stage_id": "S04",
      "index": 1,
      "x": 49.8,
      "y": 41,
      "angle": 0
    },
    {
      "stage_id": "S04",
      "index": 2,
      "x": 46,
      "y": 49,
      "angle": 0
    },
    {
      "stage_id": "S04",
      "index": 3,
      "x": 49.8,
      "y": 49,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 0,
      "x": 56.3,
      "y": 41,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 1,
      "x": 56.3,
      "y": 49,
      "angle": 0
    },
    {
      "stage_id": "S06",
      "index": 0,
      "x": 62.5,
      "y": 41,
      "angle": 0
    },
    {
      "stage_id": "S06",
      "index": 1,
      "x": 62.5,
      "y": 49,
      "angle": 0
    },
    {
      "stage_id": "S07",
      "index": 0,
      "x": 68.5,
      "y": 41.5,
      "angle": 0
    },
    {
      "stage_id": "S07",
      "index": 1,
      "x": 74,
      "y": 41.5,
      "angle": 0
    },
    {
      "stage_id": "S07",
      "index": 2,
      "x": 68.5,
      "y": 45.3,
      "angle": 0
    },
    {
      "stage_id": "S07",
      "index": 3,
      "x": 74,
      "y": 45.3,
      "angle": 0
    },
    {
      "stage_id": "S08",
      "index": 0,
      "x": 68.5,
      "y": 49,
      "angle": 0
    },
    {
      "stage_id": "S08",
      "index": 1,
      "x": 73.5,
      "y": 49,
      "angle": 0
    },
    {
      "stage_id": "S08",
      "index": 2,
      "x": 68.5,
      "y": 52.5,
      "angle": 0
    },
    {
      "stage_id": "S08",
      "index": 3,
      "x": 73.5,
      "y": 52.5,
      "angle": 0
    },
    {
      "stage_id": "S08",
      "index": 4,
      "x": 68.5,
      "y": 56,
      "angle": 0
    },
    {
      "stage_id": "S08",
      "index": 5,
      "x": 73.5,
      "y": 56,
      "angle": 0
    }
  ],
  "robots": [
    {
      "definition_index": 0,
      "instance_index": 0,
      "stage_id": "S04",
      "x": 46,
      "y": 41,
      "angle": 0,
      "task_station": "S04 #1 상부 지지 프레임 내장 XY 실장 헤드. 해당 장비 원점·방향을 공유하며 피더 흡착→PCB 패드 정렬→노즐 복귀를 수행한다. 독립 바닥 기둥을 배치하지 않는다.",
      "host_equipment": {
        "stage_id": "S04",
        "index": 0
      }
    },
    {
      "definition_index": 0,
      "instance_index": 1,
      "stage_id": "S04",
      "x": 49.8,
      "y": 41,
      "angle": 0,
      "task_station": "S04 #2 상부 지지 프레임 내장 XY 실장 헤드. 해당 장비 원점·방향을 공유하며 피더 흡착→PCB 패드 정렬→노즐 복귀를 수행한다. 독립 바닥 기둥을 배치하지 않는다.",
      "host_equipment": {
        "stage_id": "S04",
        "index": 1
      }
    },
    {
      "definition_index": 0,
      "instance_index": 2,
      "stage_id": "S04",
      "x": 46,
      "y": 49,
      "angle": 0,
      "task_station": "S04 #3 상부 지지 프레임 내장 XY 실장 헤드. 해당 장비 원점·방향을 공유하며 피더 흡착→PCB 패드 정렬→노즐 복귀를 수행한다. 독립 바닥 기둥을 배치하지 않는다.",
      "host_equipment": {
        "stage_id": "S04",
        "index": 2
      }
    },
    {
      "definition_index": 0,
      "instance_index": 3,
      "stage_id": "S04",
      "x": 49.8,
      "y": 49,
      "angle": 0,
      "task_station": "S04 #4 상부 지지 프레임 내장 XY 실장 헤드. 해당 장비 원점·방향을 공유하며 피더 흡착→PCB 패드 정렬→노즐 복귀를 수행한다. 독립 바닥 기둥을 배치하지 않는다.",
      "host_equipment": {
        "stage_id": "S04",
        "index": 3
      }
    },
    {
      "definition_index": 1,
      "instance_index": 0,
      "stage_id": "S07",
      "x": 67.75,
      "y": 41.15,
      "angle": 0.42662749312687603,
      "task_station": "S07 index 0 작업대 상면 z=1.3296m 위 .24m 소형 SCARA 베이스. 실제 PCB 좌측 커넥터 위치 z=1.44m까지 XY거리 .604m, reach .65m. 소형 제어함은 작업대 옆면에 두고 기존 형개방·체결축을 피한다.",
      "mounting_height_m": 1.05,
      "task_point": [
        68.3,
        41.4,
        1.44
      ],
      "host_equipment": {
        "stage_id": "S07",
        "index": 0
      },
      "controller_offset": [
        -0.2,
        -0.25,
        0
      ]
    },
    {
      "definition_index": 1,
      "instance_index": 1,
      "stage_id": "S07",
      "x": 73.25,
      "y": 44.949999999999996,
      "angle": 0.42662749312687603,
      "task_station": "S07 index 3 작업대 상면 z=1.3296m 위 .24m 소형 SCARA 베이스. 실제 PCB 좌측 커넥터 위치 z=1.44m까지 XY거리 .604m, reach .65m. 소형 제어함은 작업대 옆면에 두고 기존 형개방·체결축을 피한다.",
      "mounting_height_m": 1.05,
      "task_point": [
        73.8,
        45.199999999999996,
        1.44
      ],
      "host_equipment": {
        "stage_id": "S07",
        "index": 3
      },
      "controller_offset": [
        -0.2,
        -0.25,
        0
      ]
    },
    {
      "definition_index": 2,
      "instance_index": 0,
      "stage_id": "S01",
      "x": 30,
      "y": 46,
      "angle": 0,
      "task_station": "A라인 키팅 카트 인계"
    },
    {
      "definition_index": 2,
      "instance_index": 1,
      "stage_id": "S01",
      "x": 36,
      "y": 46,
      "angle": 3.141592653589793,
      "task_station": "B라인 키팅 카트 인계"
    }
  ],
  "logistics": [
    {
      "id": "A PCB 순서",
      "kind": "conveyor",
      "from": "S02:0",
      "to": "S06:0",
      "points": [
        [
          40,
          41,
          0.95
        ],
        [
          42.9,
          41,
          0.95
        ],
        [
          46,
          41,
          0.95
        ],
        [
          49.8,
          41,
          0.95
        ],
        [
          56.3,
          41,
          0.95
        ],
        [
          62.5,
          41,
          0.95
        ]
      ],
      "width": 0.45
    },
    {
      "id": "B PCB 순서",
      "kind": "conveyor",
      "from": "S02:1",
      "to": "S06:1",
      "points": [
        [
          40,
          49,
          0.95
        ],
        [
          42.9,
          49,
          0.95
        ],
        [
          46,
          49,
          0.95
        ],
        [
          49.8,
          49,
          0.95
        ],
        [
          56.3,
          49,
          0.95
        ],
        [
          62.5,
          49,
          0.95
        ]
      ],
      "width": 0.45
    },
    {
      "id": "피더 교체",
      "kind": "amr",
      "from": "kit",
      "to": "feed-aisle",
      "points": [
        [
          36,
          46,
          0.1
        ],
        [
          39,
          46,
          0.1
        ],
        [
          64,
          46,
          0.1
        ]
      ],
      "width": 1.2
    },
    {
      "id": "기능검사→포장",
      "kind": "amr",
      "from": "functional",
      "to": "pack",
      "points": [
        [
          77,
          55,
          0.1
        ],
        [
          81,
          55,
          0.1
        ],
        [
          81,
          29,
          0.1
        ],
        [
          76,
          29,
          0.1
        ]
      ],
      "width": 1.2
    },
    {
      "id": "릴 입고→키팅",
      "kind": "amr",
      "from": "incoming",
      "to": "kit",
      "points": [
        [
          31,
          32,
          0.1
        ],
        [
          31,
          36,
          0.1
        ],
        [
          31,
          39.5,
          0.1
        ]
      ],
      "width": 1.2
    },
    {
      "id": "ESD 작업자 입실",
      "kind": "pedestrian",
      "from": "staff",
      "to": "kit",
      "points": [
        [
          23,
          34,
          0.1
        ],
        [
          26,
          34,
          0.1
        ],
        [
          26,
          44.8,
          0.1
        ],
        [
          29,
          44.8,
          0.1
        ]
      ],
      "width": 1.2,
      "routing_note": "키팅 로더 S01:0 북측 외곽에서 1.2m 보행 폭을 확보한다. 로더 후면과 ESD 문 사이를 대각선으로 가르지 않는다."
    },
    {
      "id": "정문→ESD 탈의 입실",
      "kind": "pedestrian",
      "from": "gate",
      "to": "staff",
      "points": [
        [
          18,
          8,
          0.1
        ],
        [
          26,
          8,
          0.1
        ],
        [
          26,
          34,
          0.1
        ],
        [
          23,
          34,
          0.1
        ]
      ],
      "width": 1.2,
      "routing_note": "지원동 동측 4m 건물 사이 구간의 서측 보행선으로 출입하며 남측 물류도로 횡단부에서 차량과 교차한다."
    },
    {
      "id": "로더 B→SMT A",
      "from": "S01:1",
      "to": "S02:0",
      "points": [
        [
          35,
          42.5,
          1.05
        ],
        [
          37.5,
          42.5,
          1.05
        ],
        [
          37.5,
          41,
          1.05
        ],
        [
          40,
          41,
          1.05
        ]
      ],
      "kind": "conveyor",
      "width": 0.45,
      "authored_transport": true,
      "routing_note": "ESD PCB 매거진/보드 또는 검사 치구의 개별 인계. 통과 포트와 높이 조정은 형상 검수 대상이다."
    },
    {
      "id": "로더 A→SMT B",
      "from": "S01:0",
      "to": "S02:1",
      "points": [
        [
          31,
          42.5,
          1.05
        ],
        [
          31,
          44.5,
          1.05
        ],
        [
          37,
          44.5,
          1.05
        ],
        [
          37,
          49,
          1.05
        ],
        [
          40,
          49,
          1.05
        ]
      ],
      "kind": "conveyor",
      "width": 0.45,
      "authored_transport": true,
      "routing_note": "ESD PCB 매거진/보드 또는 검사 치구의 개별 인계. 통과 포트와 높이 조정은 형상 검수 대상이다."
    },
    {
      "id": "AOI A→커넥터 조립",
      "from": "S06:0",
      "to": "S07:0",
      "points": [
        [
          62.5,
          41,
          1.05
        ],
        [
          64.3,
          41,
          1.05
        ],
        [
          64.3,
          41.5,
          1.05
        ],
        [
          68.5,
          41.5,
          1.05
        ]
      ],
      "kind": "conveyor",
      "width": 0.45,
      "authored_transport": true,
      "routing_note": "ESD PCB 매거진/보드 또는 검사 치구의 개별 인계. 통과 포트와 높이 조정은 형상 검수 대상이다."
    },
    {
      "id": "AOI B→커넥터 조립",
      "from": "S06:1",
      "to": "S07:2",
      "points": [
        [
          62.5,
          49,
          1.05
        ],
        [
          64.5,
          49,
          1.05
        ],
        [
          64.5,
          44.4,
          1.05
        ],
        [
          68.5,
          44.4,
          1.05
        ],
        [
          68.5,
          45.3,
          1.05
        ]
      ],
      "kind": "conveyor",
      "width": 0.45,
      "authored_transport": true,
      "routing_note": "ESD PCB 매거진/보드 또는 검사 치구의 개별 인계. 통과 포트와 높이 조정은 형상 검수 대상이다."
    },
    {
      "id": "조립→기능검사 A",
      "from": "S07:2",
      "to": "S08:0",
      "points": [
        [
          68.5,
          46.92,
          0.1
        ],
        [
          68.5,
          47.48,
          0.1
        ]
      ],
      "kind": "amr",
      "width": 1.0,
      "authored_transport": true,
      "routing_note": "ESD PCB 매거진/보드 또는 검사 치구의 개별 인계. 통과 포트와 높이 조정은 형상 검수 대상이다.",
      "handover_method": "external_machine_side_staging",
      "handover_note": "차량 중심선은 설비 footprint 바깥에 정차한다. 장비 측 인계대·적재 자세와 지게차 포크/AMR 도킹 상세는 실제 형상 검수 대상이다."
    },
    {
      "id": "조립→기능검사 B",
      "from": "S07:3",
      "to": "S08:1",
      "points": [
        [
          74.0,
          46.92,
          0.1
        ],
        [
          74.0,
          47.48,
          0.1
        ]
      ],
      "kind": "amr",
      "width": 1.0,
      "authored_transport": true,
      "routing_note": "ESD PCB 매거진/보드 또는 검사 치구의 개별 인계. 통과 포트와 높이 조정은 형상 검수 대상이다.",
      "handover_method": "external_machine_side_staging",
      "handover_note": "차량 중심선은 설비 footprint 바깥에 정차한다. 장비 측 인계대·적재 자세와 지게차 포크/AMR 도킹 상세는 실제 형상 검수 대상이다."
    },
    {
      "id": "최종검사→출하 대기 2",
      "kind": "amr",
      "width": 1.4,
      "from": "S08:1",
      "to": "finished",
      "points": [
        [
          75.32,
          49.0,
          0.1
        ],
        [
          78.97,
          49,
          0.1
        ],
        [
          78.97,
          18.48,
          0.1
        ],
        [
          72.0,
          18.48,
          0.1
        ],
        [
          72.0,
          19.0,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다.",
      "handover_method": "external_machine_side_staging",
      "handover_note": "차량 중심선은 설비 footprint 바깥에 정차한다. 장비 측 인계대·적재 자세와 지게차 포크/AMR 도킹 상세는 실제 형상 검수 대상이다."
    },
    {
      "id": "출하 대기→완제품 도크 2",
      "kind": "amr",
      "width": 1.4,
      "from": "finished",
      "to": "shipping-dock",
      "points": [
        [
          72.0,
          19.0,
          0.1
        ],
        [
          72,
          15,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다."
    },
    {
      "id": "정문→ESD 탈의·휴게",
      "kind": "pedestrian",
      "width": 1.2,
      "from": "gate",
      "to": "staff",
      "points": [
        [
          18,
          8,
          0.1
        ],
        [
          24.87,
          8,
          0.1
        ],
        [
          24.87,
          31.08,
          0.1
        ],
        [
          18,
          31.08,
          0.1
        ],
        [
          18.0,
          32.0,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다."
    },
    {
      "id": "지원동 보행 staff→office",
      "kind": "pedestrian",
      "width": 1.2,
      "from": "staff",
      "to": "office",
      "points": [
        [
          18.0,
          32.0,
          0.1
        ],
        [
          18.0,
          31.07,
          0.1
        ],
        [
          11.13,
          31.07,
          0.1
        ],
        [
          11.13,
          19.5,
          0.1
        ],
        [
          18.0,
          19.5,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다."
    },
    {
      "id": "지원동 보행 staff→utility",
      "kind": "pedestrian",
      "width": 1.2,
      "from": "staff",
      "to": "utility",
      "points": [
        [
          18.0,
          32.0,
          0.1
        ],
        [
          18.0,
          37.93,
          0.1
        ],
        [
          18.57,
          37.93,
          0.1
        ],
        [
          18.57,
          44.0,
          0.1
        ],
        [
          18.0,
          44.0,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다."
    },
    {
      "id": "원료 도크→입고 인계 1",
      "kind": "amr",
      "width": 1.4,
      "from": "raw-dock",
      "to": "reels",
      "points": [
        [
          41,
          15,
          0.1
        ],
        [
          41,
          19,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다."
    },
    {
      "id": "입고 랙→수입검사 인계",
      "kind": "amr",
      "width": 1.2,
      "from": "reels",
      "to": "incoming",
      "points": [
        [
          41,
          19,
          0.1
        ],
        [
          41,
          14.18,
          0.1
        ],
        [
          27.13,
          14.18,
          0.1
        ],
        [
          27.13,
          32,
          0.1
        ],
        [
          31,
          32,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다."
    },
    {
      "id": "지원동 보행 staff→maintenance",
      "kind": "pedestrian",
      "width": 1.2,
      "from": "staff",
      "to": "maintenance",
      "points": [
        [
          18,
          32,
          0.1
        ],
        [
          18,
          37.93,
          0.1
        ],
        [
          18.93,
          37.93,
          0.1
        ],
        [
          18.93,
          52.58,
          0.1
        ],
        [
          19.42,
          52.58,
          0.1
        ],
        [
          19.42,
          56,
          0.1
        ],
        [
          18,
          56,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다."
    }
  ],
  "yard": {
    "roads": [
      {
        "points": [
          [
            8,
            8
          ],
          [
            84,
            8
          ],
          [
            84,
            70
          ],
          [
            8,
            70
          ],
          [
            8,
            8
          ]
        ],
        "width": 7
      }
    ],
    "docks": [
      {
        "x": 41,
        "y": 15,
        "angle": 0,
        "building_id": "components",
        "role": "원료·구매부품 입고 도크 — 전자부품 입고"
      },
      {
        "x": 72,
        "y": 15,
        "angle": 0,
        "building_id": "finish",
        "role": "완제품 출하"
      }
    ],
    "parking": [
      {
        "x": 30,
        "y": 69,
        "angle": 0,
        "count": 16
      }
    ],
    "gate": {
      "x": 18,
      "y": 8
    },
    "fence": true
  },
  "landmarks": [
    "길이 28m의 두 SMT 셀을 수용하는 낮은 톱니 채광 지붕",
    "서쪽 12m 폭 벽돌 사무·시험 지원동",
    "남쪽 입고·출하창고 사이 6m 물류 틈과 분리된 두 도크",
    "후공정 10개 소형 설비를 모은 동측 작업장과 실제 ESD 준비대"
  ],
  "openings": [
    {
      "id": "opening-1",
      "building_id": "smt-hall",
      "x": 38,
      "y": 46.0,
      "width": 1.8,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "kit",
        "feed-aisle"
      ],
      "zone_id": "kit"
    },
    {
      "id": "opening-2",
      "building_id": "smt-hall",
      "x": 78,
      "y": 55.0,
      "width": 1.8,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "functional",
        "pack"
      ]
    },
    {
      "id": "opening-3",
      "building_id": "smt-hall",
      "x": 78,
      "y": 55.0,
      "width": 1.8,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "functional",
        "pack"
      ],
      "zone_id": "functional"
    },
    {
      "id": "opening-4",
      "building_id": "finish",
      "x": 78,
      "y": 29.0,
      "width": 1.8,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "functional",
        "pack"
      ]
    },
    {
      "id": "opening-5",
      "building_id": "finish",
      "x": 78,
      "y": 29.0,
      "width": 1.8,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "functional",
        "pack"
      ],
      "zone_id": "pack"
    },
    {
      "id": "opening-6",
      "building_id": "components",
      "x": 31.0,
      "y": 33,
      "width": 1.8,
      "height": 3.0,
      "axis": "x",
      "connects": [
        "incoming",
        "kit"
      ]
    },
    {
      "id": "opening-7",
      "building_id": "components",
      "x": 31.0,
      "y": 33,
      "width": 1.8,
      "height": 3.0,
      "axis": "x",
      "connects": [
        "incoming",
        "kit"
      ],
      "zone_id": "incoming"
    },
    {
      "id": "opening-8",
      "building_id": "smt-hall",
      "x": 31.0,
      "y": 39,
      "width": 1.8,
      "height": 3.0,
      "axis": "x",
      "connects": [
        "incoming",
        "kit"
      ]
    },
    {
      "id": "opening-9",
      "building_id": "smt-hall",
      "x": 31.0,
      "y": 39,
      "width": 1.8,
      "height": 3.0,
      "axis": "x",
      "connects": [
        "incoming",
        "kit"
      ],
      "zone_id": "kit"
    },
    {
      "id": "opening-10",
      "building_id": "support",
      "x": 24,
      "y": 34.0,
      "width": 1.8,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "staff",
        "kit"
      ]
    },
    {
      "id": "opening-11",
      "building_id": "support",
      "x": 24,
      "y": 34.0,
      "width": 1.8,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "staff",
        "kit"
      ],
      "zone_id": "staff"
    },
    {
      "id": "opening-12",
      "building_id": "smt-hall",
      "x": 28,
      "y": 44.8,
      "width": 1.6,
      "height": 2.3,
      "axis": "y",
      "connects": [
        "staff",
        "kit"
      ]
    },
    {
      "id": "opening-13",
      "building_id": "smt-hall",
      "x": 28,
      "y": 44.8,
      "width": 1.6,
      "height": 2.3,
      "axis": "y",
      "connects": [
        "staff",
        "kit"
      ],
      "zone_id": "kit"
    },
    {
      "id": "routing-r1-014",
      "building_id": "smt-hall",
      "x": 38,
      "y": 41.0,
      "width": 0.8,
      "height": 1.6,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S01:1",
        "S02:0"
      ],
      "kind": "process_transfer",
      "zone_id": "kit"
    },
    {
      "id": "routing-r1-015",
      "building_id": "smt-hall",
      "x": 38,
      "y": 41.0,
      "width": 0.8,
      "height": 1.6,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S01:1",
        "S02:0"
      ],
      "kind": "process_transfer",
      "zone_id": "line-b"
    },
    {
      "id": "routing-r1-016",
      "building_id": "smt-hall",
      "x": 37.0,
      "y": 47,
      "width": 0.8,
      "height": 1.6,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "S01:0",
        "S02:1"
      ],
      "kind": "process_transfer",
      "zone_id": "kit"
    },
    {
      "id": "routing-r1-017",
      "building_id": "smt-hall",
      "x": 38,
      "y": 49.0,
      "width": 0.8,
      "height": 1.6,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S01:0",
        "S02:1"
      ],
      "kind": "process_transfer",
      "zone_id": "line-a"
    },
    {
      "id": "routing-r1-018",
      "building_id": "smt-hall",
      "x": 66,
      "y": 41.5,
      "width": 0.8,
      "height": 1.6,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S06:0",
        "S07:0"
      ],
      "kind": "process_transfer",
      "zone_id": "line-b"
    },
    {
      "id": "routing-r1-019",
      "building_id": "smt-hall",
      "x": 66,
      "y": 41.5,
      "width": 0.8,
      "height": 1.6,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S06:0",
        "S07:0"
      ],
      "kind": "process_transfer",
      "zone_id": "assembly"
    },
    {
      "id": "routing-r1-020",
      "building_id": "smt-hall",
      "x": 64.5,
      "y": 45,
      "width": 0.8,
      "height": 1.6,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "S06:1",
        "S07:2"
      ],
      "kind": "process_transfer",
      "zone_id": "line-b"
    },
    {
      "id": "routing-r1-021",
      "building_id": "smt-hall",
      "x": 64.5,
      "y": 47,
      "width": 0.8,
      "height": 1.6,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "S06:1",
        "S07:2"
      ],
      "kind": "process_transfer",
      "zone_id": "line-a"
    },
    {
      "id": "routing-r1-022",
      "building_id": "smt-hall",
      "x": 66,
      "y": 44.4,
      "width": 0.8,
      "height": 1.6,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S06:1",
        "S07:2"
      ],
      "kind": "process_transfer",
      "zone_id": "line-b"
    },
    {
      "id": "routing-r1-023",
      "building_id": "smt-hall",
      "x": 66,
      "y": 44.4,
      "width": 0.8,
      "height": 1.6,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S06:1",
        "S07:2"
      ],
      "kind": "process_transfer",
      "zone_id": "assembly"
    },
    {
      "id": "routing-r1-024",
      "building_id": "smt-hall",
      "x": 68.5,
      "y": 47,
      "width": 1.55,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "S07:2",
        "S08:0"
      ],
      "kind": "material_door",
      "zone_id": "assembly"
    },
    {
      "id": "routing-r1-025",
      "building_id": "smt-hall",
      "x": 68.5,
      "y": 47,
      "width": 1.55,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "S07:2",
        "S08:0"
      ],
      "kind": "material_door",
      "zone_id": "functional"
    },
    {
      "id": "routing-r1-026",
      "building_id": "smt-hall",
      "x": 74.0,
      "y": 47,
      "width": 1.55,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "S07:3",
        "S08:1"
      ],
      "kind": "material_door",
      "zone_id": "assembly"
    },
    {
      "id": "routing-r1-027",
      "building_id": "smt-hall",
      "x": 74.0,
      "y": 47,
      "width": 1.55,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "S07:3",
        "S08:1"
      ],
      "kind": "material_door",
      "zone_id": "functional"
    },
    {
      "id": "routing-r1-028",
      "building_id": "smt-hall",
      "x": 78,
      "y": 49.0,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S08:1",
        "finished"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-029",
      "building_id": "smt-hall",
      "x": 78,
      "y": 49.0,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S08:1",
        "finished"
      ],
      "kind": "material_door",
      "zone_id": "functional"
    },
    {
      "id": "routing-r1-030",
      "building_id": "finish",
      "x": 78,
      "y": 18.48,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S08:1",
        "finished"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-031",
      "building_id": "finish",
      "x": 72.0,
      "y": 15,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "finished",
        "shipping-dock"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-032",
      "building_id": "support",
      "x": 24,
      "y": 31.08,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "gate",
        "staff"
      ],
      "kind": "pedestrian_door"
    },
    {
      "id": "routing-r1-033",
      "building_id": "support",
      "x": 24,
      "y": 31.08,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "gate",
        "staff"
      ],
      "kind": "pedestrian_door",
      "zone_id": "staff"
    },
    {
      "id": "routing-r1-034",
      "building_id": "support",
      "x": 12,
      "y": 31.07,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "staff",
        "office"
      ],
      "kind": "pedestrian_door"
    },
    {
      "id": "routing-r1-035",
      "building_id": "support",
      "x": 12,
      "y": 31.07,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "staff",
        "office"
      ],
      "kind": "pedestrian_door",
      "zone_id": "staff"
    },
    {
      "id": "routing-r1-036",
      "building_id": "support",
      "x": 12,
      "y": 19.5,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "staff",
        "office"
      ],
      "kind": "pedestrian_door"
    },
    {
      "id": "routing-r1-037",
      "building_id": "support",
      "x": 12,
      "y": 19.5,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "staff",
        "office"
      ],
      "kind": "pedestrian_door",
      "zone_id": "office"
    },
    {
      "id": "routing-r1-038",
      "building_id": "support",
      "x": 18.0,
      "y": 37,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "staff",
        "utility"
      ],
      "kind": "pedestrian_door",
      "zone_id": "staff"
    },
    {
      "id": "routing-r1-039",
      "building_id": "support",
      "x": 18.0,
      "y": 37,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "staff",
        "utility"
      ],
      "kind": "pedestrian_door",
      "zone_id": "utility"
    },
    {
      "id": "routing-r1-040",
      "building_id": "components",
      "x": 41.0,
      "y": 15,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "raw-dock",
        "reels"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-041",
      "building_id": "components",
      "x": 28,
      "y": 32.0,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "reels",
        "incoming"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-042",
      "building_id": "support",
      "x": 18.93,
      "y": 51,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "staff",
        "maintenance"
      ],
      "kind": "pedestrian_door",
      "zone_id": "utility"
    },
    {
      "id": "routing-r1-043",
      "building_id": "support",
      "x": 18.93,
      "y": 51,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "staff",
        "maintenance"
      ],
      "kind": "pedestrian_door",
      "zone_id": "maintenance"
    }
  ],
  "density": {
    "intent": "SMT·키팅·조립·기능검사 구역 644㎡에 설비 약130㎡를 놓아 바닥 점유 약20.2%를 확보한다. 출하 전 차폐백·라벨 인계는 남쪽 창고 안에 두며 작은 피더 준비대·치구함과 2m 카트 통로가 추가된다. 대기 창고와 시험지원 포함 전체 실내는 2568㎡로 생산능력에 맞춘다.",
    "production_area_m2": 644,
    "storage_area_m2": 1052,
    "support_area_m2": 816,
    "circulation_area_m2": 56
  },
  "authoring_note": "개별 배치안. 형상·동작·피난·법정 안전설계 검수 및 시각 검수는 별도 수행해야 하며 공개 릴리스 승인 아님.",
  "routing_revision": 2,
  "routing_design_note": "ESD 입실문 y=44.8 유지. 2개 로더→2개 SMT, AOI→조립, 조립→기능검사의 빠진 실제 이송선을 추가. 지원동실 프로그램 보완. S04 실장 헤드 갠트리 4개는 machine_integrated / smt_pick_head로 명시한다. 각 헤드는 영구 instance_index와 같은 S04 설치 index를 host_equipment로 참조하며 장비 원점·방향을 공유한다. 장비 상부의 XY 레일·이동 캐리지·Z축 진공 노즐이 동작하고 피더 bank 및 PCB 반송 레일을 가로막는 독립 바닥형 기둥은 없다.",
  "robot_workcell_revision": 1
}
