{
  "factory_id": "O01",
  "design_revision": 2,
  "design_story": "온결은 원료 계량과 수상·유상 준비가 중앙 유화실로 합쳐지는 스킨케어 공장이다. 서쪽 원료창고에서 계량한 배치는 수상 탱크와 유상 가열 탱크로 갈라졌다가 세 유화기로 들어간다. 냉각·배치 대기 탱크는 청정 충전동과 맞닿은 쪽에 놓아 제품 배관이 실외 마당을 가로지르지 않게 한다. 동쪽에는 세 충전·캡핑 라인이 짧은 검사와 케이스 포장을 향해 나란히 뻗고 남쪽 창고는 용기·펌프·캡의 부피에 맞춘 랙을 갖춘다. 흰 조제동의 높은 채광면, 민트색 낮은 충전동, 작은 벽돌 품질동이 각기 다른 외관을 만든다.",
  "site": {
    "width": 102,
    "depth": 91
  },
  "buildings": [
    {
      "id": "phases",
      "name": "계량·수상·유상 준비동",
      "role": "production",
      "polygon": [
        [
          14,
          40
        ],
        [
          55.1,
          40
        ],
        [
          55.1,
          53.2
        ],
        [
          14,
          53.2
        ]
      ],
      "height": 7,
      "roof": {
        "type": "sawtooth",
        "axis": "x",
        "pitch": 0.16
      },
      "facade": {
        "color": [
          0.86,
          0.84,
          0.78
        ],
        "accent": [
          0.15,
          0.29,
          0.38
        ],
        "material": "metal",
        "window_band_height": 0.85
      }
    },
    {
      "id": "emulsion",
      "name": "진공 유화·냉각·배치 대기동",
      "role": "production",
      "polygon": [
        [
          14,
          58.2
        ],
        [
          37.5,
          58.2
        ],
        [
          37.5,
          76.2
        ],
        [
          14,
          76.2
        ]
      ],
      "height": 8,
      "roof": {
        "type": "gable",
        "axis": "x",
        "pitch": 0.16
      },
      "facade": {
        "color": [
          0.72,
          0.78,
          0.69
        ],
        "accent": [
          0.15,
          0.29,
          0.38
        ],
        "material": "metal",
        "window_band_height": 0.85
      }
    },
    {
      "id": "fill",
      "name": "3라인 충전·표시검사·케이스 포장동",
      "role": "production",
      "polygon": [
        [
          61.1,
          40
        ],
        [
          84.3,
          40
        ],
        [
          84.3,
          59.4
        ],
        [
          61.1,
          59.4
        ]
      ],
      "height": 7,
      "roof": {
        "type": "flat",
        "axis": "x",
        "pitch": 0.16
      },
      "facade": {
        "color": [
          0.66,
          0.82,
          0.76
        ],
        "accent": [
          0.15,
          0.3,
          0.35
        ],
        "material": "metal",
        "window_band_height": 0.85
      }
    },
    {
      "id": "pack-store",
      "name": "원료·용기·완제품 보관",
      "role": "warehouse",
      "polygon": [
        [
          14,
          14
        ],
        [
          48,
          14
        ],
        [
          48,
          34
        ],
        [
          14,
          34
        ]
      ],
      "height": 7.5,
      "roof": {
        "type": "gable",
        "axis": "y",
        "pitch": 0.15
      },
      "facade": {
        "color": [
          0.59,
          0.65,
          0.64
        ],
        "accent": [
          0.17,
          0.32,
          0.34
        ],
        "material": "metal",
        "window_band_height": 0.85
      }
    },
    {
      "id": "support",
      "name": "제형품질·미생물·교대 지원",
      "role": "support",
      "polygon": [
        [
          54,
          14
        ],
        [
          90.0,
          14
        ],
        [
          90.0,
          34.0
        ],
        [
          54,
          34.0
        ]
      ],
      "height": 5.5,
      "roof": {
        "type": "flat",
        "axis": "x",
        "pitch": 0.1
      },
      "facade": {
        "color": [
          0.65,
          0.45,
          0.34
        ],
        "accent": [
          0.2,
          0.28,
          0.3
        ],
        "material": "brick",
        "window_band_height": 0.85
      }
    }
  ],
  "zones": [
    {
      "id": "phases",
      "name": "계량·수상·유상 준비동",
      "role": "process",
      "building_id": "phases",
      "x": 14,
      "y": 40,
      "width": 41.1,
      "depth": 13.2,
      "stage_ids": [
        "S01",
        "S02",
        "S03"
      ],
      "fixtures": [
        {
          "id": "phases-cabinet-01",
          "type": "cabinet",
          "x": 15.2,
          "y": 40.9,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "향료·계량기·원료 소도구 1"
        },
        {
          "id": "phases-cabinet-02",
          "type": "cabinet",
          "x": 17.2,
          "y": 40.9,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "향료·계량기·원료 소도구 2"
        },
        {
          "id": "phases-cabinet-03",
          "type": "cabinet",
          "x": 19.2,
          "y": 40.9,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "향료·계량기·원료 소도구 3"
        },
        {
          "id": "phases-cabinet-04",
          "type": "cabinet",
          "x": 21.2,
          "y": 40.9,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "향료·계량기·원료 소도구 4"
        },
        {
          "id": "phases-cabinet-05",
          "type": "cabinet",
          "x": 23.2,
          "y": 40.9,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "향료·계량기·원료 소도구 5"
        },
        {
          "id": "phases-cabinet-06",
          "type": "cabinet",
          "x": 25.2,
          "y": 40.9,
          "width": 1.2,
          "depth": 0.6,
          "height": 1.8,
          "count": 1,
          "label": "향료·계량기·원료 소도구 6"
        },
        {
          "id": "phases-wash_station-01",
          "type": "wash_station",
          "x": 28.5,
          "y": 41.2,
          "width": 1.8,
          "depth": 1.2,
          "height": 1.5,
          "count": 1,
          "label": "계량 도구 세척 1"
        },
        {
          "id": "phases-wash_station-02",
          "type": "wash_station",
          "x": 41.5,
          "y": 41.2,
          "width": 1.8,
          "depth": 1.2,
          "height": 1.5,
          "count": 1,
          "label": "계량 도구 세척 2"
        },
        {
          "id": "phases-worktable-01",
          "type": "worktable",
          "x": 17.275,
          "y": 46.775,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "배치 계량 도구 인계 1"
        },
        {
          "id": "phases-worktable-02",
          "type": "worktable",
          "x": 23.425,
          "y": 46.775,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "배치 계량 도구 인계 2"
        },
        {
          "id": "phases-worktable-03",
          "type": "worktable",
          "x": 21.375,
          "y": 46.775,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "배치 계량 도구 인계 3"
        }
      ]
    },
    {
      "id": "emulsion",
      "name": "진공 유화·냉각·배치 대기동",
      "role": "process",
      "building_id": "emulsion",
      "x": 14,
      "y": 58.2,
      "width": 23.5,
      "depth": 18.0,
      "stage_ids": [
        "S04",
        "S05"
      ],
      "fixtures": [
        {
          "id": "emulsion-pipe_rack-01",
          "type": "pipe_rack",
          "x": 16.6,
          "y": 59.3,
          "width": 4,
          "depth": 1,
          "height": 4,
          "count": 1,
          "label": "정제수·제품 이송 헤더 1"
        },
        {
          "id": "emulsion-pipe_rack-02",
          "type": "pipe_rack",
          "x": 21.4,
          "y": 59.3,
          "width": 4,
          "depth": 1,
          "height": 4,
          "count": 1,
          "label": "정제수·제품 이송 헤더 2"
        },
        {
          "id": "emulsion-worktable-01",
          "type": "worktable",
          "x": 25.0,
          "y": 59.15,
          "width": 1.6,
          "depth": 0.7,
          "height": 1,
          "count": 1,
          "label": "배치 시료 채취 1"
        },
        {
          "id": "emulsion-worktable-02",
          "type": "worktable",
          "x": 27.4,
          "y": 59.15,
          "width": 1.6,
          "depth": 0.7,
          "height": 1,
          "count": 1,
          "label": "배치 시료 채취 2"
        },
        {
          "id": "emulsion-worktable-03",
          "type": "worktable",
          "x": 29.8,
          "y": 59.15,
          "width": 1.6,
          "depth": 0.7,
          "height": 1,
          "count": 1,
          "label": "배치 시료 채취 3"
        }
      ]
    },
    {
      "id": "fill",
      "name": "3라인 충전·표시검사·케이스 포장동",
      "role": "process",
      "building_id": "fill",
      "x": 61.1,
      "y": 40,
      "width": 23.2,
      "depth": 19.4,
      "stage_ids": [
        "S06",
        "S07",
        "S08"
      ],
      "fixtures": [
        {
          "id": "fill-bin_rack-01",
          "type": "bin_rack",
          "x": 62.6,
          "y": 41.1,
          "width": 1.8,
          "depth": 0.8,
          "height": 2,
          "count": 1,
          "label": "용기·펌프·캡 라인 준비 1"
        },
        {
          "id": "fill-bin_rack-02",
          "type": "bin_rack",
          "x": 65.05,
          "y": 41.1,
          "width": 1.8,
          "depth": 0.8,
          "height": 2,
          "count": 1,
          "label": "용기·펌프·캡 라인 준비 2"
        },
        {
          "id": "fill-bin_rack-03",
          "type": "bin_rack",
          "x": 67.5,
          "y": 41.1,
          "width": 1.8,
          "depth": 0.8,
          "height": 2,
          "count": 1,
          "label": "용기·펌프·캡 라인 준비 3"
        },
        {
          "id": "fill-bin_rack-04",
          "type": "bin_rack",
          "x": 69.95,
          "y": 41.1,
          "width": 1.8,
          "depth": 0.8,
          "height": 2,
          "count": 1,
          "label": "용기·펌프·캡 라인 준비 4"
        },
        {
          "id": "fill-bin_rack-05",
          "type": "bin_rack",
          "x": 72.4,
          "y": 41.1,
          "width": 1.8,
          "depth": 0.8,
          "height": 2,
          "count": 1,
          "label": "용기·펌프·캡 라인 준비 5"
        },
        {
          "id": "fill-bin_rack-06",
          "type": "bin_rack",
          "x": 74.85,
          "y": 41.1,
          "width": 1.8,
          "depth": 0.8,
          "height": 2,
          "count": 1,
          "label": "용기·펌프·캡 라인 준비 6"
        },
        {
          "id": "fill-worktable-01",
          "type": "worktable",
          "x": 79.3,
          "y": 40.95,
          "width": 1.6,
          "depth": 0.7,
          "height": 1,
          "count": 1,
          "label": "표시·초품 검사 1"
        },
        {
          "id": "fill-worktable-02",
          "type": "worktable",
          "x": 81.7,
          "y": 40.95,
          "width": 1.6,
          "depth": 0.7,
          "height": 1,
          "count": 1,
          "label": "표시·초품 검사 2"
        },
        {
          "id": "fill-worktable-03",
          "type": "worktable",
          "x": 62.5,
          "y": 46.95,
          "width": 1.6,
          "depth": 0.7,
          "height": 1,
          "count": 1,
          "label": "표시·초품 검사 3"
        },
        {
          "id": "fill-product_bins-01",
          "type": "product_bins",
          "x": 68.475,
          "y": 46.775,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "충전 셀 용기·펌프 공급 1"
        },
        {
          "id": "fill-product_bins-02",
          "type": "product_bins",
          "x": 68.475,
          "y": 52.625,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "충전 셀 용기·펌프 공급 2"
        },
        {
          "id": "fill-product_bins-03",
          "type": "product_bins",
          "x": 64.375,
          "y": 46.775,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "충전 셀 용기·펌프 공급 3"
        },
        {
          "id": "fill-product_bins-04",
          "type": "product_bins",
          "x": 64.375,
          "y": 52.625,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "충전 셀 용기·펌프 공급 4"
        },
        {
          "id": "robot-0-0-supply-jig",
          "type": "workbench",
          "x": 66.6,
          "y": 45.85,
          "width": 1.8,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "angle": 0,
          "label": "용기 핸들링 SCARA S06:0 전용 방향·품번 정렬 치구"
        },
        {
          "id": "robot-0-1-supply-jig",
          "type": "workbench",
          "x": 66.6,
          "y": 52.05,
          "width": 1.8,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "angle": 0,
          "label": "용기 핸들링 SCARA S06:1 전용 방향·품번 정렬 치구"
        },
        {
          "id": "robot-0-2-supply-jig",
          "type": "workbench",
          "x": 66.6,
          "y": 58.25,
          "width": 1.8,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "angle": 0,
          "label": "용기 핸들링 SCARA S06:2 전용 방향·품번 정렬 치구"
        }
      ]
    },
    {
      "id": "pack-store",
      "name": "원료·용기·완제품 보관",
      "role": "warehouse",
      "building_id": "pack-store",
      "x": 14,
      "y": 14,
      "width": 34,
      "depth": 20,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "pack-store-pallet_rack-01",
          "type": "pallet_rack",
          "x": 15.8,
          "y": 15.2,
          "width": 2.4,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "용기·펌프·스킨케어 케이스 1"
        },
        {
          "id": "pack-store-pallet_rack-02",
          "type": "pallet_rack",
          "x": 18.85,
          "y": 15.2,
          "width": 2.4,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "용기·펌프·스킨케어 케이스 2"
        },
        {
          "id": "pack-store-pallet_rack-03",
          "type": "pallet_rack",
          "x": 21.9,
          "y": 15.2,
          "width": 2.4,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "용기·펌프·스킨케어 케이스 3"
        },
        {
          "id": "pack-store-pallet_rack-04",
          "type": "pallet_rack",
          "x": 24.95,
          "y": 15.2,
          "width": 2.4,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "용기·펌프·스킨케어 케이스 4"
        },
        {
          "id": "pack-store-pallet_rack-05",
          "type": "pallet_rack",
          "x": 28.0,
          "y": 15.2,
          "width": 2.4,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "용기·펌프·스킨케어 케이스 5"
        },
        {
          "id": "pack-store-pallet_rack-06",
          "type": "pallet_rack",
          "x": 31.2,
          "y": 21.0,
          "width": 2.4,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "용기·펌프·스킨케어 케이스 6"
        },
        {
          "id": "pack-store-pallet_rack-07",
          "type": "pallet_rack",
          "x": 34.1,
          "y": 15.2,
          "width": 2.4,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "용기·펌프·스킨케어 케이스 7"
        },
        {
          "id": "pack-store-pallet_rack-08",
          "type": "pallet_rack",
          "x": 37.15,
          "y": 15.2,
          "width": 2.4,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "용기·펌프·스킨케어 케이스 8"
        },
        {
          "id": "pack-store-pallet_rack-09",
          "type": "pallet_rack",
          "x": 40.2,
          "y": 15.2,
          "width": 2.4,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "용기·펌프·스킨케어 케이스 9"
        },
        {
          "id": "pack-store-pallet_rack-10",
          "type": "pallet_rack",
          "x": 43.25,
          "y": 15.2,
          "width": 2.4,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "용기·펌프·스킨케어 케이스 10"
        },
        {
          "id": "pack-store-pallet_rack-11",
          "type": "pallet_rack",
          "x": 15.8,
          "y": 18.9,
          "width": 2.4,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "용기·펌프·스킨케어 케이스 11"
        },
        {
          "id": "pack-store-pallet_rack-12",
          "type": "pallet_rack",
          "x": 18.85,
          "y": 18.9,
          "width": 2.4,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "용기·펌프·스킨케어 케이스 12"
        },
        {
          "id": "pack-store-pallet_rack-13",
          "type": "pallet_rack",
          "x": 21.9,
          "y": 18.9,
          "width": 2.4,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "용기·펌프·스킨케어 케이스 13"
        },
        {
          "id": "pack-store-pallet_rack-14",
          "type": "pallet_rack",
          "x": 24.95,
          "y": 18.9,
          "width": 2.4,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "용기·펌프·스킨케어 케이스 14"
        },
        {
          "id": "pack-store-pallet_rack-15",
          "type": "pallet_rack",
          "x": 28.0,
          "y": 18.9,
          "width": 2.4,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "용기·펌프·스킨케어 케이스 15"
        },
        {
          "id": "pack-store-pallet_rack-16",
          "type": "pallet_rack",
          "x": 28.2,
          "y": 21.0,
          "width": 2.4,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "용기·펌프·스킨케어 케이스 16"
        },
        {
          "id": "pack-store-pallet_rack-17",
          "type": "pallet_rack",
          "x": 34.1,
          "y": 18.9,
          "width": 2.4,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "용기·펌프·스킨케어 케이스 17"
        },
        {
          "id": "pack-store-pallet_rack-18",
          "type": "pallet_rack",
          "x": 37.15,
          "y": 18.9,
          "width": 2.4,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "용기·펌프·스킨케어 케이스 18"
        },
        {
          "id": "pack-store-pallet_rack-19",
          "type": "pallet_rack",
          "x": 40.2,
          "y": 18.9,
          "width": 2.4,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "용기·펌프·스킨케어 케이스 19"
        },
        {
          "id": "pack-store-pallet_rack-20",
          "type": "pallet_rack",
          "x": 43.25,
          "y": 18.9,
          "width": 2.4,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "용기·펌프·스킨케어 케이스 20"
        },
        {
          "id": "pack-store-pallet_rack-21",
          "type": "pallet_rack",
          "x": 15.8,
          "y": 22.6,
          "width": 2.4,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "용기·펌프·스킨케어 케이스 21"
        },
        {
          "id": "pack-store-pallet_rack-22",
          "type": "pallet_rack",
          "x": 18.85,
          "y": 22.6,
          "width": 2.4,
          "depth": 1,
          "height": 4.5,
          "count": 1,
          "label": "용기·펌프·스킨케어 케이스 22"
        },
        {
          "id": "pack-store-cabinet-01",
          "type": "cabinet",
          "x": 15.2,
          "y": 16.8,
          "width": 1.2,
          "depth": 0.6,
          "height": 2,
          "count": 1,
          "label": "승인 향료·소량 원료 1"
        },
        {
          "id": "pack-store-cabinet-02",
          "type": "cabinet",
          "x": 17.2,
          "y": 16.8,
          "width": 1.2,
          "depth": 0.6,
          "height": 2,
          "count": 1,
          "label": "승인 향료·소량 원료 2"
        },
        {
          "id": "pack-store-cabinet-03",
          "type": "cabinet",
          "x": 19.2,
          "y": 16.8,
          "width": 1.2,
          "depth": 0.6,
          "height": 2,
          "count": 1,
          "label": "승인 향료·소량 원료 3"
        },
        {
          "id": "pack-store-cabinet-04",
          "type": "cabinet",
          "x": 21.2,
          "y": 16.8,
          "width": 1.2,
          "depth": 0.6,
          "height": 2,
          "count": 1,
          "label": "승인 향료·소량 원료 4"
        },
        {
          "id": "pack-store-cabinet-05",
          "type": "cabinet",
          "x": 23.2,
          "y": 16.8,
          "width": 1.2,
          "depth": 0.6,
          "height": 2,
          "count": 1,
          "label": "승인 향료·소량 원료 5"
        }
      ]
    },
    {
      "id": "o01-office",
      "name": "생산·품질 사무실",
      "role": "office",
      "building_id": "support",
      "x": 54,
      "y": 14,
      "width": 14.4,
      "depth": 10.0,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "o01-office-office_desks-01",
          "type": "office_desks",
          "x": 55.85,
          "y": 15.4,
          "width": 2.5,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "label": "생산계획·품질 대응 1"
        },
        {
          "id": "o01-office-office_desks-02",
          "type": "office_desks",
          "x": 59.15,
          "y": 15.4,
          "width": 2.5,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "label": "생산계획·품질 대응 2"
        },
        {
          "id": "o01-office-office_desks-03",
          "type": "office_desks",
          "x": 62.45,
          "y": 15.4,
          "width": 2.5,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "label": "생산계획·품질 대응 3"
        }
      ]
    },
    {
      "id": "o01-staff",
      "name": "교대 탈의·휴게",
      "role": "staff",
      "building_id": "support",
      "x": 68.4,
      "y": 14,
      "width": 10.799999999999999,
      "depth": 10.0,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "o01-staff-locker_bank-01",
          "type": "locker_bank",
          "x": 69.9,
          "y": 14.85,
          "width": 1.8,
          "depth": 0.5,
          "height": 1.8,
          "count": 1,
          "label": "교대 개인 보관함 1"
        },
        {
          "id": "o01-staff-locker_bank-02",
          "type": "locker_bank",
          "x": 72.5,
          "y": 14.85,
          "width": 1.8,
          "depth": 0.5,
          "height": 1.8,
          "count": 1,
          "label": "교대 개인 보관함 2"
        },
        {
          "id": "o01-staff-locker_bank-03",
          "type": "locker_bank",
          "x": 75.1,
          "y": 14.85,
          "width": 1.8,
          "depth": 0.5,
          "height": 1.8,
          "count": 1,
          "label": "교대 개인 보관함 3"
        },
        {
          "id": "o01-staff-locker_bank-04",
          "type": "locker_bank",
          "x": 77.7,
          "y": 14.85,
          "width": 1.8,
          "depth": 0.5,
          "height": 1.8,
          "count": 1,
          "label": "교대 개인 보관함 4"
        },
        {
          "id": "o01-staff-worktable-01",
          "type": "worktable",
          "x": 69.8,
          "y": 17.1,
          "width": 1.6,
          "depth": 0.8,
          "height": 1,
          "count": 1,
          "label": "휴게 테이블 1"
        }
      ]
    },
    {
      "id": "o01-lab",
      "name": "제형·용기 품질실",
      "role": "laboratory",
      "building_id": "support",
      "x": 79.2,
      "y": 14,
      "width": 10.800000000000002,
      "depth": 10.0,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "o01-lab-lab_bench-01",
          "type": "lab_bench",
          "x": 80.7,
          "y": 15.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1.2,
          "count": 1,
          "label": "제형·용기 품질실 1"
        },
        {
          "id": "o01-lab-lab_bench-02",
          "type": "lab_bench",
          "x": 83.3,
          "y": 15.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1.2,
          "count": 1,
          "label": "제형·용기 품질실 2"
        },
        {
          "id": "o01-lab-lab_bench-03",
          "type": "lab_bench",
          "x": 85.9,
          "y": 15.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1.2,
          "count": 1,
          "label": "제형·용기 품질실 3"
        }
      ]
    },
    {
      "id": "o01-maint",
      "name": "충전 펌프·믹서 정비",
      "role": "maintenance",
      "building_id": "support",
      "x": 54,
      "y": 24.0,
      "width": 18.0,
      "depth": 10.0,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "o01-maint-workbench-01",
          "type": "workbench",
          "x": 55.6,
          "y": 25.05,
          "width": 2,
          "depth": 0.9,
          "height": 1,
          "count": 1,
          "label": "충전 펌프·믹서 정비 1"
        },
        {
          "id": "o01-maint-workbench-02",
          "type": "workbench",
          "x": 58.4,
          "y": 25.05,
          "width": 2,
          "depth": 0.9,
          "height": 1,
          "count": 1,
          "label": "충전 펌프·믹서 정비 2"
        },
        {
          "id": "o01-maint-workbench-03",
          "type": "workbench",
          "x": 61.2,
          "y": 25.05,
          "width": 2,
          "depth": 0.9,
          "height": 1,
          "count": 1,
          "label": "충전 펌프·믹서 정비 3"
        },
        {
          "id": "o01-maint-bin_rack-01",
          "type": "bin_rack",
          "x": 65.3,
          "y": 25.1,
          "width": 1.8,
          "depth": 0.8,
          "height": 2.2,
          "count": 1,
          "label": "정비 예비품 1"
        },
        {
          "id": "o01-maint-bin_rack-02",
          "type": "bin_rack",
          "x": 67.75,
          "y": 25.1,
          "width": 1.8,
          "depth": 0.8,
          "height": 2.2,
          "count": 1,
          "label": "정비 예비품 2"
        },
        {
          "id": "o01-maint-bin_rack-03",
          "type": "bin_rack",
          "x": 70.2,
          "y": 25.1,
          "width": 1.8,
          "depth": 0.8,
          "height": 2.2,
          "count": 1,
          "label": "정비 예비품 3"
        }
      ]
    },
    {
      "id": "o01-utility",
      "name": "정제수·공압·냉각",
      "role": "utility",
      "building_id": "support",
      "x": 72.0,
      "y": 24.0,
      "width": 18.0,
      "depth": 10.0,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "o01-utility-compressor-01",
          "type": "compressor",
          "x": 73.85,
          "y": 25.35,
          "width": 2.5,
          "depth": 1.5,
          "height": 2,
          "count": 1,
          "label": "공압 공급 1"
        },
        {
          "id": "o01-utility-chiller-01",
          "type": "chiller",
          "x": 77.9,
          "y": 25.5,
          "width": 3,
          "depth": 1.8,
          "height": 2.3,
          "count": 1,
          "label": "공정 냉각 1"
        },
        {
          "id": "o01-utility-electrical_bank-01",
          "type": "electrical_bank",
          "x": 82.55,
          "y": 24.95,
          "width": 1.5,
          "depth": 0.7,
          "height": 2,
          "count": 1,
          "label": "공정 배전 1"
        },
        {
          "id": "o01-utility-electrical_bank-02",
          "type": "electrical_bank",
          "x": 84.85,
          "y": 24.95,
          "width": 1.5,
          "depth": 0.7,
          "height": 2,
          "count": 1,
          "label": "공정 배전 2"
        },
        {
          "id": "o01-utility-electrical_bank-03",
          "type": "electrical_bank",
          "x": 87.15,
          "y": 24.95,
          "width": 1.5,
          "depth": 0.7,
          "height": 2,
          "count": 1,
          "label": "공정 배전 3"
        }
      ]
    }
  ],
  "equipment": [
    {
      "stage_id": "S01",
      "index": 0,
      "x": 17.5,
      "y": 43.25,
      "angle": 0
    },
    {
      "stage_id": "S01",
      "index": 1,
      "x": 23.0,
      "y": 43.25,
      "angle": 0
    },
    {
      "stage_id": "S01",
      "index": 2,
      "x": 17.5,
      "y": 48.95,
      "angle": 0
    },
    {
      "stage_id": "S01",
      "index": 3,
      "x": 23.0,
      "y": 48.95,
      "angle": 0
    },
    {
      "stage_id": "S02",
      "index": 0,
      "x": 32.0,
      "y": 43.5,
      "angle": 0
    },
    {
      "stage_id": "S02",
      "index": 1,
      "x": 37.5,
      "y": 43.5,
      "angle": 0
    },
    {
      "stage_id": "S02",
      "index": 2,
      "x": 32.0,
      "y": 49.7,
      "angle": 0
    },
    {
      "stage_id": "S03",
      "index": 0,
      "x": 46.4,
      "y": 43.4,
      "angle": 0
    },
    {
      "stage_id": "S03",
      "index": 1,
      "x": 51.7,
      "y": 43.4,
      "angle": 0
    },
    {
      "stage_id": "S03",
      "index": 2,
      "x": 46.4,
      "y": 49.4,
      "angle": 0
    },
    {
      "stage_id": "S04",
      "index": 0,
      "x": 18.5,
      "y": 62.7,
      "angle": 0
    },
    {
      "stage_id": "S04",
      "index": 1,
      "x": 25.5,
      "y": 62.7,
      "angle": 0
    },
    {
      "stage_id": "S04",
      "index": 2,
      "x": 32.5,
      "y": 62.7,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 0,
      "x": 17.5,
      "y": 72.7,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 1,
      "x": 23.0,
      "y": 72.7,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 2,
      "x": 28.5,
      "y": 72.7,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 3,
      "x": 34.0,
      "y": 72.7,
      "angle": 0
    },
    {
      "stage_id": "S06",
      "index": 0,
      "x": 66.6,
      "y": 43.5,
      "angle": 0
    },
    {
      "stage_id": "S06",
      "index": 1,
      "x": 66.6,
      "y": 49.7,
      "angle": 0
    },
    {
      "stage_id": "S06",
      "index": 2,
      "x": 66.6,
      "y": 55.9,
      "angle": 0
    },
    {
      "stage_id": "S07",
      "index": 0,
      "x": 73.2,
      "y": 43.5,
      "angle": 0
    },
    {
      "stage_id": "S07",
      "index": 1,
      "x": 73.2,
      "y": 49.7,
      "angle": 0
    },
    {
      "stage_id": "S07",
      "index": 2,
      "x": 73.2,
      "y": 55.9,
      "angle": 0
    },
    {
      "stage_id": "S08",
      "index": 0,
      "x": 79.3,
      "y": 43.5,
      "angle": 0
    },
    {
      "stage_id": "S08",
      "index": 1,
      "x": 79.3,
      "y": 49.7,
      "angle": 0
    },
    {
      "stage_id": "S08",
      "index": 2,
      "x": 79.3,
      "y": 55.9,
      "angle": 0
    }
  ],
  "robots": [
    {
      "definition_index": 0,
      "instance_index": 0,
      "stage_id": "S06",
      "x": 67.19999999999999,
      "y": 45.550000000000004,
      "angle": 2.9084128529429747,
      "task_station": "용기 핸들링 SCARA S06:0 전용 방향·품번 정렬 치구. 작업대 상면1.045m에 소형 .24m 앵커를 고정하고 약.411m 떨어진 정렬 치구 전면을 조작한다. 기존 reach0.7m와 짧은 Z축 범위를 유지한다. 정렬 완료 부품의 후속 기계 공급은 작업자/지그 인계이며 로봇이 먼 기계 중심까지 직접 도달한다고 표현하지 않는다.",
      "mounting_height_m": 0.765,
      "task_point": [
        66.8,
        45.645,
        1.27
      ],
      "host_equipment": {
        "stage_id": "S06",
        "index": 0
      },
      "task_fixture_id": "robot-0-0-supply-jig",
      "controller_offset": [
        1.252899043189106,
        -0.2985699040020628,
        0
      ],
      "target_basis": "fixture Work fixture 전면 파지면 z1.27; bench surface z1.045"
    },
    {
      "definition_index": 0,
      "instance_index": 1,
      "stage_id": "S06",
      "x": 67.19999999999999,
      "y": 51.75,
      "angle": 2.9084128529429747,
      "task_station": "용기 핸들링 SCARA S06:1 전용 방향·품번 정렬 치구. 작업대 상면1.045m에 소형 .24m 앵커를 고정하고 약.411m 떨어진 정렬 치구 전면을 조작한다. 기존 reach0.7m와 짧은 Z축 범위를 유지한다. 정렬 완료 부품의 후속 기계 공급은 작업자/지그 인계이며 로봇이 먼 기계 중심까지 직접 도달한다고 표현하지 않는다.",
      "mounting_height_m": 0.765,
      "task_point": [
        66.8,
        51.845,
        1.27
      ],
      "host_equipment": {
        "stage_id": "S06",
        "index": 1
      },
      "task_fixture_id": "robot-0-1-supply-jig",
      "controller_offset": [
        1.252899043189106,
        -0.2985699040020628,
        0
      ],
      "target_basis": "fixture Work fixture 전면 파지면 z1.27; bench surface z1.045"
    },
    {
      "definition_index": 0,
      "instance_index": 2,
      "stage_id": "S06",
      "x": 67.19999999999999,
      "y": 57.95,
      "angle": 2.9084128529429747,
      "task_station": "용기 핸들링 SCARA S06:2 전용 방향·품번 정렬 치구. 작업대 상면1.045m에 소형 .24m 앵커를 고정하고 약.411m 떨어진 정렬 치구 전면을 조작한다. 기존 reach0.7m와 짧은 Z축 범위를 유지한다. 정렬 완료 부품의 후속 기계 공급은 작업자/지그 인계이며 로봇이 먼 기계 중심까지 직접 도달한다고 표현하지 않는다.",
      "mounting_height_m": 0.765,
      "task_point": [
        66.8,
        58.045,
        1.27
      ],
      "host_equipment": {
        "stage_id": "S06",
        "index": 2
      },
      "task_fixture_id": "robot-0-2-supply-jig",
      "controller_offset": [
        1.252899043189106,
        -0.2985699040020628,
        0
      ],
      "target_basis": "fixture Work fixture 전면 파지면 z1.27; bench surface z1.045"
    },
    {
      "definition_index": 1,
      "instance_index": 0,
      "stage_id": "S08",
      "x": 79.3,
      "y": 46.25,
      "angle": -1.5707963267948966,
      "task_station": "단상자·케이스 포장 1호의 북측 작업면. 포장 형식이 다른 단상자를 케이스에 적재한다."
    },
    {
      "definition_index": 1,
      "instance_index": 1,
      "stage_id": "S08",
      "x": 79.3,
      "y": 52.45,
      "angle": -1.5707963267948966,
      "task_station": "단상자·케이스 포장 2호의 북측 작업면. 포장 형식이 다른 단상자를 케이스에 적재한다."
    },
    {
      "definition_index": 2,
      "instance_index": 0,
      "stage_id": "S08",
      "x": 79.3,
      "y": 58.65,
      "angle": -1.5707963267948966,
      "task_station": "단상자·케이스 포장 3호의 북측 작업면. 밀봉 케이스를 출하 팔레트에 적재한다."
    }
  ],
  "logistics": [
    {
      "id": "S01→S02",
      "kind": "amr",
      "from": "S01:1",
      "to": "S02:0",
      "points": [
        [
          25.32,
          43.5,
          0.1
        ],
        [
          29.68,
          43.5,
          0.1
        ]
      ],
      "width": 1.4,
      "routing_note": "해당 생산 셀의 명시 수송 대표 경로. 다른 병렬 셀의 실제 분기 포트는 별도 형상 검토한다.",
      "handover_method": "external_machine_side_staging",
      "handover_note": "차량 중심선은 설비 footprint 바깥에 정차한다. 장비 측 인계대·적재 자세와 지게차 포크/AMR 도킹 상세는 실제 형상 검수 대상이다."
    },
    {
      "id": "S02→S04",
      "kind": "pipe",
      "from": "S02:2",
      "to": "S04:2",
      "points": [
        [
          32.0,
          49.7,
          3.6
        ],
        [
          32.0,
          62.7,
          3.6
        ],
        [
          32.5,
          62.7,
          3.6
        ]
      ],
      "width": 0.12,
      "routing_note": "해당 생산 셀의 명시 수송 대표 경로. 다른 병렬 셀의 실제 분기 포트는 별도 형상 검토한다."
    },
    {
      "id": "S04→S05",
      "kind": "pipe",
      "from": "S04:0",
      "to": "S05:0",
      "points": [
        [
          18.5,
          62.7,
          3.6
        ],
        [
          18.5,
          72.7,
          3.6
        ],
        [
          17.5,
          72.7,
          3.6
        ]
      ],
      "width": 0.12,
      "routing_note": "해당 생산 셀의 명시 수송 대표 경로. 다른 병렬 셀의 실제 분기 포트는 별도 형상 검토한다."
    },
    {
      "id": "S05→S06",
      "kind": "pipe",
      "from": "S05:3",
      "to": "S06:2",
      "points": [
        [
          34.0,
          72.7,
          3.6
        ],
        [
          66.6,
          72.7,
          3.6
        ],
        [
          66.6,
          55.9,
          3.6
        ],
        [
          66.6,
          55.9,
          1.5
        ]
      ],
      "width": 0.12,
      "routing_note": "해당 생산 셀의 명시 수송 대표 경로. 다른 병렬 셀의 실제 분기 포트는 별도 형상 검토한다. 설비 측 수직 라이저로 실제 높이의 인계 포트까지 연결한다."
    },
    {
      "id": "S06→S07",
      "kind": "conveyor",
      "from": "S06:0",
      "to": "S07:0",
      "points": [
        [
          66.6,
          43.5,
          0.95
        ],
        [
          73.2,
          43.5,
          0.95
        ]
      ],
      "width": 0.6,
      "routing_note": "해당 생산 셀의 명시 수송 대표 경로. 다른 병렬 셀의 실제 분기 포트는 별도 형상 검토한다."
    },
    {
      "id": "S07→S08",
      "kind": "conveyor",
      "from": "S07:0",
      "to": "S08:0",
      "points": [
        [
          73.2,
          43.5,
          0.95
        ],
        [
          79.3,
          43.5,
          0.95
        ]
      ],
      "width": 0.6,
      "routing_note": "해당 생산 셀의 명시 수송 대표 경로. 다른 병렬 셀의 실제 분기 포트는 별도 형상 검토한다."
    },
    {
      "id": "S03→S04",
      "kind": "pipe",
      "from": "S03:2",
      "to": "S04:2",
      "points": [
        [
          46.4,
          49.4,
          3.6
        ],
        [
          46.4,
          62.7,
          3.6
        ],
        [
          32.5,
          62.7,
          3.6
        ]
      ],
      "width": 0.12,
      "routing_note": "해당 생산 셀의 명시 수송 대표 경로. 다른 병렬 셀의 실제 분기 포트는 별도 형상 검토한다."
    },
    {
      "id": "추가 S01->S03",
      "kind": "amr",
      "width": 1.4,
      "from": "S01:1",
      "to": "S03:0",
      "points": [
        [
          25.32,
          43.25,
          0.1
        ],
        [
          25.88,
          43.25,
          0.1
        ],
        [
          25.88,
          45.92,
          0.1
        ],
        [
          46.4,
          45.92,
          0.1
        ],
        [
          46.4,
          45.62,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다.",
      "handover_method": "external_machine_side_staging",
      "handover_note": "차량 중심선은 설비 footprint 바깥에 정차한다. 장비 측 인계대·적재 자세와 지게차 포크/AMR 도킹 상세는 실제 형상 검수 대상이다."
    },
    {
      "id": "원료 도크→입고 인계 1",
      "kind": "amr",
      "width": 1.4,
      "from": "raw-dock",
      "to": "pack-store",
      "points": [
        [
          31.0,
          14,
          0.1
        ],
        [
          31.0,
          18.0,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다."
    },
    {
      "id": "입고 인계→초공정 1",
      "kind": "amr",
      "width": 1.4,
      "from": "pack-store",
      "to": "S01:1",
      "points": [
        [
          31.0,
          18.0,
          0.1
        ],
        [
          31.0,
          17.48,
          0.1
        ],
        [
          45.37,
          17.48,
          0.1
        ],
        [
          45.37,
          34.92,
          0.1
        ],
        [
          26.68,
          34.92,
          0.1
        ],
        [
          26.68,
          43.25,
          0.1
        ],
        [
          25.32,
          43.25,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다.",
      "handover_method": "external_machine_side_staging",
      "handover_note": "차량 중심선은 설비 footprint 바깥에 정차한다. 장비 측 인계대·적재 자세와 지게차 포크/AMR 도킹 상세는 실제 형상 검수 대상이다."
    },
    {
      "id": "최종검사→완제품 출하 2",
      "kind": "amr",
      "width": 1.4,
      "from": "S08:1",
      "to": "shipping-dock",
      "points": [
        [
          83.12,
          49.7,
          0.1
        ],
        [
          84.3,
          49.7,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다.",
      "handover_method": "external_machine_side_staging",
      "handover_note": "차량 중심선은 설비 footprint 바깥에 정차한다. 장비 측 인계대·적재 자세와 지게차 포크/AMR 도킹 상세는 실제 형상 검수 대상이다."
    },
    {
      "id": "정문→교대 탈의·휴게",
      "kind": "pedestrian",
      "width": 1.2,
      "from": "gate",
      "to": "o01-staff",
      "points": [
        [
          51.0,
          7,
          0.1
        ],
        [
          51.0,
          19.0,
          0.1
        ],
        [
          73.9,
          19.0,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다."
    },
    {
      "id": "지원동 보행 o01-staff→o01-office",
      "kind": "pedestrian",
      "width": 1.2,
      "from": "o01-staff",
      "to": "o01-office",
      "points": [
        [
          73.9,
          19.0,
          0.1
        ],
        [
          61.0,
          19.0,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다."
    },
    {
      "id": "지원동 보행 o01-staff→o01-lab",
      "kind": "pedestrian",
      "width": 1.2,
      "from": "o01-staff",
      "to": "o01-lab",
      "points": [
        [
          73.9,
          19.0,
          0.1
        ],
        [
          84.7,
          19.0,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다."
    },
    {
      "id": "지원동 보행 o01-staff→o01-maint",
      "kind": "pedestrian",
      "width": 1.2,
      "from": "o01-staff",
      "to": "o01-maint",
      "points": [
        [
          73.9,
          19.0,
          0.1
        ],
        [
          63.0,
          19.0,
          0.1
        ],
        [
          63.0,
          29.0,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다."
    },
    {
      "id": "지원동 보행 o01-staff→o01-utility",
      "kind": "pedestrian",
      "width": 1.2,
      "from": "o01-staff",
      "to": "o01-utility",
      "points": [
        [
          73.9,
          19.0,
          0.1
        ],
        [
          81.0,
          19.0,
          0.1
        ],
        [
          81.0,
          29.0,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다."
    }
  ],
  "yard": {
    "roads": [
      {
        "points": [
          [
            7,
            7
          ],
          [
            95,
            7
          ],
          [
            95,
            84
          ],
          [
            7,
            84
          ],
          [
            7,
            7
          ]
        ],
        "width": 6
      }
    ],
    "docks": [
      {
        "x": 31.0,
        "y": 14,
        "angle": 0,
        "building_id": "pack-store",
        "role": "원료·구매부품 입고 도크 — 원료·용기·구매품 보관 도크"
      },
      {
        "building_id": "fill",
        "role": "완제품 전용 출하 도크",
        "x": 84.3,
        "y": 49.7,
        "angle": 1.5707963267948966
      }
    ],
    "parking": [
      {
        "x": 15,
        "y": 82.2,
        "angle": 0,
        "count": 20
      }
    ],
    "gate": {
      "x": 51.0,
      "y": 7
    },
    "fence": true
  },
  "landmarks": [
    "수상·유상 두 준비열과 중앙 유화 탱크",
    "유화동의 실제 정제수·제품 헤더 랙",
    "민트색 낮은 3라인 충전동",
    "용기·펌프·완제품 랙이 가득한 남쪽 물류 전면"
  ],
  "openings": [
    {
      "id": "opening-1",
      "building_id": "phases",
      "x": 55.1,
      "y": 40.8,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S02",
        "S04"
      ]
    },
    {
      "id": "opening-2",
      "building_id": "phases",
      "x": 55.1,
      "y": 40.8,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S02",
        "S04"
      ],
      "zone_id": "phases"
    },
    {
      "id": "opening-3",
      "building_id": "emulsion",
      "x": 14,
      "y": 59.0,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S02",
        "S04"
      ]
    },
    {
      "id": "opening-4",
      "building_id": "emulsion",
      "x": 14,
      "y": 59.0,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S02",
        "S04"
      ],
      "zone_id": "emulsion"
    },
    {
      "id": "opening-5",
      "building_id": "emulsion",
      "x": 37.5,
      "y": 59.0,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S05",
        "S06"
      ]
    },
    {
      "id": "opening-6",
      "building_id": "emulsion",
      "x": 37.5,
      "y": 59.0,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S05",
        "S06"
      ],
      "zone_id": "emulsion"
    },
    {
      "id": "opening-7",
      "building_id": "phases",
      "x": 39.5,
      "y": 40,
      "width": 2.0,
      "height": 3.0,
      "axis": "x",
      "connects": [
        "S05",
        "S06"
      ]
    },
    {
      "id": "opening-8",
      "building_id": "phases",
      "x": 39.5,
      "y": 53.2,
      "width": 2.0,
      "height": 3.0,
      "axis": "x",
      "connects": [
        "S05",
        "S06"
      ]
    },
    {
      "id": "opening-9",
      "building_id": "phases",
      "x": 39.5,
      "y": 40,
      "width": 2.0,
      "height": 3.0,
      "axis": "x",
      "connects": [
        "S05",
        "S06"
      ],
      "zone_id": "phases"
    },
    {
      "id": "opening-10",
      "building_id": "phases",
      "x": 39.5,
      "y": 53.2,
      "width": 2.0,
      "height": 3.0,
      "axis": "x",
      "connects": [
        "S05",
        "S06"
      ],
      "zone_id": "phases"
    },
    {
      "id": "opening-11",
      "building_id": "fill",
      "x": 61.1,
      "y": 40.8,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S05",
        "S06"
      ]
    },
    {
      "id": "opening-12",
      "building_id": "fill",
      "x": 61.1,
      "y": 40.8,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S05",
        "S06"
      ],
      "zone_id": "fill"
    },
    {
      "id": "routing-r1-013",
      "building_id": "phases",
      "x": 32.0,
      "y": 53.2,
      "width": 0.47,
      "height": 0.32,
      "sill_height": 3.44,
      "axis": "x",
      "connects": [
        "S02:2",
        "S04:2"
      ],
      "kind": "pipe_sleeve"
    },
    {
      "id": "routing-r1-014",
      "building_id": "emulsion",
      "x": 32.0,
      "y": 58.2,
      "width": 0.47,
      "height": 0.32,
      "sill_height": 3.44,
      "axis": "x",
      "connects": [
        "S02:2",
        "S04:2"
      ],
      "kind": "pipe_sleeve"
    },
    {
      "id": "routing-r1-015",
      "building_id": "emulsion",
      "x": 37.5,
      "y": 72.7,
      "width": 0.47,
      "height": 0.32,
      "sill_height": 3.44,
      "axis": "y",
      "connects": [
        "S05:3",
        "S06:2"
      ],
      "kind": "pipe_sleeve"
    },
    {
      "id": "routing-r1-016",
      "building_id": "fill",
      "x": 66.6,
      "y": 59.4,
      "width": 0.47,
      "height": 0.32,
      "sill_height": 3.44,
      "axis": "x",
      "connects": [
        "S05:3",
        "S06:2"
      ],
      "kind": "pipe_sleeve"
    },
    {
      "id": "routing-r1-017",
      "building_id": "phases",
      "x": 46.4,
      "y": 53.2,
      "width": 0.47,
      "height": 0.32,
      "sill_height": 3.44,
      "axis": "x",
      "connects": [
        "S03:2",
        "S04:2"
      ],
      "kind": "pipe_sleeve"
    },
    {
      "id": "routing-r1-018",
      "building_id": "emulsion",
      "x": 37.5,
      "y": 62.7,
      "width": 0.47,
      "height": 0.32,
      "sill_height": 3.44,
      "axis": "y",
      "connects": [
        "S03:2",
        "S04:2"
      ],
      "kind": "pipe_sleeve"
    },
    {
      "id": "routing-r1-019",
      "building_id": "pack-store",
      "x": 31.0,
      "y": 14,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "raw-dock",
        "pack-store"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-020",
      "building_id": "pack-store",
      "x": 45.37,
      "y": 34,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "pack-store",
        "S01:1"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-021",
      "building_id": "phases",
      "x": 26.68,
      "y": 40,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "pack-store",
        "S01:1"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-022",
      "building_id": "phases",
      "x": 26.68,
      "y": 40,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "pack-store",
        "S01:1"
      ],
      "kind": "material_door",
      "zone_id": "phases"
    },
    {
      "id": "routing-r1-023",
      "building_id": "fill",
      "x": 84.3,
      "y": 49.7,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S08:1",
        "shipping-dock"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-024",
      "building_id": "fill",
      "x": 84.3,
      "y": 49.7,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S08:1",
        "shipping-dock"
      ],
      "kind": "material_door",
      "zone_id": "fill"
    },
    {
      "id": "routing-r1-025",
      "building_id": "support",
      "x": 54,
      "y": 19.0,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "gate",
        "o01-staff"
      ],
      "kind": "pedestrian_door"
    },
    {
      "id": "routing-r1-026",
      "building_id": "support",
      "x": 68.4,
      "y": 19.0,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "gate",
        "o01-staff"
      ],
      "kind": "pedestrian_door",
      "zone_id": "o01-office"
    },
    {
      "id": "routing-r1-027",
      "building_id": "support",
      "x": 54,
      "y": 19.0,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "gate",
        "o01-staff"
      ],
      "kind": "pedestrian_door",
      "zone_id": "o01-office"
    },
    {
      "id": "routing-r1-028",
      "building_id": "support",
      "x": 68.4,
      "y": 19.0,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "gate",
        "o01-staff"
      ],
      "kind": "pedestrian_door",
      "zone_id": "o01-staff"
    },
    {
      "id": "routing-r1-029",
      "building_id": "support",
      "x": 79.2,
      "y": 19.0,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "o01-staff",
        "o01-lab"
      ],
      "kind": "pedestrian_door",
      "zone_id": "o01-staff"
    },
    {
      "id": "routing-r1-030",
      "building_id": "support",
      "x": 79.2,
      "y": 19.0,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "o01-staff",
        "o01-lab"
      ],
      "kind": "pedestrian_door",
      "zone_id": "o01-lab"
    },
    {
      "id": "routing-r1-031",
      "building_id": "support",
      "x": 63.0,
      "y": 24.0,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "o01-staff",
        "o01-maint"
      ],
      "kind": "pedestrian_door",
      "zone_id": "o01-office"
    },
    {
      "id": "routing-r1-032",
      "building_id": "support",
      "x": 63.0,
      "y": 24.0,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "o01-staff",
        "o01-maint"
      ],
      "kind": "pedestrian_door",
      "zone_id": "o01-maint"
    },
    {
      "id": "routing-r1-033",
      "building_id": "support",
      "x": 81.0,
      "y": 24.0,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "o01-staff",
        "o01-utility"
      ],
      "kind": "pedestrian_door",
      "zone_id": "o01-lab"
    },
    {
      "id": "routing-r1-034",
      "building_id": "support",
      "x": 81.0,
      "y": 24.0,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "o01-staff",
        "o01-utility"
      ],
      "kind": "pedestrian_door",
      "zone_id": "o01-utility"
    }
  ],
  "density": {
    "intent": "설비 바닥 299.52㎡ / 제조 구획 1415.60㎡ = 21.16%. 개별 생산 셀의 서비스 간격·공정 인계와 실제 원부자재·정비·검사 시설을 먼저 구성했다. 빈 바닥을 채우기 위한 임의 장식 상자를 사용하지 않는다.",
    "production_area_m2": 1415.6,
    "storage_area_m2": 680,
    "support_area_m2": 720.0,
    "circulation_area_m2": 0
  },
  "authoring_note": "개별 배치안. 형상·동작·피난·법정 안전설계 검수 및 시각 검수는 별도 수행해야 하며 공개 릴리스 승인 아님.",
  "routing_revision": 2
}
