{
  "factory_id": "O04",
  "design_revision": 2,
  "design_story": "한솔의 서쪽에는 캐비닛 프레스와 긴 도장·경화 설비가 있는 고천장 판금동이 서고, 가운데 드럼 성형동에서 준비한 터브가 동쪽 조립동으로 합류한다. 조립동은 완제품 외형을 따라 여덟 본체 셀과 열 전장 셀을 가까이 놓고 북쪽 끝에서 물·전기·회전 시험을 한다. 시험수 공급과 회수 설비는 검사실 뒤편에, 포장재와 팔레트는 출하 전면에 모은다. 판금의 어두운 톱니 지붕, 드럼동의 둥근 배럴 지붕, 조립동의 밝은 넓은 박공이 서로 다른 생산 구조를 드러낸다.",
  "site": {
    "width": 152,
    "depth": 122
  },
  "buildings": [
    {
      "id": "metal",
      "name": "캐비닛 프레스·도장·경화동",
      "role": "production",
      "polygon": [
        [
          14,
          46
        ],
        [
          60,
          46
        ],
        [
          60,
          75.6
        ],
        [
          14,
          75.6
        ]
      ],
      "height": 11,
      "roof": {
        "type": "sawtooth",
        "axis": "x",
        "pitch": 0.16
      },
      "facade": {
        "color": [
          0.4,
          0.45,
          0.48
        ],
        "accent": [
          0.15,
          0.29,
          0.38
        ],
        "material": "metal",
        "window_band_height": 0.85
      }
    },
    {
      "id": "drums",
      "name": "드럼 성형·터브 모듈동",
      "role": "production",
      "polygon": [
        [
          66,
          46
        ],
        [
          100.0,
          46
        ],
        [
          100.0,
          72.5
        ],
        [
          66,
          72.5
        ]
      ],
      "height": 8,
      "roof": {
        "type": "barrel",
        "axis": "x",
        "pitch": 0.16
      },
      "facade": {
        "color": [
          0.63,
          0.68,
          0.67
        ],
        "accent": [
          0.15,
          0.29,
          0.38
        ],
        "material": "metal",
        "window_band_height": 0.85
      }
    },
    {
      "id": "assemble",
      "name": "본체·구동계·전장 조립동",
      "role": "production",
      "polygon": [
        [
          106.0,
          46
        ],
        [
          140.0,
          46
        ],
        [
          140.0,
          76.7
        ],
        [
          106.0,
          76.7
        ]
      ],
      "height": 8,
      "roof": {
        "type": "gable",
        "axis": "x",
        "pitch": 0.16
      },
      "facade": {
        "color": [
          0.79,
          0.8,
          0.75
        ],
        "accent": [
          0.15,
          0.29,
          0.38
        ],
        "material": "metal",
        "window_band_height": 0.85
      }
    },
    {
      "id": "testpack",
      "name": "누수·회전 시험·박스 포장동",
      "role": "production",
      "polygon": [
        [
          106.0,
          81.7
        ],
        [
          140.0,
          81.7
        ],
        [
          140.0,
          107.2
        ],
        [
          106.0,
          107.2
        ]
      ],
      "height": 8,
      "roof": {
        "type": "shed",
        "axis": "x",
        "pitch": 0.16
      },
      "facade": {
        "color": [
          0.57,
          0.7,
          0.75
        ],
        "accent": [
          0.15,
          0.29,
          0.38
        ],
        "material": "metal",
        "window_band_height": 0.85
      }
    },
    {
      "id": "appliance-stock",
      "name": "부품·보호재·완제품 물류동",
      "role": "warehouse",
      "polygon": [
        [
          14,
          14
        ],
        [
          60,
          14
        ],
        [
          60,
          40
        ],
        [
          14,
          40
        ]
      ],
      "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": [
        [
          66,
          14
        ],
        [
          110.0,
          14
        ],
        [
          110.0,
          40.0
        ],
        [
          66,
          40.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
      }
    },
    {
      "id": "dispatch-stock",
      "name": "포장 세탁기 출하 버퍼",
      "role": "warehouse",
      "polygon": [
        [
          116.0,
          14
        ],
        [
          140.0,
          14
        ],
        [
          140.0,
          40
        ],
        [
          116.0,
          40
        ]
      ],
      "height": 7.5,
      "roof": {
        "type": "gable",
        "axis": "y",
        "pitch": 0.15
      },
      "facade": {
        "color": [
          0.62,
          0.67,
          0.64
        ],
        "accent": [
          0.22,
          0.32,
          0.32
        ],
        "material": "metal",
        "window_band_height": 0.85
      }
    }
  ],
  "zones": [
    {
      "id": "metal",
      "name": "캐비닛 프레스·도장·경화동",
      "role": "process",
      "building_id": "metal",
      "x": 14,
      "y": 46,
      "width": 46,
      "depth": 29.6,
      "stage_ids": [
        "S01",
        "S02"
      ],
      "fixtures": [
        {
          "id": "metal-workbench-01",
          "type": "workbench",
          "x": 15.6,
          "y": 47.05,
          "width": 2,
          "depth": 0.9,
          "height": 1,
          "count": 1,
          "label": "판금 금형·도장 건 정비 1"
        },
        {
          "id": "metal-workbench-02",
          "type": "workbench",
          "x": 18.4,
          "y": 47.05,
          "width": 2,
          "depth": 0.9,
          "height": 1,
          "count": 1,
          "label": "판금 금형·도장 건 정비 2"
        },
        {
          "id": "metal-workbench-03",
          "type": "workbench",
          "x": 21.2,
          "y": 47.05,
          "width": 2,
          "depth": 0.9,
          "height": 1,
          "count": 1,
          "label": "판금 금형·도장 건 정비 3"
        },
        {
          "id": "metal-workbench-04",
          "type": "workbench",
          "x": 24.0,
          "y": 47.05,
          "width": 2,
          "depth": 0.9,
          "height": 1,
          "count": 1,
          "label": "판금 금형·도장 건 정비 4"
        },
        {
          "id": "metal-pipe_rack-01",
          "type": "pipe_rack",
          "x": 46.1,
          "y": 47.1,
          "width": 5,
          "depth": 1,
          "height": 5,
          "count": 1,
          "label": "도장 배기·압축공기 헤더 1"
        },
        {
          "id": "metal-pipe_rack-02",
          "type": "pipe_rack",
          "x": 51.9,
          "y": 47.1,
          "width": 5,
          "depth": 1,
          "height": 5,
          "count": 1,
          "label": "도장 배기·압축공기 헤더 2"
        }
      ]
    },
    {
      "id": "drums",
      "name": "드럼 성형·터브 모듈동",
      "role": "process",
      "building_id": "drums",
      "x": 66,
      "y": 46,
      "width": 34.0,
      "depth": 26.5,
      "stage_ids": [
        "S03",
        "S04"
      ],
      "fixtures": [
        {
          "id": "drums-bin_rack-01",
          "type": "bin_rack",
          "x": 75.55,
          "y": 47.15,
          "width": 2,
          "depth": 0.9,
          "height": 2.5,
          "count": 1,
          "label": "드럼·터브 부속 키트 1"
        },
        {
          "id": "drums-bin_rack-02",
          "type": "bin_rack",
          "x": 86.15,
          "y": 47.15,
          "width": 2,
          "depth": 0.9,
          "height": 2.5,
          "count": 1,
          "label": "드럼·터브 부속 키트 2"
        },
        {
          "id": "drums-bin_rack-03",
          "type": "bin_rack",
          "x": 88.8,
          "y": 47.15,
          "width": 2,
          "depth": 0.9,
          "height": 2.5,
          "count": 1,
          "label": "드럼·터브 부속 키트 3"
        },
        {
          "id": "drums-bin_rack-04",
          "type": "bin_rack",
          "x": 91.45,
          "y": 47.15,
          "width": 2,
          "depth": 0.9,
          "height": 2.5,
          "count": 1,
          "label": "드럼·터브 부속 키트 4"
        },
        {
          "id": "drums-bin_rack-05",
          "type": "bin_rack",
          "x": 94.1,
          "y": 47.15,
          "width": 2,
          "depth": 0.9,
          "height": 2.5,
          "count": 1,
          "label": "드럼·터브 부속 키트 5"
        },
        {
          "id": "drums-bin_rack-06",
          "type": "bin_rack",
          "x": 96.75,
          "y": 47.15,
          "width": 2,
          "depth": 0.9,
          "height": 2.5,
          "count": 1,
          "label": "드럼·터브 부속 키트 6"
        },
        {
          "id": "drums-bin_rack-07",
          "type": "bin_rack",
          "x": 67.6,
          "y": 54.35,
          "width": 2,
          "depth": 0.9,
          "height": 2.5,
          "count": 1,
          "label": "드럼·터브 부속 키트 7"
        },
        {
          "id": "drums-bin_rack-08",
          "type": "bin_rack",
          "x": 67.6,
          "y": 65.15,
          "width": 2,
          "depth": 0.9,
          "height": 2.5,
          "count": 1,
          "label": "드럼·터브 부속 키트 8"
        },
        {
          "id": "drums-worktable-01",
          "type": "worktable",
          "x": 67.5,
          "y": 47.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1,
          "count": 1,
          "label": "드럼 기준 원통·접합 확인 1"
        },
        {
          "id": "drums-worktable-02",
          "type": "worktable",
          "x": 70.1,
          "y": 47.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1,
          "count": 1,
          "label": "드럼 기준 원통·접합 확인 2"
        },
        {
          "id": "drums-worktable-03",
          "type": "worktable",
          "x": 72.7,
          "y": 47.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1,
          "count": 1,
          "label": "드럼 기준 원통·접합 확인 3"
        },
        {
          "id": "drums-product_bins-01",
          "type": "product_bins",
          "x": 95.925,
          "y": 66.425,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "터브·드럼 부속 준비 1"
        },
        {
          "id": "drums-product_bins-02",
          "type": "product_bins",
          "x": 89.775,
          "y": 66.425,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "터브·드럼 부속 준비 2"
        },
        {
          "id": "drums-product_bins-03",
          "type": "product_bins",
          "x": 83.625,
          "y": 66.425,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "터브·드럼 부속 준비 3"
        },
        {
          "id": "drums-product_bins-04",
          "type": "product_bins",
          "x": 69.275,
          "y": 66.425,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "터브·드럼 부속 준비 4"
        },
        {
          "id": "drums-product_bins-05",
          "type": "product_bins",
          "x": 77.475,
          "y": 66.425,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "터브·드럼 부속 준비 5"
        }
      ]
    },
    {
      "id": "assemble",
      "name": "본체·구동계·전장 조립동",
      "role": "process",
      "building_id": "assemble",
      "x": 106.0,
      "y": 46,
      "width": 34.0,
      "depth": 30.7,
      "stage_ids": [
        "S05",
        "S06"
      ],
      "fixtures": [
        {
          "id": "assemble-bin_rack-01",
          "type": "bin_rack",
          "x": 107.6,
          "y": 54.35,
          "width": 2,
          "depth": 0.9,
          "height": 2.5,
          "count": 1,
          "label": "모터·밸브·전장 키트 1"
        },
        {
          "id": "assemble-bin_rack-02",
          "type": "bin_rack",
          "x": 107.6,
          "y": 61.55,
          "width": 2,
          "depth": 0.9,
          "height": 2.5,
          "count": 1,
          "label": "모터·밸브·전장 키트 2"
        },
        {
          "id": "assemble-bin_rack-03",
          "type": "bin_rack",
          "x": 110.25,
          "y": 61.55,
          "width": 2,
          "depth": 0.9,
          "height": 2.5,
          "count": 1,
          "label": "모터·밸브·전장 키트 3"
        },
        {
          "id": "assemble-bin_rack-04",
          "type": "bin_rack",
          "x": 112.9,
          "y": 61.55,
          "width": 2,
          "depth": 0.9,
          "height": 2.5,
          "count": 1,
          "label": "모터·밸브·전장 키트 4"
        },
        {
          "id": "assemble-bin_rack-05",
          "type": "bin_rack",
          "x": 115.55,
          "y": 54.35,
          "width": 2,
          "depth": 0.9,
          "height": 2.5,
          "count": 1,
          "label": "모터·밸브·전장 키트 5"
        },
        {
          "id": "assemble-bin_rack-06",
          "type": "bin_rack",
          "x": 118.2,
          "y": 54.35,
          "width": 2,
          "depth": 0.9,
          "height": 2.5,
          "count": 1,
          "label": "모터·밸브·전장 키트 6"
        },
        {
          "id": "assemble-bin_rack-07",
          "type": "bin_rack",
          "x": 120.85,
          "y": 54.35,
          "width": 2,
          "depth": 0.9,
          "height": 2.5,
          "count": 1,
          "label": "모터·밸브·전장 키트 7"
        },
        {
          "id": "assemble-bin_rack-08",
          "type": "bin_rack",
          "x": 123.5,
          "y": 54.35,
          "width": 2,
          "depth": 0.9,
          "height": 2.5,
          "count": 1,
          "label": "모터·밸브·전장 키트 8"
        },
        {
          "id": "assemble-bin_rack-09",
          "type": "bin_rack",
          "x": 126.15,
          "y": 54.35,
          "width": 2,
          "depth": 0.9,
          "height": 2.5,
          "count": 1,
          "label": "모터·밸브·전장 키트 9"
        },
        {
          "id": "assemble-bin_rack-10",
          "type": "bin_rack",
          "x": 128.8,
          "y": 54.35,
          "width": 2,
          "depth": 0.9,
          "height": 2.5,
          "count": 1,
          "label": "모터·밸브·전장 키트 10"
        },
        {
          "id": "assemble-worktable-01",
          "type": "worktable",
          "x": 107.5,
          "y": 47.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1,
          "count": 1,
          "label": "상판·패널 준비 1"
        },
        {
          "id": "assemble-worktable-02",
          "type": "worktable",
          "x": 110.1,
          "y": 47.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1,
          "count": 1,
          "label": "상판·패널 준비 2"
        },
        {
          "id": "assemble-worktable-03",
          "type": "worktable",
          "x": 112.7,
          "y": 47.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1,
          "count": 1,
          "label": "상판·패널 준비 3"
        },
        {
          "id": "assemble-worktable-04",
          "type": "worktable",
          "x": 115.3,
          "y": 47.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1,
          "count": 1,
          "label": "상판·패널 준비 4"
        },
        {
          "id": "assemble-product_bins-01",
          "type": "product_bins",
          "x": 135.925,
          "y": 64.475,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "세탁기 밸브·전장 키트 1"
        },
        {
          "id": "assemble-product_bins-02",
          "type": "product_bins",
          "x": 129.775,
          "y": 64.475,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "세탁기 밸브·전장 키트 2"
        },
        {
          "id": "assemble-product_bins-03",
          "type": "product_bins",
          "x": 123.625,
          "y": 64.475,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "세탁기 밸브·전장 키트 3"
        },
        {
          "id": "assemble-product_bins-04",
          "type": "product_bins",
          "x": 109.275,
          "y": 64.475,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "세탁기 밸브·전장 키트 4"
        },
        {
          "id": "assemble-product_bins-05",
          "type": "product_bins",
          "x": 117.475,
          "y": 64.475,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "세탁기 밸브·전장 키트 5"
        },
        {
          "id": "assemble-product_bins-06",
          "type": "product_bins",
          "x": 115.425,
          "y": 64.475,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "세탁기 밸브·전장 키트 6"
        },
        {
          "id": "robot-1-0-handover",
          "type": "workbench",
          "x": 107.7,
          "y": 52.65,
          "width": 1.2,
          "depth": 0.8,
          "height": 1.2,
          "count": 1,
          "angle": 0,
          "label": "터브 모듈 합류 전 지지대 S05:0"
        },
        {
          "id": "robot-1-1-handover",
          "type": "workbench",
          "x": 131.7,
          "y": 52.65,
          "width": 1.2,
          "depth": 0.8,
          "height": 1.2,
          "count": 1,
          "angle": 0,
          "label": "터브 모듈 합류 전 지지대 S05:3"
        },
        {
          "id": "robot-1-2-handover",
          "type": "workbench",
          "x": 131.7,
          "y": 60.15,
          "width": 1.2,
          "depth": 0.8,
          "height": 1.2,
          "count": 1,
          "angle": 0,
          "label": "터브 모듈 합류 전 지지대 S05:7"
        }
      ]
    },
    {
      "id": "testpack",
      "name": "누수·회전 시험·박스 포장동",
      "role": "process",
      "building_id": "testpack",
      "x": 106.0,
      "y": 81.7,
      "width": 34.0,
      "depth": 25.5,
      "stage_ids": [
        "S07",
        "S08"
      ],
      "fixtures": [
        {
          "id": "testpack-pipe_rack-01",
          "type": "pipe_rack",
          "x": 132.6,
          "y": 82.8,
          "width": 4,
          "depth": 1,
          "height": 4,
          "count": 1,
          "label": "시험수 회수·배관 1"
        },
        {
          "id": "testpack-pipe_rack-02",
          "type": "pipe_rack",
          "x": 108.6,
          "y": 89.7,
          "width": 4,
          "depth": 1,
          "height": 4,
          "count": 1,
          "label": "시험수 회수·배관 2"
        },
        {
          "id": "testpack-dock_staging-01",
          "type": "dock_staging",
          "x": 137.7,
          "y": 83.1,
          "width": 2.2,
          "depth": 1.6,
          "height": 1.4,
          "count": 1,
          "label": "세탁기 출하 팔레트 1"
        },
        {
          "id": "testpack-dock_staging-02",
          "type": "dock_staging",
          "x": 107.7,
          "y": 97.6,
          "width": 2.2,
          "depth": 1.6,
          "height": 1.4,
          "count": 1,
          "label": "세탁기 출하 팔레트 2"
        },
        {
          "id": "testpack-dock_staging-03",
          "type": "dock_staging",
          "x": 137.7,
          "y": 86.0,
          "width": 2.2,
          "depth": 1.6,
          "height": 1.4,
          "count": 1,
          "label": "세탁기 출하 팔레트 3"
        },
        {
          "id": "testpack-dock_staging-04",
          "type": "dock_staging",
          "x": 137.7,
          "y": 88.9,
          "width": 2.2,
          "depth": 1.6,
          "height": 1.4,
          "count": 1,
          "label": "세탁기 출하 팔레트 4"
        },
        {
          "id": "testpack-dock_staging-05",
          "type": "dock_staging",
          "x": 137.7,
          "y": 91.8,
          "width": 2.2,
          "depth": 1.6,
          "height": 1.4,
          "count": 1,
          "label": "세탁기 출하 팔레트 5"
        },
        {
          "id": "testpack-dock_staging-06",
          "type": "dock_staging",
          "x": 137.7,
          "y": 94.7,
          "width": 2.2,
          "depth": 1.6,
          "height": 1.4,
          "count": 1,
          "label": "세탁기 출하 팔레트 6"
        },
        {
          "id": "testpack-worktable-01",
          "type": "worktable",
          "x": 125.675,
          "y": 88.475,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "시험 호스·커넥터 인계 1"
        },
        {
          "id": "testpack-worktable-02",
          "type": "worktable",
          "x": 125.675,
          "y": 90.425,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "시험 호스·커넥터 인계 2"
        },
        {
          "id": "testpack-worktable-03",
          "type": "worktable",
          "x": 119.525,
          "y": 88.475,
          "width": 1.25,
          "depth": 0.65,
          "height": 1.0,
          "count": 1,
          "label": "시험 호스·커넥터 인계 3"
        }
      ]
    },
    {
      "id": "appliance-stock",
      "name": "부품·보호재·완제품 물류동",
      "role": "warehouse",
      "building_id": "appliance-stock",
      "x": 14,
      "y": 14,
      "width": 46,
      "depth": 26,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "appliance-stock-pallet_rack-01",
          "type": "pallet_rack",
          "x": 15.85,
          "y": 15.2,
          "width": 2.5,
          "depth": 1,
          "height": 5,
          "count": 1,
          "label": "구매모터·펌프·보호재 1"
        },
        {
          "id": "appliance-stock-pallet_rack-02",
          "type": "pallet_rack",
          "x": 19.0,
          "y": 15.2,
          "width": 2.5,
          "depth": 1,
          "height": 5,
          "count": 1,
          "label": "구매모터·펌프·보호재 2"
        },
        {
          "id": "appliance-stock-pallet_rack-03",
          "type": "pallet_rack",
          "x": 22.15,
          "y": 15.2,
          "width": 2.5,
          "depth": 1,
          "height": 5,
          "count": 1,
          "label": "구매모터·펌프·보호재 3"
        },
        {
          "id": "appliance-stock-pallet_rack-04",
          "type": "pallet_rack",
          "x": 25.3,
          "y": 15.2,
          "width": 2.5,
          "depth": 1,
          "height": 5,
          "count": 1,
          "label": "구매모터·펌프·보호재 4"
        },
        {
          "id": "appliance-stock-pallet_rack-05",
          "type": "pallet_rack",
          "x": 28.45,
          "y": 15.2,
          "width": 2.5,
          "depth": 1,
          "height": 5,
          "count": 1,
          "label": "구매모터·펌프·보호재 5"
        },
        {
          "id": "appliance-stock-pallet_rack-06",
          "type": "pallet_rack",
          "x": 31.6,
          "y": 15.2,
          "width": 2.5,
          "depth": 1,
          "height": 5,
          "count": 1,
          "label": "구매모터·펌프·보호재 6"
        },
        {
          "id": "appliance-stock-pallet_rack-07",
          "type": "pallet_rack",
          "x": 34.75,
          "y": 15.2,
          "width": 2.5,
          "depth": 1,
          "height": 5,
          "count": 1,
          "label": "구매모터·펌프·보호재 7"
        },
        {
          "id": "appliance-stock-pallet_rack-08",
          "type": "pallet_rack",
          "x": 38.25,
          "y": 23.5,
          "width": 2.5,
          "depth": 1,
          "height": 5,
          "count": 1,
          "label": "구매모터·펌프·보호재 8"
        },
        {
          "id": "appliance-stock-pallet_rack-09",
          "type": "pallet_rack",
          "x": 41.05,
          "y": 15.2,
          "width": 2.5,
          "depth": 1,
          "height": 5,
          "count": 1,
          "label": "구매모터·펌프·보호재 9"
        },
        {
          "id": "appliance-stock-pallet_rack-10",
          "type": "pallet_rack",
          "x": 44.2,
          "y": 15.2,
          "width": 2.5,
          "depth": 1,
          "height": 5,
          "count": 1,
          "label": "구매모터·펌프·보호재 10"
        },
        {
          "id": "appliance-stock-pallet_rack-11",
          "type": "pallet_rack",
          "x": 47.35,
          "y": 15.2,
          "width": 2.5,
          "depth": 1,
          "height": 5,
          "count": 1,
          "label": "구매모터·펌프·보호재 11"
        },
        {
          "id": "appliance-stock-pallet_rack-12",
          "type": "pallet_rack",
          "x": 50.5,
          "y": 15.2,
          "width": 2.5,
          "depth": 1,
          "height": 5,
          "count": 1,
          "label": "구매모터·펌프·보호재 12"
        },
        {
          "id": "appliance-stock-pallet_rack-13",
          "type": "pallet_rack",
          "x": 53.65,
          "y": 15.2,
          "width": 2.5,
          "depth": 1,
          "height": 5,
          "count": 1,
          "label": "구매모터·펌프·보호재 13"
        },
        {
          "id": "appliance-stock-pallet_rack-14",
          "type": "pallet_rack",
          "x": 56.8,
          "y": 15.2,
          "width": 2.5,
          "depth": 1,
          "height": 5,
          "count": 1,
          "label": "구매모터·펌프·보호재 14"
        },
        {
          "id": "appliance-stock-pallet_rack-15",
          "type": "pallet_rack",
          "x": 15.85,
          "y": 18.9,
          "width": 2.5,
          "depth": 1,
          "height": 5,
          "count": 1,
          "label": "구매모터·펌프·보호재 15"
        },
        {
          "id": "appliance-stock-pallet_rack-16",
          "type": "pallet_rack",
          "x": 19.0,
          "y": 18.9,
          "width": 2.5,
          "depth": 1,
          "height": 5,
          "count": 1,
          "label": "구매모터·펌프·보호재 16"
        },
        {
          "id": "appliance-stock-pallet_rack-17",
          "type": "pallet_rack",
          "x": 22.15,
          "y": 18.9,
          "width": 2.5,
          "depth": 1,
          "height": 5,
          "count": 1,
          "label": "구매모터·펌프·보호재 17"
        },
        {
          "id": "appliance-stock-pallet_rack-18",
          "type": "pallet_rack",
          "x": 25.3,
          "y": 18.9,
          "width": 2.5,
          "depth": 1,
          "height": 5,
          "count": 1,
          "label": "구매모터·펌프·보호재 18"
        },
        {
          "id": "appliance-stock-pallet_rack-19",
          "type": "pallet_rack",
          "x": 28.45,
          "y": 18.9,
          "width": 2.5,
          "depth": 1,
          "height": 5,
          "count": 1,
          "label": "구매모터·펌프·보호재 19"
        },
        {
          "id": "appliance-stock-pallet_rack-20",
          "type": "pallet_rack",
          "x": 31.6,
          "y": 18.9,
          "width": 2.5,
          "depth": 1,
          "height": 5,
          "count": 1,
          "label": "구매모터·펌프·보호재 20"
        },
        {
          "id": "appliance-stock-pallet_rack-21",
          "type": "pallet_rack",
          "x": 34.75,
          "y": 18.9,
          "width": 2.5,
          "depth": 1,
          "height": 5,
          "count": 1,
          "label": "구매모터·펌프·보호재 21"
        },
        {
          "id": "appliance-stock-pallet_rack-22",
          "type": "pallet_rack",
          "x": 35.25,
          "y": 23.5,
          "width": 2.5,
          "depth": 1,
          "height": 5,
          "count": 1,
          "label": "구매모터·펌프·보호재 22"
        },
        {
          "id": "appliance-stock-pallet_rack-23",
          "type": "pallet_rack",
          "x": 41.05,
          "y": 18.9,
          "width": 2.5,
          "depth": 1,
          "height": 5,
          "count": 1,
          "label": "구매모터·펌프·보호재 23"
        },
        {
          "id": "appliance-stock-pallet_rack-24",
          "type": "pallet_rack",
          "x": 44.2,
          "y": 18.9,
          "width": 2.5,
          "depth": 1,
          "height": 5,
          "count": 1,
          "label": "구매모터·펌프·보호재 24"
        },
        {
          "id": "appliance-stock-pallet_rack-25",
          "type": "pallet_rack",
          "x": 47.35,
          "y": 18.9,
          "width": 2.5,
          "depth": 1,
          "height": 5,
          "count": 1,
          "label": "구매모터·펌프·보호재 25"
        },
        {
          "id": "appliance-stock-pallet_rack-26",
          "type": "pallet_rack",
          "x": 50.5,
          "y": 18.9,
          "width": 2.5,
          "depth": 1,
          "height": 5,
          "count": 1,
          "label": "구매모터·펌프·보호재 26"
        },
        {
          "id": "appliance-stock-pallet_rack-27",
          "type": "pallet_rack",
          "x": 53.65,
          "y": 18.9,
          "width": 2.5,
          "depth": 1,
          "height": 5,
          "count": 1,
          "label": "구매모터·펌프·보호재 27"
        },
        {
          "id": "appliance-stock-pallet_rack-28",
          "type": "pallet_rack",
          "x": 56.8,
          "y": 18.9,
          "width": 2.5,
          "depth": 1,
          "height": 5,
          "count": 1,
          "label": "구매모터·펌프·보호재 28"
        },
        {
          "id": "appliance-stock-pallet_rack-29",
          "type": "pallet_rack",
          "x": 15.85,
          "y": 22.6,
          "width": 2.5,
          "depth": 1,
          "height": 5,
          "count": 1,
          "label": "구매모터·펌프·보호재 29"
        },
        {
          "id": "appliance-stock-pallet_rack-30",
          "type": "pallet_rack",
          "x": 19.0,
          "y": 22.6,
          "width": 2.5,
          "depth": 1,
          "height": 5,
          "count": 1,
          "label": "구매모터·펌프·보호재 30"
        },
        {
          "id": "appliance-stock-floor_pallets-01",
          "type": "floor_pallets",
          "x": 24.7,
          "y": 21.2,
          "width": 2.2,
          "depth": 1.6,
          "height": 1.8,
          "count": 1,
          "label": "검사 완료 세탁기 1"
        },
        {
          "id": "appliance-stock-floor_pallets-02",
          "type": "floor_pallets",
          "x": 27.7,
          "y": 21.2,
          "width": 2.2,
          "depth": 1.6,
          "height": 1.8,
          "count": 1,
          "label": "검사 완료 세탁기 2"
        },
        {
          "id": "appliance-stock-floor_pallets-03",
          "type": "floor_pallets",
          "x": 30.7,
          "y": 21.2,
          "width": 2.2,
          "depth": 1.6,
          "height": 1.8,
          "count": 1,
          "label": "검사 완료 세탁기 3"
        },
        {
          "id": "appliance-stock-floor_pallets-04",
          "type": "floor_pallets",
          "x": 33.7,
          "y": 21.2,
          "width": 2.2,
          "depth": 1.6,
          "height": 1.8,
          "count": 1,
          "label": "검사 완료 세탁기 4"
        },
        {
          "id": "appliance-stock-floor_pallets-05",
          "type": "floor_pallets",
          "x": 36.7,
          "y": 21.2,
          "width": 2.2,
          "depth": 1.6,
          "height": 1.8,
          "count": 1,
          "label": "검사 완료 세탁기 5"
        },
        {
          "id": "appliance-stock-floor_pallets-06",
          "type": "floor_pallets",
          "x": 39.7,
          "y": 21.2,
          "width": 2.2,
          "depth": 1.6,
          "height": 1.8,
          "count": 1,
          "label": "검사 완료 세탁기 6"
        },
        {
          "id": "appliance-stock-floor_pallets-07",
          "type": "floor_pallets",
          "x": 42.7,
          "y": 21.2,
          "width": 2.2,
          "depth": 1.6,
          "height": 1.8,
          "count": 1,
          "label": "검사 완료 세탁기 7"
        },
        {
          "id": "appliance-stock-floor_pallets-08",
          "type": "floor_pallets",
          "x": 45.7,
          "y": 21.2,
          "width": 2.2,
          "depth": 1.6,
          "height": 1.8,
          "count": 1,
          "label": "검사 완료 세탁기 8"
        },
        {
          "id": "appliance-stock-floor_pallets-09",
          "type": "floor_pallets",
          "x": 48.7,
          "y": 21.2,
          "width": 2.2,
          "depth": 1.6,
          "height": 1.8,
          "count": 1,
          "label": "검사 완료 세탁기 9"
        },
        {
          "id": "appliance-stock-floor_pallets-10",
          "type": "floor_pallets",
          "x": 51.7,
          "y": 21.2,
          "width": 2.2,
          "depth": 1.6,
          "height": 1.8,
          "count": 1,
          "label": "검사 완료 세탁기 10"
        }
      ]
    },
    {
      "id": "o04-office",
      "name": "생산·품질 사무실",
      "role": "office",
      "building_id": "support",
      "x": 66,
      "y": 14,
      "width": 17.6,
      "depth": 13.0,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "o04-office-office_desks-01",
          "type": "office_desks",
          "x": 67.85,
          "y": 15.4,
          "width": 2.5,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "label": "생산계획·품질 대응 1"
        },
        {
          "id": "o04-office-office_desks-02",
          "type": "office_desks",
          "x": 71.15,
          "y": 15.4,
          "width": 2.5,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "label": "생산계획·품질 대응 2"
        },
        {
          "id": "o04-office-office_desks-03",
          "type": "office_desks",
          "x": 74.45,
          "y": 15.4,
          "width": 2.5,
          "depth": 1.6,
          "height": 1.2,
          "count": 1,
          "label": "생산계획·품질 대응 3"
        }
      ]
    },
    {
      "id": "o04-staff",
      "name": "교대 탈의·휴게",
      "role": "staff",
      "building_id": "support",
      "x": 83.6,
      "y": 14,
      "width": 13.2,
      "depth": 13.0,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "o04-staff-locker_bank-01",
          "type": "locker_bank",
          "x": 85.1,
          "y": 14.85,
          "width": 1.8,
          "depth": 0.5,
          "height": 1.8,
          "count": 1,
          "label": "교대 개인 보관함 1"
        },
        {
          "id": "o04-staff-locker_bank-02",
          "type": "locker_bank",
          "x": 87.7,
          "y": 14.85,
          "width": 1.8,
          "depth": 0.5,
          "height": 1.8,
          "count": 1,
          "label": "교대 개인 보관함 2"
        },
        {
          "id": "o04-staff-locker_bank-03",
          "type": "locker_bank",
          "x": 90.3,
          "y": 14.85,
          "width": 1.8,
          "depth": 0.5,
          "height": 1.8,
          "count": 1,
          "label": "교대 개인 보관함 3"
        },
        {
          "id": "o04-staff-locker_bank-04",
          "type": "locker_bank",
          "x": 92.9,
          "y": 14.85,
          "width": 1.8,
          "depth": 0.5,
          "height": 1.8,
          "count": 1,
          "label": "교대 개인 보관함 4"
        },
        {
          "id": "o04-staff-worktable-01",
          "type": "worktable",
          "x": 85.0,
          "y": 17.1,
          "width": 1.6,
          "depth": 0.8,
          "height": 1,
          "count": 1,
          "label": "휴게 테이블 1"
        }
      ]
    },
    {
      "id": "o04-lab",
      "name": "누수·전기 기준실",
      "role": "laboratory",
      "building_id": "support",
      "x": 96.8,
      "y": 14,
      "width": 13.2,
      "depth": 13.0,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "o04-lab-lab_bench-01",
          "type": "lab_bench",
          "x": 98.3,
          "y": 15.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1.2,
          "count": 1,
          "label": "누수·전기 기준실 1"
        },
        {
          "id": "o04-lab-lab_bench-02",
          "type": "lab_bench",
          "x": 100.9,
          "y": 15.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1.2,
          "count": 1,
          "label": "누수·전기 기준실 2"
        },
        {
          "id": "o04-lab-lab_bench-03",
          "type": "lab_bench",
          "x": 103.5,
          "y": 15.0,
          "width": 1.8,
          "depth": 0.8,
          "height": 1.2,
          "count": 1,
          "label": "누수·전기 기준실 3"
        }
      ]
    },
    {
      "id": "o04-maint",
      "name": "판금·드럼·지그 정비",
      "role": "maintenance",
      "building_id": "support",
      "x": 66,
      "y": 27.0,
      "width": 22.0,
      "depth": 13.0,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "o04-maint-workbench-01",
          "type": "workbench",
          "x": 67.6,
          "y": 28.05,
          "width": 2,
          "depth": 0.9,
          "height": 1,
          "count": 1,
          "label": "판금·드럼·지그 정비 1"
        },
        {
          "id": "o04-maint-workbench-02",
          "type": "workbench",
          "x": 70.4,
          "y": 28.05,
          "width": 2,
          "depth": 0.9,
          "height": 1,
          "count": 1,
          "label": "판금·드럼·지그 정비 2"
        },
        {
          "id": "o04-maint-workbench-03",
          "type": "workbench",
          "x": 73.2,
          "y": 28.05,
          "width": 2,
          "depth": 0.9,
          "height": 1,
          "count": 1,
          "label": "판금·드럼·지그 정비 3"
        },
        {
          "id": "o04-maint-bin_rack-01",
          "type": "bin_rack",
          "x": 77.3,
          "y": 28.1,
          "width": 1.8,
          "depth": 0.8,
          "height": 2.2,
          "count": 1,
          "label": "정비 예비품 1"
        },
        {
          "id": "o04-maint-bin_rack-02",
          "type": "bin_rack",
          "x": 79.75,
          "y": 28.1,
          "width": 1.8,
          "depth": 0.8,
          "height": 2.2,
          "count": 1,
          "label": "정비 예비품 2"
        },
        {
          "id": "o04-maint-bin_rack-03",
          "type": "bin_rack",
          "x": 82.2,
          "y": 28.1,
          "width": 1.8,
          "depth": 0.8,
          "height": 2.2,
          "count": 1,
          "label": "정비 예비품 3"
        }
      ]
    },
    {
      "id": "o04-utility",
      "name": "공압·배전·냉각",
      "role": "utility",
      "building_id": "support",
      "x": 88.0,
      "y": 27.0,
      "width": 22.0,
      "depth": 13.0,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "o04-utility-compressor-01",
          "type": "compressor",
          "x": 89.85,
          "y": 28.35,
          "width": 2.5,
          "depth": 1.5,
          "height": 2,
          "count": 1,
          "label": "공압 공급 1"
        },
        {
          "id": "o04-utility-chiller-01",
          "type": "chiller",
          "x": 93.9,
          "y": 28.5,
          "width": 3,
          "depth": 1.8,
          "height": 2.3,
          "count": 1,
          "label": "공정 냉각 1"
        },
        {
          "id": "o04-utility-electrical_bank-01",
          "type": "electrical_bank",
          "x": 98.55,
          "y": 27.95,
          "width": 1.5,
          "depth": 0.7,
          "height": 2,
          "count": 1,
          "label": "공정 배전 1"
        },
        {
          "id": "o04-utility-electrical_bank-02",
          "type": "electrical_bank",
          "x": 100.85,
          "y": 27.95,
          "width": 1.5,
          "depth": 0.7,
          "height": 2,
          "count": 1,
          "label": "공정 배전 2"
        },
        {
          "id": "o04-utility-electrical_bank-03",
          "type": "electrical_bank",
          "x": 103.15,
          "y": 27.95,
          "width": 1.5,
          "depth": 0.7,
          "height": 2,
          "count": 1,
          "label": "공정 배전 3"
        }
      ]
    },
    {
      "id": "dispatch-stock",
      "name": "포장 세탁기 출하 버퍼",
      "role": "warehouse",
      "building_id": "dispatch-stock",
      "x": 116.0,
      "y": 14,
      "width": 24.0,
      "depth": 26,
      "stage_ids": [],
      "fixtures": [
        {
          "id": "dispatch-stock-floor_pallets-01",
          "type": "floor_pallets",
          "x": 117.8,
          "y": 15.35,
          "width": 2.4,
          "depth": 1.5,
          "height": 1.8,
          "count": 1,
          "label": "완제품 세탁기 팔레트 1"
        },
        {
          "id": "dispatch-stock-floor_pallets-02",
          "type": "floor_pallets",
          "x": 121.0,
          "y": 15.35,
          "width": 2.4,
          "depth": 1.5,
          "height": 1.8,
          "count": 1,
          "label": "완제품 세탁기 팔레트 2"
        },
        {
          "id": "dispatch-stock-floor_pallets-03",
          "type": "floor_pallets",
          "x": 124.2,
          "y": 15.35,
          "width": 2.4,
          "depth": 1.5,
          "height": 1.8,
          "count": 1,
          "label": "완제품 세탁기 팔레트 3"
        },
        {
          "id": "dispatch-stock-floor_pallets-04",
          "type": "floor_pallets",
          "x": 127.2,
          "y": 23.25,
          "width": 2.4,
          "depth": 1.5,
          "height": 1.8,
          "count": 1,
          "label": "완제품 세탁기 팔레트 4"
        },
        {
          "id": "dispatch-stock-floor_pallets-05",
          "type": "floor_pallets",
          "x": 130.6,
          "y": 15.35,
          "width": 2.4,
          "depth": 1.5,
          "height": 1.8,
          "count": 1,
          "label": "완제품 세탁기 팔레트 5"
        },
        {
          "id": "dispatch-stock-floor_pallets-06",
          "type": "floor_pallets",
          "x": 133.8,
          "y": 15.35,
          "width": 2.4,
          "depth": 1.5,
          "height": 1.8,
          "count": 1,
          "label": "완제품 세탁기 팔레트 6"
        },
        {
          "id": "dispatch-stock-floor_pallets-07",
          "type": "floor_pallets",
          "x": 137.0,
          "y": 15.35,
          "width": 2.4,
          "depth": 1.5,
          "height": 1.8,
          "count": 1,
          "label": "완제품 세탁기 팔레트 7"
        },
        {
          "id": "dispatch-stock-floor_pallets-08",
          "type": "floor_pallets",
          "x": 117.8,
          "y": 18.15,
          "width": 2.4,
          "depth": 1.5,
          "height": 1.8,
          "count": 1,
          "label": "완제품 세탁기 팔레트 8"
        },
        {
          "id": "dispatch-stock-floor_pallets-09",
          "type": "floor_pallets",
          "x": 121.0,
          "y": 18.15,
          "width": 2.4,
          "depth": 1.5,
          "height": 1.8,
          "count": 1,
          "label": "완제품 세탁기 팔레트 9"
        },
        {
          "id": "dispatch-stock-floor_pallets-10",
          "type": "floor_pallets",
          "x": 124.2,
          "y": 18.15,
          "width": 2.4,
          "depth": 1.5,
          "height": 1.8,
          "count": 1,
          "label": "완제품 세탁기 팔레트 10"
        },
        {
          "id": "dispatch-stock-floor_pallets-11",
          "type": "floor_pallets",
          "x": 130.2,
          "y": 23.25,
          "width": 2.4,
          "depth": 1.5,
          "height": 1.8,
          "count": 1,
          "label": "완제품 세탁기 팔레트 11"
        },
        {
          "id": "dispatch-stock-floor_pallets-12",
          "type": "floor_pallets",
          "x": 130.6,
          "y": 18.15,
          "width": 2.4,
          "depth": 1.5,
          "height": 1.8,
          "count": 1,
          "label": "완제품 세탁기 팔레트 12"
        },
        {
          "id": "dispatch-stock-floor_pallets-13",
          "type": "floor_pallets",
          "x": 133.8,
          "y": 18.15,
          "width": 2.4,
          "depth": 1.5,
          "height": 1.8,
          "count": 1,
          "label": "완제품 세탁기 팔레트 13"
        },
        {
          "id": "dispatch-stock-floor_pallets-14",
          "type": "floor_pallets",
          "x": 137.0,
          "y": 18.15,
          "width": 2.4,
          "depth": 1.5,
          "height": 1.8,
          "count": 1,
          "label": "완제품 세탁기 팔레트 14"
        },
        {
          "id": "dispatch-stock-floor_pallets-15",
          "type": "floor_pallets",
          "x": 117.8,
          "y": 20.95,
          "width": 2.4,
          "depth": 1.5,
          "height": 1.8,
          "count": 1,
          "label": "완제품 세탁기 팔레트 15"
        },
        {
          "id": "dispatch-stock-floor_pallets-16",
          "type": "floor_pallets",
          "x": 121.0,
          "y": 20.95,
          "width": 2.4,
          "depth": 1.5,
          "height": 1.8,
          "count": 1,
          "label": "완제품 세탁기 팔레트 16"
        },
        {
          "id": "dispatch-stock-floor_pallets-17",
          "type": "floor_pallets",
          "x": 124.2,
          "y": 20.95,
          "width": 2.4,
          "depth": 1.5,
          "height": 1.8,
          "count": 1,
          "label": "완제품 세탁기 팔레트 17"
        },
        {
          "id": "dispatch-stock-floor_pallets-18",
          "type": "floor_pallets",
          "x": 127.4,
          "y": 20.95,
          "width": 2.4,
          "depth": 1.5,
          "height": 1.8,
          "count": 1,
          "label": "완제품 세탁기 팔레트 18"
        },
        {
          "id": "dispatch-stock-floor_pallets-19",
          "type": "floor_pallets",
          "x": 130.6,
          "y": 20.95,
          "width": 2.4,
          "depth": 1.5,
          "height": 1.8,
          "count": 1,
          "label": "완제품 세탁기 팔레트 19"
        },
        {
          "id": "dispatch-stock-floor_pallets-20",
          "type": "floor_pallets",
          "x": 133.8,
          "y": 20.95,
          "width": 2.4,
          "depth": 1.5,
          "height": 1.8,
          "count": 1,
          "label": "완제품 세탁기 팔레트 20"
        },
        {
          "id": "dispatch-stock-floor_pallets-21",
          "type": "floor_pallets",
          "x": 137.0,
          "y": 20.95,
          "width": 2.4,
          "depth": 1.5,
          "height": 1.8,
          "count": 1,
          "label": "완제품 세탁기 팔레트 21"
        },
        {
          "id": "dispatch-stock-floor_pallets-22",
          "type": "floor_pallets",
          "x": 117.8,
          "y": 23.75,
          "width": 2.4,
          "depth": 1.5,
          "height": 1.8,
          "count": 1,
          "label": "완제품 세탁기 팔레트 22"
        },
        {
          "id": "dispatch-stock-floor_pallets-23",
          "type": "floor_pallets",
          "x": 121.0,
          "y": 23.75,
          "width": 2.4,
          "depth": 1.5,
          "height": 1.8,
          "count": 1,
          "label": "완제품 세탁기 팔레트 23"
        }
      ]
    }
  ],
  "equipment": [
    {
      "stage_id": "S01",
      "index": 0,
      "x": 19.0,
      "y": 50.0,
      "angle": 0
    },
    {
      "stage_id": "S01",
      "index": 1,
      "x": 28.0,
      "y": 50.0,
      "angle": 0
    },
    {
      "stage_id": "S01",
      "index": 2,
      "x": 37.0,
      "y": 50.0,
      "angle": 0
    },
    {
      "stage_id": "S01",
      "index": 3,
      "x": 19.0,
      "y": 57.6,
      "angle": 0
    },
    {
      "stage_id": "S01",
      "index": 4,
      "x": 28.0,
      "y": 57.6,
      "angle": 0
    },
    {
      "stage_id": "S01",
      "index": 5,
      "x": 37.0,
      "y": 57.6,
      "angle": 0
    },
    {
      "stage_id": "S02",
      "index": 0,
      "x": 26.0,
      "y": 69.6,
      "angle": 0
    },
    {
      "stage_id": "S02",
      "index": 1,
      "x": 48.0,
      "y": 69.6,
      "angle": 0
    },
    {
      "stage_id": "S03",
      "index": 0,
      "x": 71.0,
      "y": 50.5,
      "angle": 0
    },
    {
      "stage_id": "S03",
      "index": 1,
      "x": 80.0,
      "y": 50.5,
      "angle": 0
    },
    {
      "stage_id": "S03",
      "index": 2,
      "x": 71.0,
      "y": 59.0,
      "angle": 0
    },
    {
      "stage_id": "S03",
      "index": 3,
      "x": 80.0,
      "y": 59.0,
      "angle": 0
    },
    {
      "stage_id": "S04",
      "index": 0,
      "x": 70.0,
      "y": 69.0,
      "angle": 0
    },
    {
      "stage_id": "S04",
      "index": 1,
      "x": 76.5,
      "y": 69.0,
      "angle": 0
    },
    {
      "stage_id": "S04",
      "index": 2,
      "x": 83.0,
      "y": 69.0,
      "angle": 0
    },
    {
      "stage_id": "S04",
      "index": 3,
      "x": 89.5,
      "y": 69.0,
      "angle": 0
    },
    {
      "stage_id": "S04",
      "index": 4,
      "x": 96.0,
      "y": 69.0,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 0,
      "x": 110.5,
      "y": 50.0,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 1,
      "x": 118.5,
      "y": 50.0,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 2,
      "x": 126.5,
      "y": 50.0,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 3,
      "x": 134.5,
      "y": 50.0,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 4,
      "x": 110.5,
      "y": 57.5,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 5,
      "x": 118.5,
      "y": 57.5,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 6,
      "x": 126.5,
      "y": 57.5,
      "angle": 0
    },
    {
      "stage_id": "S05",
      "index": 7,
      "x": 134.5,
      "y": 57.5,
      "angle": 0
    },
    {
      "stage_id": "S06",
      "index": 0,
      "x": 110.0,
      "y": 67.0,
      "angle": 0
    },
    {
      "stage_id": "S06",
      "index": 1,
      "x": 116.5,
      "y": 67.0,
      "angle": 0
    },
    {
      "stage_id": "S06",
      "index": 2,
      "x": 123.0,
      "y": 67.0,
      "angle": 0
    },
    {
      "stage_id": "S06",
      "index": 3,
      "x": 129.5,
      "y": 67.0,
      "angle": 0
    },
    {
      "stage_id": "S06",
      "index": 4,
      "x": 136.0,
      "y": 67.0,
      "angle": 0
    },
    {
      "stage_id": "S06",
      "index": 5,
      "x": 110.0,
      "y": 73.2,
      "angle": 0
    },
    {
      "stage_id": "S06",
      "index": 6,
      "x": 116.5,
      "y": 73.2,
      "angle": 0
    },
    {
      "stage_id": "S06",
      "index": 7,
      "x": 123.0,
      "y": 73.2,
      "angle": 0
    },
    {
      "stage_id": "S06",
      "index": 8,
      "x": 129.5,
      "y": 73.2,
      "angle": 0
    },
    {
      "stage_id": "S06",
      "index": 9,
      "x": 136.0,
      "y": 73.2,
      "angle": 0
    },
    {
      "stage_id": "S07",
      "index": 0,
      "x": 110.5,
      "y": 85.7,
      "angle": 0
    },
    {
      "stage_id": "S07",
      "index": 1,
      "x": 118.5,
      "y": 85.7,
      "angle": 0
    },
    {
      "stage_id": "S07",
      "index": 2,
      "x": 126.5,
      "y": 85.7,
      "angle": 0
    },
    {
      "stage_id": "S07",
      "index": 3,
      "x": 110.5,
      "y": 93.2,
      "angle": 0
    },
    {
      "stage_id": "S07",
      "index": 4,
      "x": 118.5,
      "y": 93.2,
      "angle": 0
    },
    {
      "stage_id": "S07",
      "index": 5,
      "x": 126.5,
      "y": 93.2,
      "angle": 0
    },
    {
      "stage_id": "S08",
      "index": 0,
      "x": 112.0,
      "y": 103.2,
      "angle": 0
    },
    {
      "stage_id": "S08",
      "index": 1,
      "x": 123.0,
      "y": 103.2,
      "angle": 0
    },
    {
      "stage_id": "S08",
      "index": 2,
      "x": 134.0,
      "y": 103.2,
      "angle": 0
    }
  ],
  "robots": [
    {
      "definition_index": 0,
      "instance_index": 0,
      "stage_id": "S01",
      "x": 19.0,
      "y": 53.25,
      "angle": -1.5707963267948966,
      "task_station": "캐비닛 프레스·절곡 1호의 북측 작업면. 캐비닛 부품을 프레스와 도장 행거에 올린다."
    },
    {
      "definition_index": 0,
      "instance_index": 1,
      "stage_id": "S01",
      "x": 28.0,
      "y": 53.25,
      "angle": -1.5707963267948966,
      "task_station": "캐비닛 프레스·절곡 2호의 북측 작업면. 캐비닛 부품을 프레스와 도장 행거에 올린다."
    },
    {
      "definition_index": 0,
      "instance_index": 2,
      "stage_id": "S01",
      "x": 37.0,
      "y": 53.25,
      "angle": -1.5707963267948966,
      "task_station": "캐비닛 프레스·절곡 3호의 북측 작업면. 캐비닛 부품을 프레스와 도장 행거에 올린다."
    },
    {
      "definition_index": 0,
      "instance_index": 3,
      "stage_id": "S01",
      "x": 19.0,
      "y": 60.85,
      "angle": -1.5707963267948966,
      "task_station": "캐비닛 프레스·절곡 4호의 북측 작업면. 캐비닛 부품을 프레스와 도장 행거에 올린다."
    },
    {
      "definition_index": 0,
      "instance_index": 4,
      "stage_id": "S01",
      "x": 28.0,
      "y": 60.85,
      "angle": -1.5707963267948966,
      "task_station": "캐비닛 프레스·절곡 5호의 북측 작업면. 캐비닛 부품을 프레스와 도장 행거에 올린다."
    },
    {
      "definition_index": 0,
      "instance_index": 5,
      "stage_id": "S01",
      "x": 37.0,
      "y": 60.85,
      "angle": -1.5707963267948966,
      "task_station": "캐비닛 프레스·절곡 6호의 북측 작업면. 캐비닛 부품을 프레스와 도장 행거에 올린다."
    },
    {
      "definition_index": 1,
      "instance_index": 0,
      "stage_id": "S05",
      "x": 107.7,
      "y": 50.0,
      "angle": 0,
      "task_station": "본체·구동계 합류 조립 #1: 프레임과 공정 헤드 외측의 실제 입력 컨베이어 ↔ 터브 모듈 합류 전 지지대 S05:0. 지지기둥은 설비·기물·수송 폭 바깥이며 형상별 전용 툴로 수직 접근 후 높은 위치에서 이송한다. 원기계와 로봇 전체 동작 간섭은 별도 검수한다.",
      "host_equipment": {
        "stage_id": "S05",
        "index": 0
      },
      "gantry_span": [
        2.8,
        7.28,
        5.2
      ],
      "task_point": [
        107.7,
        50.0,
        1.2225
      ],
      "task_points": [
        [
          107.9,
          52.49,
          1.35
        ],
        [
          107.7,
          50.0,
          1.2225
        ]
      ],
      "task_fixture_id": "robot-1-0-handover",
      "controller_offset": [
        0.7,
        3.5900000000000003,
        0
      ],
      "target_basis": "프레임과 공정 헤드 외측의 실제 입력 컨베이어"
    },
    {
      "definition_index": 1,
      "instance_index": 1,
      "stage_id": "S05",
      "x": 131.7,
      "y": 50.0,
      "angle": 0,
      "task_station": "본체·구동계 합류 조립 #4: 프레임과 공정 헤드 외측의 실제 입력 컨베이어 ↔ 터브 모듈 합류 전 지지대 S05:3. 지지기둥은 설비·기물·수송 폭 바깥이며 형상별 전용 툴로 수직 접근 후 높은 위치에서 이송한다. 원기계와 로봇 전체 동작 간섭은 별도 검수한다.",
      "host_equipment": {
        "stage_id": "S05",
        "index": 3
      },
      "gantry_span": [
        2.8,
        6.08,
        5.2
      ],
      "task_point": [
        131.7,
        50.0,
        1.2225
      ],
      "task_points": [
        [
          131.89999999999998,
          52.49,
          1.35
        ],
        [
          131.7,
          50.0,
          1.2225
        ]
      ],
      "task_fixture_id": "robot-1-1-handover",
      "controller_offset": [
        0.7,
        -2.99,
        0
      ],
      "target_basis": "프레임과 공정 헤드 외측의 실제 입력 컨베이어"
    },
    {
      "definition_index": 1,
      "instance_index": 2,
      "stage_id": "S05",
      "x": 131.7,
      "y": 57.5,
      "angle": 0,
      "task_station": "본체·구동계 합류 조립 #8: 프레임과 공정 헤드 외측의 실제 입력 컨베이어 ↔ 터브 모듈 합류 전 지지대 S05:7. 지지기둥은 설비·기물·수송 폭 바깥이며 형상별 전용 툴로 수직 접근 후 높은 위치에서 이송한다. 원기계와 로봇 전체 동작 간섭은 별도 검수한다.",
      "host_equipment": {
        "stage_id": "S05",
        "index": 7
      },
      "gantry_span": [
        2.8,
        6.08,
        5.2
      ],
      "task_point": [
        131.7,
        57.5,
        1.2225
      ],
      "task_points": [
        [
          131.89999999999998,
          59.99,
          1.35
        ],
        [
          131.7,
          57.5,
          1.2225
        ]
      ],
      "task_fixture_id": "robot-1-2-handover",
      "controller_offset": [
        0.7,
        -2.99,
        0
      ],
      "target_basis": "프레임과 공정 헤드 외측의 실제 입력 컨베이어"
    },
    {
      "definition_index": 2,
      "instance_index": 0,
      "stage_id": "S08",
      "x": 112.0,
      "y": 106.45,
      "angle": -1.5707963267948966,
      "task_station": "보호재·박스 포장 1호의 북측 작업면. 완성 박스를 팔레트에 적재한다."
    },
    {
      "definition_index": 2,
      "instance_index": 1,
      "stage_id": "S08",
      "x": 134.0,
      "y": 106.45,
      "angle": -1.5707963267948966,
      "task_station": "보호재·박스 포장 3호의 북측 작업면. 완성 박스를 팔레트에 적재한다."
    }
  ],
  "logistics": [
    {
      "id": "S01→S02",
      "kind": "amr",
      "from": "S01:4",
      "to": "S02:0",
      "points": [
        [
          28.0,
          60.42,
          0.1
        ],
        [
          28.0,
          65.78,
          0.1
        ]
      ],
      "width": 1.4,
      "routing_note": "해당 생산 셀의 명시 수송 대표 경로. 다른 병렬 셀의 실제 분기 포트는 별도 형상 검토한다.",
      "handover_method": "external_machine_side_staging",
      "handover_note": "차량 중심선은 설비 footprint 바깥에 정차한다. 장비 측 인계대·적재 자세와 지게차 포크/AMR 도킹 상세는 실제 형상 검수 대상이다."
    },
    {
      "id": "S02→S05",
      "kind": "amr",
      "from": "S02:1",
      "to": "S05:4",
      "points": [
        [
          48.0,
          73.42,
          0.1
        ],
        [
          48.0,
          73.47,
          0.1
        ],
        [
          102.52,
          73.47,
          0.1
        ],
        [
          102.52,
          57.5,
          0.1
        ],
        [
          107.18,
          57.5,
          0.1
        ]
      ],
      "width": 1.4,
      "routing_note": "해당 생산 셀의 명시 수송 대표 경로. 다른 병렬 셀의 실제 분기 포트는 별도 형상 검토한다.",
      "handover_method": "external_machine_side_staging",
      "handover_note": "차량 중심선은 설비 footprint 바깥에 정차한다. 장비 측 인계대·적재 자세와 지게차 포크/AMR 도킹 상세는 실제 형상 검수 대상이다."
    },
    {
      "id": "S05→S06",
      "kind": "amr",
      "from": "S05:4",
      "to": "S06:0",
      "points": [
        [
          113.82,
          57.5,
          0.1
        ],
        [
          114.82,
          57.5,
          0.1
        ],
        [
          114.82,
          63.23,
          0.1
        ],
        [
          110.82,
          63.23,
          0.1
        ],
        [
          110.82,
          64.68,
          0.1
        ]
      ],
      "width": 1.4,
      "routing_note": "해당 생산 셀의 명시 수송 대표 경로. 다른 병렬 셀의 실제 분기 포트는 별도 형상 검토한다.",
      "handover_method": "external_machine_side_staging",
      "handover_note": "차량 중심선은 설비 footprint 바깥에 정차한다. 장비 측 인계대·적재 자세와 지게차 포크/AMR 도킹 상세는 실제 형상 검수 대상이다."
    },
    {
      "id": "S06→S07",
      "kind": "amr",
      "from": "S06:5",
      "to": "S07:0",
      "points": [
        [
          110.0,
          75.52,
          0.1
        ],
        [
          110.0,
          82.88,
          0.1
        ]
      ],
      "width": 1.4,
      "routing_note": "해당 생산 셀의 명시 수송 대표 경로. 다른 병렬 셀의 실제 분기 포트는 별도 형상 검토한다.",
      "handover_method": "external_machine_side_staging",
      "handover_note": "차량 중심선은 설비 footprint 바깥에 정차한다. 장비 측 인계대·적재 자세와 지게차 포크/AMR 도킹 상세는 실제 형상 검수 대상이다."
    },
    {
      "id": "S07→S08",
      "kind": "amr",
      "from": "S07:3",
      "to": "S08:0",
      "points": [
        [
          110.5,
          96.02,
          0.1
        ],
        [
          110.5,
          100.38,
          0.1
        ]
      ],
      "width": 1.4,
      "routing_note": "해당 생산 셀의 명시 수송 대표 경로. 다른 병렬 셀의 실제 분기 포트는 별도 형상 검토한다.",
      "handover_method": "external_machine_side_staging",
      "handover_note": "차량 중심선은 설비 footprint 바깥에 정차한다. 장비 측 인계대·적재 자세와 지게차 포크/AMR 도킹 상세는 실제 형상 검수 대상이다."
    },
    {
      "id": "S03→S04",
      "kind": "amr",
      "from": "S03:2",
      "to": "S04:0",
      "points": [
        [
          71.0,
          62.32,
          0.1
        ],
        [
          71.0,
          66.68,
          0.1
        ]
      ],
      "width": 1.4,
      "routing_note": "해당 생산 셀의 명시 수송 대표 경로. 다른 병렬 셀의 실제 분기 포트는 별도 형상 검토한다.",
      "handover_method": "external_machine_side_staging",
      "handover_note": "차량 중심선은 설비 footprint 바깥에 정차한다. 장비 측 인계대·적재 자세와 지게차 포크/AMR 도킹 상세는 실제 형상 검수 대상이다."
    },
    {
      "id": "S04→S05",
      "kind": "amr",
      "from": "S04:4",
      "to": "S05:4",
      "points": [
        [
          98.82,
          69.0,
          0.1
        ],
        [
          105.03,
          69.0,
          0.1
        ],
        [
          105.03,
          57.5,
          0.1
        ],
        [
          107.18,
          57.5,
          0.1
        ]
      ],
      "width": 1.4,
      "routing_note": "해당 생산 셀의 명시 수송 대표 경로. 다른 병렬 셀의 실제 분기 포트는 별도 형상 검토한다.",
      "handover_method": "external_machine_side_staging",
      "handover_note": "차량 중심선은 설비 footprint 바깥에 정차한다. 장비 측 인계대·적재 자세와 지게차 포크/AMR 도킹 상세는 실제 형상 검수 대상이다."
    },
    {
      "id": "원료 도크→입고 인계 1",
      "kind": "amr",
      "width": 1.4,
      "from": "raw-dock",
      "to": "appliance-stock",
      "points": [
        [
          37.0,
          14,
          0.1
        ],
        [
          37.0,
          18.0,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다."
    },
    {
      "id": "입고 인계→초공정 1",
      "kind": "amr",
      "width": 1.4,
      "from": "appliance-stock",
      "to": "S01:2",
      "points": [
        [
          37.0,
          18.0,
          0.1
        ],
        [
          37.0,
          17.48,
          0.1
        ],
        [
          58.97,
          17.48,
          0.1
        ],
        [
          58.97,
          50.0,
          0.1
        ],
        [
          40.82,
          50.0,
          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": "dispatch-stock",
      "points": [
        [
          123.0,
          100.38,
          0.1
        ],
        [
          123.0,
          77.67,
          0.1
        ],
        [
          140.97,
          77.67,
          0.1
        ],
        [
          140.97,
          13.08,
          0.1
        ],
        [
          128.0,
          13.08,
          0.1
        ],
        [
          128.0,
          18.0,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다.",
      "handover_method": "external_machine_side_staging",
      "handover_note": "차량 중심선은 설비 footprint 바깥에 정차한다. 장비 측 인계대·적재 자세와 지게차 포크/AMR 도킹 상세는 실제 형상 검수 대상이다."
    },
    {
      "id": "출하 대기→완제품 도크 2",
      "kind": "amr",
      "width": 1.4,
      "from": "dispatch-stock",
      "to": "shipping-dock",
      "points": [
        [
          128.0,
          18.0,
          0.1
        ],
        [
          128.0,
          14,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다."
    },
    {
      "id": "정문→교대 탈의·휴게",
      "kind": "pedestrian",
      "width": 1.2,
      "from": "gate",
      "to": "o04-staff",
      "points": [
        [
          76.0,
          7,
          0.1
        ],
        [
          78.03,
          7,
          0.1
        ],
        [
          78.03,
          20.5,
          0.1
        ],
        [
          90.1,
          20.5,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다."
    },
    {
      "id": "지원동 보행 o04-staff→o04-office",
      "kind": "pedestrian",
      "width": 1.2,
      "from": "o04-staff",
      "to": "o04-office",
      "points": [
        [
          90.1,
          20.5,
          0.1
        ],
        [
          75.0,
          20.5,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다."
    },
    {
      "id": "지원동 보행 o04-staff→o04-lab",
      "kind": "pedestrian",
      "width": 1.2,
      "from": "o04-staff",
      "to": "o04-lab",
      "points": [
        [
          90.1,
          20.5,
          0.1
        ],
        [
          103.3,
          20.5,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다."
    },
    {
      "id": "지원동 보행 o04-staff→o04-maint",
      "kind": "pedestrian",
      "width": 1.2,
      "from": "o04-staff",
      "to": "o04-maint",
      "points": [
        [
          90.1,
          20.5,
          0.1
        ],
        [
          85.07,
          20.5,
          0.1
        ],
        [
          85.07,
          33.5,
          0.1
        ],
        [
          77.0,
          33.5,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다."
    },
    {
      "id": "지원동 보행 o04-staff→o04-utility",
      "kind": "pedestrian",
      "width": 1.2,
      "from": "o04-staff",
      "to": "o04-utility",
      "points": [
        [
          90.1,
          20.5,
          0.1
        ],
        [
          86.98,
          20.5,
          0.1
        ],
        [
          86.98,
          33.5,
          0.1
        ],
        [
          99.0,
          33.5,
          0.1
        ]
      ],
      "routing_note": "원/종점 실좌표와 수송 폭을 명시한 단방향 대표 인계 경로. 교차부 운영·차량 선회는 별도 검수한다."
    }
  ],
  "yard": {
    "roads": [
      {
        "points": [
          [
            7,
            7
          ],
          [
            145,
            7
          ],
          [
            145,
            115
          ],
          [
            7,
            115
          ],
          [
            7,
            7
          ]
        ],
        "width": 6
      }
    ],
    "docks": [
      {
        "x": 37.0,
        "y": 14,
        "angle": 0,
        "building_id": "appliance-stock",
        "role": "원료·구매부품 입고 도크 — 부품·보호재·구매품 물류동 도크"
      },
      {
        "x": 128.0,
        "y": 14,
        "angle": 0,
        "building_id": "dispatch-stock",
        "role": "포장 세탁기 출하 버퍼 출하"
      }
    ],
    "parking": [
      {
        "x": 15,
        "y": 113.2,
        "angle": 0,
        "count": 20
      }
    ],
    "gate": {
      "x": 76.0,
      "y": 7
    },
    "fence": true
  },
  "landmarks": [
    "긴 도장·경화설비가 있는 톱니 판금동",
    "드럼 모듈동의 배럴 지붕",
    "구매 키트가 둘러싼 두 줄 본체 조립 셀",
    "물 회수 헤더와 시험 후 박스 팔레트 출하",
    "포장 세탁기 출하 버퍼을 갖춘 실제 랙·전용대 출하 전면"
  ],
  "openings": [
    {
      "id": "opening-1",
      "building_id": "metal",
      "x": 60,
      "y": 46.8,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S02",
        "S05"
      ]
    },
    {
      "id": "opening-2",
      "building_id": "metal",
      "x": 60,
      "y": 46.8,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S02",
        "S05"
      ],
      "zone_id": "metal"
    },
    {
      "id": "opening-3",
      "building_id": "assemble",
      "x": 106.0,
      "y": 46.8,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S02",
        "S05"
      ]
    },
    {
      "id": "opening-4",
      "building_id": "assemble",
      "x": 106.0,
      "y": 46.8,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S02",
        "S05"
      ],
      "zone_id": "assemble"
    },
    {
      "id": "opening-5",
      "building_id": "assemble",
      "x": 140.0,
      "y": 46.8,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S06",
        "S07"
      ]
    },
    {
      "id": "opening-6",
      "building_id": "assemble",
      "x": 140.0,
      "y": 46.8,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S06",
        "S07"
      ],
      "zone_id": "assemble"
    },
    {
      "id": "opening-7",
      "building_id": "testpack",
      "x": 106.0,
      "y": 82.5,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S06",
        "S07"
      ]
    },
    {
      "id": "opening-8",
      "building_id": "testpack",
      "x": 106.0,
      "y": 82.5,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S06",
        "S07"
      ],
      "zone_id": "testpack"
    },
    {
      "id": "opening-9",
      "building_id": "drums",
      "x": 100.0,
      "y": 46.8,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S04",
        "S05"
      ]
    },
    {
      "id": "opening-10",
      "building_id": "drums",
      "x": 100.0,
      "y": 46.8,
      "width": 2.0,
      "height": 3.0,
      "axis": "y",
      "connects": [
        "S04",
        "S05"
      ],
      "zone_id": "drums"
    },
    {
      "id": "routing-r1-011",
      "building_id": "metal",
      "x": 60,
      "y": 73.47,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S02:1",
        "S05:4"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-012",
      "building_id": "metal",
      "x": 60,
      "y": 73.47,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S02:1",
        "S05:4"
      ],
      "kind": "material_door",
      "zone_id": "metal"
    },
    {
      "id": "routing-r1-013",
      "building_id": "assemble",
      "x": 106.0,
      "y": 57.5,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S02:1",
        "S05:4"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-014",
      "building_id": "assemble",
      "x": 106.0,
      "y": 57.5,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S02:1",
        "S05:4"
      ],
      "kind": "material_door",
      "zone_id": "assemble"
    },
    {
      "id": "routing-r1-015",
      "building_id": "assemble",
      "x": 110.0,
      "y": 76.7,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "S06:5",
        "S07:0"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-016",
      "building_id": "testpack",
      "x": 110.0,
      "y": 81.7,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "S06:5",
        "S07:0"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-017",
      "building_id": "assemble",
      "x": 110.0,
      "y": 76.7,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "S06:5",
        "S07:0"
      ],
      "kind": "material_door",
      "zone_id": "assemble"
    },
    {
      "id": "routing-r1-018",
      "building_id": "testpack",
      "x": 110.0,
      "y": 81.7,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "S06:5",
        "S07:0"
      ],
      "kind": "material_door",
      "zone_id": "testpack"
    },
    {
      "id": "routing-r1-019",
      "building_id": "drums",
      "x": 100.0,
      "y": 69.0,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S04:4",
        "S05:4"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-020",
      "building_id": "drums",
      "x": 100.0,
      "y": 69.0,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "S04:4",
        "S05:4"
      ],
      "kind": "material_door",
      "zone_id": "drums"
    },
    {
      "id": "routing-r1-021",
      "building_id": "appliance-stock",
      "x": 37.0,
      "y": 14,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "raw-dock",
        "appliance-stock"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-022",
      "building_id": "metal",
      "x": 58.97,
      "y": 46,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "appliance-stock",
        "S01:2"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-023",
      "building_id": "appliance-stock",
      "x": 58.97,
      "y": 40,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "appliance-stock",
        "S01:2"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-024",
      "building_id": "metal",
      "x": 58.97,
      "y": 46,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "appliance-stock",
        "S01:2"
      ],
      "kind": "material_door",
      "zone_id": "metal"
    },
    {
      "id": "routing-r1-025",
      "building_id": "testpack",
      "x": 123.0,
      "y": 81.7,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "S08:1",
        "dispatch-stock"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-026",
      "building_id": "testpack",
      "x": 123.0,
      "y": 81.7,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "S08:1",
        "dispatch-stock"
      ],
      "kind": "material_door",
      "zone_id": "testpack"
    },
    {
      "id": "routing-r1-027",
      "building_id": "dispatch-stock",
      "x": 128.0,
      "y": 14,
      "width": 1.95,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "S08:1",
        "dispatch-stock"
      ],
      "kind": "material_door"
    },
    {
      "id": "routing-r1-028",
      "building_id": "support",
      "x": 78.03,
      "y": 14,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "gate",
        "o04-staff"
      ],
      "kind": "pedestrian_door"
    },
    {
      "id": "routing-r1-029",
      "building_id": "support",
      "x": 78.03,
      "y": 14,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "gate",
        "o04-staff"
      ],
      "kind": "pedestrian_door",
      "zone_id": "o04-office"
    },
    {
      "id": "routing-r1-030",
      "building_id": "support",
      "x": 83.6,
      "y": 20.5,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "gate",
        "o04-staff"
      ],
      "kind": "pedestrian_door",
      "zone_id": "o04-office"
    },
    {
      "id": "routing-r1-031",
      "building_id": "support",
      "x": 83.6,
      "y": 20.5,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "gate",
        "o04-staff"
      ],
      "kind": "pedestrian_door",
      "zone_id": "o04-staff"
    },
    {
      "id": "routing-r1-032",
      "building_id": "support",
      "x": 96.8,
      "y": 20.5,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "o04-staff",
        "o04-lab"
      ],
      "kind": "pedestrian_door",
      "zone_id": "o04-staff"
    },
    {
      "id": "routing-r1-033",
      "building_id": "support",
      "x": 96.8,
      "y": 20.5,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "o04-staff",
        "o04-lab"
      ],
      "kind": "pedestrian_door",
      "zone_id": "o04-lab"
    },
    {
      "id": "routing-r1-034",
      "building_id": "support",
      "x": 85.07,
      "y": 27.0,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "o04-staff",
        "o04-maint"
      ],
      "kind": "pedestrian_door",
      "zone_id": "o04-staff"
    },
    {
      "id": "routing-r1-035",
      "building_id": "support",
      "x": 85.07,
      "y": 27.0,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "o04-staff",
        "o04-maint"
      ],
      "kind": "pedestrian_door",
      "zone_id": "o04-maint"
    },
    {
      "id": "routing-r1-036",
      "building_id": "support",
      "x": 86.98,
      "y": 27.0,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "o04-staff",
        "o04-utility"
      ],
      "kind": "pedestrian_door",
      "zone_id": "o04-staff"
    },
    {
      "id": "routing-r1-037",
      "building_id": "support",
      "x": 86.98,
      "y": 27.0,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "x",
      "connects": [
        "o04-staff",
        "o04-utility"
      ],
      "kind": "pedestrian_door",
      "zone_id": "o04-maint"
    },
    {
      "id": "routing-r1-038",
      "building_id": "support",
      "x": 88.0,
      "y": 33.5,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "o04-staff",
        "o04-utility"
      ],
      "kind": "pedestrian_door",
      "zone_id": "o04-maint"
    },
    {
      "id": "routing-r1-039",
      "building_id": "support",
      "x": 88.0,
      "y": 33.5,
      "width": 1.75,
      "height": 2.4,
      "sill_height": 0,
      "axis": "y",
      "connects": [
        "o04-staff",
        "o04-utility"
      ],
      "kind": "pedestrian_door",
      "zone_id": "o04-utility"
    }
  ],
  "density": {
    "intent": "설비 바닥 1036.00㎡ / 제조 구획 4173.40㎡ = 24.82%. 개별 생산 셀의 서비스 간격·공정 인계와 실제 원부자재·정비·검사 시설을 먼저 구성했다. 빈 바닥을 채우기 위한 임의 장식 상자를 사용하지 않는다.",
    "production_area_m2": 4173.4,
    "storage_area_m2": 1820.0,
    "support_area_m2": 1144.0,
    "circulation_area_m2": 0
  },
  "authoring_note": "개별 배치안. 형상·동작·피난·법정 안전설계 검수 및 시각 검수는 별도 수행해야 하며 공개 릴리스 승인 아님.",
  "routing_revision": 2
}
