Cloudwiki

Web sandbox 프로젝트/구상/새 화학반응 공정 후보

주의:  이 문서는 **구상 문서**다
여기 적힌 공정·물질·엔진 수정은 **하나도 구현돼 있지 않다.** 지금 게임에 들어 있는 주요 공정은 **철광석 제련**과 **원유 분별증류 → 촉매분해 → 중합** 둘뿐이며, 그 둘의 실제 구현 기록은 `docs/MATERIAL-SYSTEMS.md`·`docs/PETROCHEMISTRY.md`에 있다. 이 문서는 "다음에 무엇을 열 것인가"의 후보 목록이고, 인용된 코드 근거는 **기존 구현**을 가리킨다.


## 이 문서의 범위

기존 2대 공정에 이어 **세 번째 이후의 주요 화학반응/공정**으로 무엇을 열 것인지, 그 후보를 모은 문서다.

판단 기준은 프로젝트 우선순위 그대로다 — **① 재미 ② 편의성 ③ 과학적 고증**. 고증이 셋째라는 것은 "실제로 그렇다"가 채택 사유가 되지 못한다는 뜻이다. 실제로 그렇더라도 화면에서 읽히지 않거나, 플레이어가 손으로 계량해야 하거나, 실패가 좌절이면 기각한다. 반대로 고증에서 조금 벗어나더라도 **막다른 길에 있는 기존 물질을 되살리고**, **이미 있는 설비를 다시 쓰게 하고**, **성공/실패가 색으로 보이면** 채택 쪽으로 민다.


현재 규모
138 (등록 물질) 126 (팔레트 노출) 14 (카테고리)

선언형 반응 테이블(`ReactionRule`)을 쓰는 물질은 **6종**뿐이고, 나머지 상호작용은 전부 각 물질 `update` 하드코딩이다.

id 여유
110 (남은 id 칸)

물질 id는 `Uint8Array`라 0..255. 최대 사용 145, 은퇴 8개. **id는 병목이 아니다** — 병목은 팔레트 탭 밀도와 문서·i18n·아이콘 3중 갱신 비용이다.

셀당 예산
cells 8bit · aux 16bit · temp 32bit float · overlay 8bit · overlayAux 16bit.

aux를 쓰는 물질이 **44종**이고 Coral은 16비트를 **완전히 소진**했다. 새 공정이 셀당 상태를 요구하면 여기부터 확인할 것.



우선순위 배지는 아래 세 등급으로 붙인다.

| 배지 | 뜻 |
|---|---|
| [A급] | 막다른 길에 있는 기존 물질을 **둘 이상** 동시에 풀고, 엔진 수정이 없거나 아주 작다 |
| [B급] | 재미는 크지만 신규 물질이 3종 이상이거나 엔진 수정을 요구한다 |
| [C급] | 재미의 폭이 좁거나, 다른 공정이 먼저 서야 성립한다 |

---

## 기존 2대 공정에서 뽑은 설계 문법

두 라인을 나란히 놓으면 반복되는 패턴이 아홉 개 나온다. **새 공정 제안은 이 아홉 개를 만족해야 한다.** 만족하지 못하는 항목이 있으면 후보 본문에 그 사실을 적었다.


| 패턴 | 기존 사례 | 새 공정에 주는 규칙 |
|---|---|---|
| **P1. 단계마다 난이도 축이 다르다** | 석유: 증류=온도 구배 / 크래킹=이송 / 중합=열 제거. 제련: 용해=화력 / 환원=재료 배치 | 같은 축을 두 번 요구하면 2단계가 1단계의 반복이 된다. 3단계 공정이면 **축 3개**를 먼저 적고 시작할 것 |
| **P2. 성공과 실패가 같은 입력에서 갈리고, 실패 산물이 보인다** | "그냥 녹이면 Slag / 탄소와 함께면 Iron", "직화면 연소 / 벽 너머로 데우면 증류" | 실패는 에러가 아니라 **다른 물질 한 종**이어야 한다. 실패 산물이 없는 공정은 재설계 |
| **P3. 실패 모드는 폭발이 아니라 손실 또는 스톨** | 에틸렌 과열 = Ash 손실(폭발 아님), 중합 과열 = 스톨(식히면 재개) | 좌절을 만들지 말 것. 식히면 다시 도는 것이 기본값 |
| **P4. 확률 수율이 상위 플레이의 손잡이** | 제련 0.70 → 석회석 플럭스 0.95, 크래킹 0.85/0.60/0.40 | 안 해도 완주되고, 하면 이득인 **선택적 상위 조작**을 하나씩 심을 것 |
| **P5. 밀도 서열이 곧 자동 분리 장치** | 쇳물 8 > 석탄가루 7.5 > 광석 7 > 용융광석 6.5 > 슬래그 5.75 > 석회석 5 | 신규 물질은 **밀도 사다리 위치를 먼저 정한다**. 층이 갈리면 분리기를 만들 필요가 없다 |
| **P6. 온도 구배가 단계를 대신한다** | 260°에서 끓은 증기 → 260° 에틸렌 → 중합창(200°) 초과 → 떠오르며 식다가 촉매층 찬 쪽에서 중합 | 급냉·이송 같은 단계를 **특수 코드로 넣지 말 것**. 제자리 `set`이 온도를 보존한다는 성질이 이걸 공짜로 만든다 |
| **P7. 설비는 무소모, 소모품은 1:1** | Catalyst 영구 무소모 / 석회석·석탄가루는 반응당 1칸 소모 | "공장을 돌린다"가 "같은 셀을 영원히 다시 칠한다"가 되지 않게 |
| **P8. 반응은 읽히는 쪽에 둔다** | Catalyst도 Limestone도 자기 파일엔 반응 코드가 없다. 이웃이 자기 `update`에서 읽어간다 | 한 장의 촉매층이 두 공정을 다 하게 만드는 구조. **새 설비 물질은 가능한 한 `update`를 비워 둘 것** |
| **P9. 관측 가능성** | `glow:{min,max,cool}`로 식는 전선을 보여주고, Smoke 배출이 "환원이 진행 중"이라는 틱 단위 신호 | 중간체는 색·발광·부산물 중 최소 하나로 상태를 노출해야 한다. 돋보기 오버레이가 물질별 평균 온도·구성비를 읽어 준다 |

---

## 피해야 할 함정

기존 2대 공정을 만들며 실제로 밟은 지뢰들이다. **새 공정 제안은 이 표를 통과해야 한다.**


| 함정 | 무슨 일이 있었나 | 새 공정에 주는 규칙 |
|---|---|---|
| **도달 불가능한 온도 게이트** | 크래킹의 850° 순수 온도 게이트. 석유 증기는 전도 0.08 + 응결 1~4%/틱이라 **뜨거워지기 전에 비가 내린다.** 유리한 조건에서 900/1050/1150° × 60/200/600틱 전 구간 회수율 0. 게이트를 통째로 폐기 | 온도 게이트는 **원료의 전도도와 수명(응결·붕괴 확률)과 같이** 계산할 것. "몇 도"만 정하는 건 설계가 아니다 |
| **거짓 통과 ① `holdAt` 함정** | 테스트가 반응 셀 자신의 온도까지 고정 → 1틱째에 이미 게이트 통과. 플레이어가 이겨야 하는 가열 경쟁을 통째로 건너뜀 | 검증 하네스는 **열을 열판에만 주고 원료·산물 온도는 절대 건드리지 않는다** |
| **거짓 통과 ② "한 칸이라도 생겼는가"** | 59칸이 타 없어지고 1칸만 전환돼도 초록불. 회수율 0%가 통과 | 검사는 **장입량 대비 회수율**로 쓸 것 |
| **가연성 부산물은 성립하지 않는다** | 코크스답게 Coal을 남기려 했으나 자연발화 580°·연소 핀 1300°라 생성 즉시 불붙어 남은 원료를 전량 손실시키고 철(1200)·돌(1100) 용기를 스스로 녹임. Ash로 대체 | 부산물은 **완전 불활성**이 기본. 가연성 부산물을 쓰려면 차폐 장치를 같이 설계 |
| **산물이 반응기를 봉인하는 크러스트** | 환원 산물이 그 자리에서 고체로 굳어 용탕을 봉해 반응이 멈춤. 환원을 발열로 취급해 강제 승온시켜 산물이 액체로 가라앉게 해결 | 산물이 반응 계면을 덮으면 공정이 자기 자신을 막는다. **산물의 상·밀도·발열을 셋 다 같이** 볼 것 |
| **다른 액체 안에서 태어나는 물질의 어는점** | 쇳물 어는점을 1100°로 뒀더니 부모(용융광석, 응고 750°) 속에서 태어난 셀이 가라앉기 전에 그 자리에서 얼어 노가 자갈밭이 됨. 650°로 내려 해결 | 신규 물질이 다른 액체 **내부에서** 생성되면, 그 어는점은 **부모의 액체 수명보다 아래**여야 한다 |
| **반응물이 연료를 겸하면 먼저 타 버린다** | 석탄가루 자연발화 580° < 광석 융점 850°. 차폐(`touchingMelt`)로 해결하되 **차폐 명단에 산물까지** 넣어야 표면이 산물로 바뀌는 순간 차폐가 풀리는 2차 문제가 막힌다 | 환원제·연료를 겸하는 원료는 **자연발화점과 공정 온도의 대소를 먼저 확인** |
| **밀도 값 하나가 무관한 계통을 깬다** | Slag를 5.5로 내렸다가 Mud(5.5)와 겹쳐 "진흙엔 가라앉고 슬래그엔 뜬다"로 캘리브레이션된 Thermite(5.6)가 회귀. 게다가 최초 커밋은 "관계는 유지된다"는 **틀린 안심 문구**까지 남겼다 | 밀도 사다리를 건드릴 때는 **그 값 근처를 참조하는 전 계통을 훑을 것**. 부등호 방향만 보고 판단 금지 |
| **`aux`는 폭발을 건너지 못한다** | Debris가 `aux`를 원래 물질 id 저장에 재사용하고 착지는 `spawn`(aux 0). 폭발에 휩쓸린 등유·경유 증기는 유분 태그를 잃는다 | 셀당 상태(`aux`)에 공정 진행도를 담으면 **폭발·`spawn`을 건너면서 초기화**된다. 잃어도 플레이어에게 유리한 방향으로 설계할 것 |
| **자가촉매 폭주** | 사슬 세대 제한이 없으면 수지 한 알이 맵 전체 에틸렌을 전환. 클램프를 빼면 800셀 구름이 전량 전환됨을 확인 | 산물이 반응을 전파하면 **세대 제한 + 읽을 때 클램프**가 필수. 거리 제한이 아니라 사슬 깊이 제한이어야 한다 |
| **발열 튜닝은 "무엇이 먼저 멈추는가"로 정한다** | 반응기 정지 요인이 둘(발열 이탈 / 산물 매몰)일 때 발열이 먼저 물려야 냉각이 의미를 갖는다. 절반 값에선 매몰로 멈추고 **식혀도 재개되지 않았다**(냉각이 장식이 됨) | 정지 요인을 열거하고 **가장 먼저 물리는 것이 플레이어가 조작할 수 있는 축**인지 확인 |
| **판정 순서가 곧 설계** | 크래킹 검사를 응결 검사보다 먼저 두지 않으면 촉매층 위 증기가 먼저 비 내려 라인이 성립하지 않는다 | 한 물질의 `update` 안에서 **검사 순서를 설계 문서에 명시**할 것 |
| **산물의 상(phase)이 자동화 가능 여부를 결정한다** | 컨베이어는 가루·액체만 운반한다. 폴리에틸렌을 고체로 뒀다면 반응기를 비울 방법이 없었다. **가루로 만든 것이 자동 공장을 성립시킨 결정타** | 산물의 상을 정할 때 **"이걸 무엇으로 퍼내는가"를 먼저** 답할 것 |

위험:  절대 하지 말 것
**"실제로 이렇다"만으로 온도·수율·비율을 정하는 것.** 흑색화약은 실제 75:15:10이지만 게임은 1:1:1이다 — 픽셀 브러시로 비율을 계량하는 건 재미가 아니라 노동이라는 명시적 판단이다. 테르밋의 3:1도 같은 이유로 1:1로 양보했다. 새 공정의 화학량론도 같은 기준으로 정한다.


---

## 온도 사다리 지도

새 반응의 온도창이 기존 임계와 겹치면 플레이어가 **같은 장면에서 두 반응을 분리할 수 없게 된다.** 아래는 코드에서 뽑은 점유 현황이다.


| 구간 | 점유하는 것 |
|---|---|
| −196 ~ −40 | 액체 질소 배치(−196) · LN₂ 비등(−100) · 드라이아이스 승화(−40) |
| −12 ~ 2 | 물 심층결빙(−12) · 물 결빙(0) · 꿀 응고 부근(2) |
| 28 ~ 130 | 갈륨 응고 28 / 융해 30 · 효모 사멸 60 · 흰개미 사멸 70 · **물 끓음 100** · 바이러스 치유 100 · 슬라임 융해 130 |
| 150 ~ 320 | 소다 분해 150 · LPG 분획 하한 150 · 레시피 게이트 상한 150 · **중합 상한 200** · 설탕 탄화 200~300 · 아스팔트 연화 200 · 섬광화약 자연발화 200 · 황 자연발화 250 · 등유 비등 260 · 암모날 300 · 경유 비등 320 |
| 340 ~ 400 | [비교적 한산] — 수은 비등 357 · 원유 분획 상한 380 |
| 400 ~ 500 | [430~490 여유] — 초석 분해 400 · LPG 자연발화 400 · 원유 발화점 420 · 나무 상자 점화 500 |
| 560 ~ 860 | 몰텐 알루미늄 응고 560 · 석탄 자연발화 580 · 슬래그 연화·석유 연소온도·황 연소온도 600 · 쇳물 응고 650 · 알루미늄 융해 660 · 용융 소금 응고 700 · 용융 광석 응고 750 · 소금 융해 800 · **철광석 융해 850** |
| 900 ~ 1050 | [거의 비어 있음] — 니크롬 줄열 포화 1050 · 용융 유리 응고 1050 |
| 1100 ~ 1450 | 돌↔용암 1100 · 유리 융해 1150 · **철 융해 1200** · 모래 융해 1250 · 에틸렌 코킹 1250 · 몰텐 U238→핵폐기물 1400 · 니크롬 융해 1450 |
| 1500 ~ 2800 | [1550~1750 여유] — 우라늄 멜트다운 1500 · 산소 강제통풍 상한 1800 · 우라늄 임계 2000 · 테르밋 2800 |

팁:  여유가 남은 네 구간 — 새 공정의 온도창은 여기서 고를 것
완전히 빈 곳은 아니다. 아래 넷은 **기존 임계 사이에 ±20° 이상 간격이 남아 있는** 대역이고, 각 카드에 그 구간을 이미 쓰고 있는 임계를 함께 적었다.

340 ~ 400
"물은 넘겼지만 불은 아직"인 대역. **플라스틱 열성형·연화**에 딱 맞는다. 다만 수은 비등 357°·원유 분획 상한 380°가 안에 있으니 ±20° 여유를 둘 것.

410 ~ 500
원유 발화점 420°와 나무 상자 점화 500°가 양끝을 잡고 있어 **실제 여유는 430~490°**다. 그래도 이 구간에는 상변화 임계가 하나도 없어 "불꽃 없이 데워서만 일어나는" 공정을 놓기에 가장 좋다 — 목재 건류, 접촉법 촉매 산화, 암모니아 합성창이 여기로 간다.

900 ~ 1050
석회 하소·도자기 소성·용융염 전해가 정확히 이 대역이다. 게다가 **니크롬 줄열 상한이 1050°**라 "전기만으로 도달 가능한 최고 온도"라는 성질까지 붙는다 — 전기 가마가 성립한다.

1500 ~ 2000
우라늄 멜트다운 1500·산소 강제통풍 상한 1800·우라늄 임계 2000이 양끝과 중간을 잡고 있어 **실제 여유는 1550~1750°**다. **전로 취입·아크 용해**가 여기. 다만 산소 강제통풍 상한이 1800°라, 연소로 여기 도달하려면 산소 송풍이 필수가 되는 좋은 제약이 붙는다.




---

## 무기·광물 계통

### 석회 순환 — 하소 → 소석회 → 탄산화 [A급]

- **들어가는 물질** — Limestone(석회석) · Water · CO₂ · Steam · 열원(Coal / Fire / Lava / 니크롬) · Stone·Iron 용기
- **추가해야 하는 물질** — **생석회 Quicklime**(가루, 강한 발열·흡습) · **소석회 Slaked Lime**(가루, 이 게임 최초의 **염기**)
- **필요한 전기장치/설비** — 밀폐 가마(Stone/Diamond/Heatpipe) · 니크롬 전기 가마(줄열 상한 1050°가 하소 900°를 정확히 넘긴다) · 컨베이어(생석회 배출) · 펌프(소화용 물 공급)
- **엔진에 필요한 수정사항** — **없음 — 물질 레이어만으로 성립.** 단 잠긴 셀에서 CO₂ 부산물이 못 나오는 기존 제약이 있으므로, "웅덩이 바닥 가마"를 지원하려면 `byproduct` 스폰 경로 확장(엔진 총괄 3번)이 선택적으로 필요하다
- **설명 및 제안 근거** — 석회석을 900°로 구우면 CO₂를 뱉고 생석회가 되고, 물을 부으면 격렬히 발열하며 소석회가 되고, 소석회를 공기 중 CO₂에 오래 두면 다시 석회석으로 굳는다. **닫힌 순환 하나가 통째로 열린다.**
  - *(a) 무엇이 비어 있나* — Limestone은 반응 상대가 **제련 플럭스 하나뿐**이고 만드는 법이 없다. CO₂는 소비처가 **자연 소산뿐**이라 탄소 순환이 반쪽이다. 그리고 **염기 물질이 0종**이라 산-염기 축 자체가 성립하지 않는다.
  - *(b) 무엇을 재사용하나* — 온도 게이트 상변화 관용구(제자리 `set`은 온도 유지), 900~1050 빈 온도 구간, 물 소모형 수화(Cement의 관용구 그대로), `glow` 램프, Smoke/CO₂ 배출 신호. **P1**의 축 3개가 자연스럽게 갈린다: 하소=화력 확보 / 소화=물 계량(발열 폭주 관리) / 탄화=시간과 기체 노출.
  - *(c) 비용·리스크* — 신규 2종. 리스크는 생석회 소화의 발열이 물을 즉시 끓여 **반응이 자기 물을 날려 버리는 자기 질식**(함정 "크러스트"의 변형)이다. 발열량을 물 끓는점 아래로 잡거나, 소석회를 흡습성으로 만들어 수증기도 먹게 하면 풀린다.

### 점토 소성 — 도자기·벽돌 [A급]

- **들어가는 물질** — Dirt · Mud · Sand · Water · 열원
- **추가해야 하는 물질** — **점토 Clay**(가루, 물을 먹으면 성형 가능) · **벽돌 Brick**(고체) · **도자기 Ceramic**(고체, `acidResistant` + 고융점 + 낮은 전도율)
- **필요한 전기장치/설비** — 가마(밀폐 용기 + 열원) · 니크롬 전기 가마 · 컨베이어
- **엔진에 필요한 수정사항** — **없음 — 물질 레이어만으로 성립.** `brickPattern` 렌더 태그는 이미 Wall이 쓰고 있어 벽돌 아이콘·캔버스 렌더가 **선언 한 줄로 따라온다**
- **설명 및 제안 근거** — 흙+물→점토, 점토 건조→생지, 920°에 구우면 벽돌, 1000°까지 올리면 도자기.
  - *(a)* 건축재가 Stone/Concrete/Obsidian/Glass/Iron/Aluminum 6종뿐이고, "부어서 굳히는" 경로는 Cement→Concrete 하나다. Dirt/Mud는 밭 역할 외 반응이 거의 없다. 소성(kiln·ceramic·clay) 관련 코드는 **0건**이다.
  - *(b)* 900~1050 빈 온도 구간, `brickPattern`·`colorVary` 렌더 태그, 겹침(overlay) 수분 흡수, Cement의 물 소모 관용구. **도자기가 `acidResistant` 고온 용기가 되면 황산·아크로 후보의 반응기 문제를 같이 푼다** — 내산 고체는 이미 13종 있지만(Wall·Glass·Diamond·Nichrome 등) 전부 팔레트에서 그냥 꺼내는 것이고, **만들어서 얻는 내산·내화 용기가 없다.**
  - *(c)* 신규 3종. 리스크는 낮다. 다만 **점토의 상(phase)** 결정이 관건 — 가루면 컨베이어로 나르고, 액체면 붓고 굳히는 재미가 산다. 젖은 점토를 `viscosity` 높은 액체로, 마른 점토를 가루로 두 종 나누면 4종이 되어 비싸진다. 1종 + 겹침 수분으로 축약할 것.

### 슬래그 → 시멘트 재활용 [A급]

- **들어가는 물질** — Slag(제련 실패 산물) · Limestone · Cement(기존) · 열원
- **추가해야 하는 물질** — **없음(0종).** 선택적으로 생석회(석회 순환과 공유)
- **필요한 전기장치/설비** — 소성로 · 컨베이어(굳은 슬래그 회수) · 전자석(철분 회수)
- **엔진에 필요한 수정사항** — **없음 — 물질 레이어만으로 성립**
- **설명 및 제안 근거** — 뜨거운 Slag에 석회석을 먹여 950°에 구우면 Cement가 된다.
  - *(a)* Slag는 **소비처가 0**이고(뜨거우면 흐르고 식으면 굳는 것이 전부), Cement는 **만드는 법이 0**이다(팔레트에서만 나온다). 막다른 길 두 개가 서로를 마주 보고 있다.
  - *(b)* 신규 물질 **0종**. 기존 물질 3종의 `update`에 분기만 추가한다. **투자 효율이 이 문서에서 가장 높은 항목.**
  - *(c)* 비용 거의 0. 리스크는 "제련 실패가 이제 손해가 아니게 되어 P2(성공/실패 대비)가 흐려지는 것"이다 — 회수율을 낮게(예: 슬래그 2칸 + 석회석 1칸 → 시멘트 1칸) 잡아 **실패는 여전히 손해지만 완전 손실은 아니다**로 유지할 것.

### 철근 콘크리트 [B급]

- **들어가는 물질** — Iron · Metal Powder · Cement · Water · Concrete
- **추가해야 하는 물질** — **철근 콘크리트 Reinforced Concrete**(고체, `durability` 높음)
- **필요한 전기장치/설비** — 거푸집(Wall/Stone) · 펌프(타설) · 컨베이어
- **엔진에 필요한 수정사항** — **없음 — 물질 레이어만으로 성립.** `Material.durability`는 이미 폭발 계통이 읽는 필드인데 **현재 어떤 물질도 명시 선언하지 않았다** — 이 후보가 첫 사용자가 된다
- **설명 및 제안 근거** — 철 격자를 짜고 그 위에 시멘트를 부어 물을 주면, 격자에 닿은 시멘트만 철근 콘크리트가 된다.
  - *(a)* Concrete는 Cement의 산물이면서 **그 뒤로 아무것도 하지 않는** 전형적 막다른 길이다. `durability` 필드는 선언 0종으로 사실상 미사용이다.
  - *(b)* Cement의 기존 수화 관용구를 그대로 쓰고, 조건에 "8이웃에 Iron/Metal Powder"를 하나 더 얹는 것이 전부. 폭발 계통은 이미 파괴력 대 내구력을 비교하고 있어 **배선이 이미 끝나 있다**.
  - *(c)* 신규 1종. 리스크는 "방어 건축이 너무 강해지면 폭발이 심심해지는 것" — 성형작약의 관통 제트와 반물질은 여전히 통하게 두어 **해법이 있는 방어**로 만들 것.

### 핵폐기물 유리화 [B급]

- **들어가는 물질** — Nuke Waste · Sand / Molten Glass · 열원(1250°)
- **추가해야 하는 물질** — **유리화 폐기물 Vitrified Waste**(고체, `radiation` 대폭 감소 + `explosionProof` + `jetProof`)
- **필요한 전기장치/설비** — 용해로 · 원격 조작(컨베이어·펌프·전자석) · 납 대용 차폐벽(Stone은 이미 방사선을 막는다)
- **엔진에 필요한 수정사항** — **없음 — 물질 레이어만으로 성립**
- **설명 및 제안 근거** — 핵폐기물을 모래와 함께 1250°로 녹여 유리에 가두면, 선량이 8분의 1로 떨어진 안정 고체가 된다.
  - *(a)* Nuke Waste는 U238 사이클의 **종점이고 되돌릴 경로가 없다.** 방사선 계통은 죽이는 규칙만 있고 **관리하는 놀이가 없다.**
  - *(b)* 모래 융해 1250°와 유리 응고 1050° 이력이 이미 있고, 방사선은 태그 구동 엔진 패스라 **선량 숫자 하나만 낮추면 배선이 끝난다.** 돋보기·열지도가 성과를 즉시 보여준다(P9).
  - *(c)* 신규 1종. 리스크는 "방사능 청소가 너무 쉬워져 우라늄 사고의 무게가 사라지는 것" — 용해 중에는 **선량이 오히려 올라가게**(액체 상태가 더 위험) 만들어 작업 자체가 위험하게 두면 긴장이 유지된다.

### 강화유리·유리 성형 [C급]

- **들어가는 물질** — Sand · Glass · Molten Glass · Water(급냉) · Broken Glass
- **추가해야 하는 물질** — **강화유리 Tempered Glass**(고체, `shatterId`가 Broken Glass, `durability` 높음)
- **필요한 전기장치/설비** — 몰드 · 펌프(급냉수) · 컨베이어
- **엔진에 필요한 수정사항** — **없음 — 물질 레이어만으로 성립**
- **설명 및 제안 근거** — 용융 유리를 물로 급냉하면 강화유리, 천천히 식히면 보통 유리.
  - *(a)* Broken Glass는 상호작용이 자기 상전이 하나뿐이고, Glass↔Molten Glass 왕복에 **플레이어의 선택이 개입할 여지가 없다.**
  - *(b)* `shatterId`(현재 Glass 1종만 선언)·`durability`·냉각 속도. **냉각 속도가 산물을 가르는 것은 이 게임에 아직 없는 축**이라 P1의 새 난이도 축이 하나 생긴다.
  - *(c)* 신규 1종. 리스크: 냉각 속도를 셀이 기억해야 하는데 `aux`를 쓰면 폭발을 못 건넌다. **인접 물 셀 개수를 그 틱에 세는 방식**으로 무기억 구현할 것.

---

## 산-염기와 전기화학

### 염수 전기분해 — 클로르알칼리 [A급]

- **들어가는 물질** — Saltwater · Spark · Wire / Iron / Nichrome · Battery / LFP Battery / Turbine / Solar Panel · **Chlorine(기존)** · **Hydrogen(기존)** · Mesh(격막)
- **추가해야 하는 물질** — **가성소다 Lye**(액체, 강염기) · 선택: **표백제 Bleach**(액체)
- **필요한 전기장치/설비** — 전원 4종 중 하나 · 전선 · **Mesh 격막**(`porous` + `latticeFilter`가 이미 "체커보드 밝은 칸만 유체 통과"라 전해조 격막의 정확한 구현체다) · 펌프(전해액 순환)
- **엔진에 필요한 수정사항** — **전기분해의 매질별 산물 분기.** 현재 물/염수/산 **세 매질이 전부 같은 산물**(수소 + 산소)을 낸다. 분해 함수가 이미 매질 id를 구분하고 있으므로 **분기 한 줄** 수준이며, `Material.electrolysis` 태그로 데이터화하면 이후 매질이 늘어도 코드가 안 는다(엔진 총괄 9번)
- **설명 및 제안 근거** — 소금물에 전류를 흘리면 양극에서 염소, 음극에서 수소, 남은 액이 가성소다가 된다.
  - *(a)* Chlorine은 **제조법이 0**이고(자기 파일 주석이 "표백제가 없어서 직접 배치하는 위험물"이라고 자인한다), 염기 물질이 0종이며, 염수 전기분해가 담수와 완전히 동일하다. 게다가 **전기 계통 전체에 화학이 4개뿐**이고, 터빈이 자기 보일러 물을 전기분해해 버리는 문제를 게이트로 막은 이력이 있어 **"전기가 화학을 일으키는 것"이 현재는 버그로 취급돼 격리된 상태**다.
  - *(b)* 전원 4종·도체 12종·Mesh·펌프·컨베이어가 전부 이미 있다. **신규 물질 1종으로 전기 계통과 화학 계통이 처음 제대로 맞물린다.** P8 그대로 — 새 설비 없이 기존 배선만으로 성립.
  - *(c)* 신규 1~2종 + 작은 엔진 수정 1건. 리스크: 염소가 **생물 살상 기체**라 자유 생산이 가능해지면 생명 계통이 너무 쉽게 지워진다. 생산 속도를 낮게 잡고, 염소가 무거운 기체라 **바닥에 고이는 성질**을 그대로 두어 관리 부담을 남길 것.

### 산-염기 중화와 pH [A급]

- **들어가는 물질** — Acid · Acid Vapor · Acid Slime · Soda(기존 중화제) · Water · Saltwater · Limestone · Concrete · Coral(전부 실제로는 탄산칼슘)
- **추가해야 하는 물질** — 소석회(석회 순환과 공유) · 가성소다(클로르알칼리와 공유) · **지시약 용액 Indicator**(액체, 접촉 산성도에 따라 색이 바뀜)
- **필요한 전기장치/설비** — 펌프(중화조 순환) · 컨베이어 · Mesh(중화탑 충전재)
- **엔진에 필요한 수정사항** — **`acidHydrogen` → `acidProduct` 일반화**(엔진 총괄 1번). 현재 태그는 산물이 **수소로 고정**돼 있어 "석회암 + 산 → CO₂"를 표현하지 못한다. 산물까지 데이터로 받게 넓히면 소다의 중화까지 같은 표에 들어간다
- **설명 및 제안 근거** — 산 웅덩이에 염기를 부으면 발열하며 중화되고, 지시약이 그 진행을 색으로 보여준다. pH는 **숫자 필드가 아니라 색**으로 구현한다.
  - *(a)* 산-염기 반응은 게임 전체에 **정확히 하나**(소다 + 산 → 소금물)뿐이고, 나머지 "산 상호작용"은 전부 **중화가 아니라 부식**이다 — 부식 판정이 상대 물질이 무엇인지 전혀 보지 않고 상(phase)만 보므로, 석회암·시멘트·콘크리트·산호가 산에 **조용히 사라지기만 한다.**
  - *(b)* 소다의 중화 관용구, 반응 테이블의 발열/흡열, `auxPalette`(aux를 색 인덱스로 읽는 렌더 태그 — 지시약이 정확히 이 형태), 겹침 유체. **pH를 필드로 만들지 않는 것이 핵심 설계 판단이다** — 셀당 예산이 빠듯하고(aux 44종 사용, Coral 완전 소진), 숫자보다 색이 P9에 맞는다.
  - *(c)* 신규 1종(+ 2종 공유) + 태그 일반화 1건. 리스크: **태그 일반화는 명단 드리프트를 부른다.** `acidHydrogen`이 이미 겪은 문제이며, 해법도 이미 있다 — 레지스트리를 훑어 **태그 명단 자체를 비교하는 검사**를 붙이면 새로 태그할 때 검사가 먼저 깨지며 새 명단을 출력한다. 같은 형태의 검사를 `acidProduct`에도 붙일 것.

### 비누화 [B급]

- **들어가는 물질** — Water · Saltwater · **Soap(기존)** · Soapy Water(기존) · 열원
- **추가해야 하는 물질** — **유지 Tallow**(액체, 가연성·고점도) · **글리세린 Glycerin**(액체, 부산물) · 가성소다 또는 소석회(공유)
- **필요한 전기장치/설비** — 가열 솥(니크롬 전기 가열이면 온도 제어가 쉽다) · 펌프 · 컨베이어(비누 배출)
- **엔진에 필요한 수정사항** — **3체 이상 레시피 공용 헬퍼**가 있으면 깨끗하다(엔진 총괄 4번). 없으면 "유지 + 염기 → 중간체" → "중간체 가열 → 비누 + 글리세린" 2단으로 우회 가능(갈륨 라인이 중간 물질을 하나 늘려 우회한 것과 같은 패턴)
- **설명 및 제안 근거** — 기름과 강염기를 데우면 비누와 글리세린이 나온다.
  - *(a)* **Soap은 팔레트에서 직접 칠하는 물질이며 아무것으로도 만들 수 없다.** 반응 상대도 물 하나뿐이다. 비누화 관련 코드는 0건이다.
  - *(b)* Soap의 기존 용해 반응 테이블, Soapy Water의 바이러스 제거·Bubble 생성, 온도창 관용구. **글리세린이 질산 라인의 니트로와 곧바로 연결된다** — 신규 1종이 두 계통을 잇는다.
  - *(c)* 신규 2~3종. 리스크: 유지가 `combustible`이면 가열 중 불붙어 함정 "반응물이 연료를 겸하면 먼저 탄다"를 그대로 밟는다. **자연발화점을 비누화 온도창 위로** 두거나, 직화 시 연소·간접열 시 반응이라는 기존 원유의 분기 관용구를 그대로 복사할 것.

### 구리 제련과 전기도금 [B급]

- **들어가는 물질** — Coal Powder · Limestone · Acid · Spark · 전원 4종 · Iron(도금 대상) · Slag
- **추가해야 하는 물질** — **구리광석 Copper Ore**(가루, `magnetic` 아님 — 자력선별로 철광석과 갈리는 재미) · **구리 Copper**(고체, `conductive` + `wiring` + 최고 전도율) · **황산구리 용액 Copper Sulfate**(액체, 전해액) · 선택: 용융 구리
- **필요한 전기장치/설비** — 전원 · 전선 · 전극(구리 양극 / 철 음극) · 펌프 · 전자석(선별)
- **엔진에 필요한 수정사항** — 전기분해 매질별 산물 분기(클로르알칼리와 공유) · **새 도체 등록 절차**(도체 명단 배열에 **append만** 해야 하고 손실 테이블에 대응 항목이 필요하다 — 누락하면 브라우저 로드 시 가드가 throw한다)
- **설명 및 제안 근거** — 구리광석을 제련해 조동을 얻고, 황산구리 전해액에 담가 전기로 정련하거나 철 위에 도금한다.
  - *(a)* 도금(plating/anode/cathode) 관련 코드는 **0건**이다. 전기·금속·용액이 전부 갖춰져 있는데 **조합만 없다.** 도체 12종 중 진짜 "전선다운 금속"이 Iron·Wire·Nichrome·Aluminum뿐이다.
  - *(b)* 제련 라인의 전 구조(용해 → 환원 → 수율 → 슬래그)를 **두 번째 광석으로 그대로 재상연**한다 — 이미 검증된 문법 위에 얹히므로 설계 리스크가 낮다. 자력선별이 여기서 **의미 있는 선택**이 된다(철광석은 붙고 구리광석은 안 붙는다).
  - *(c)* 신규 3~4종. 리스크: 제련 라인의 복제라 P1(단계마다 다른 축)을 위반하기 쉽다. **정련 단계를 전기로 돌려** 축을 "화력"이 아니라 "회로 설계"로 바꿔야 재상연이 아니라 확장이 된다. 도금은 "표면 1칸만 바뀐다"라 관측성(P9)이 약하니 색 대비를 크게 줄 것.

### 아크 용해로 [B급]

- **들어가는 물질** — Iron · Metal Powder · Slag · Broken Glass · Spark · Nichrome · 전원 4종
- **추가해야 하는 물질** — **흑연 전극 Graphite**(고체, `conductive` + 초고온 내성 + 소모품)
- **필요한 전기장치/설비** — 대전력(배터리 다수 또는 터빈) · 전선 · 전극 2개 · 도자기/다이아몬드 노벽
- **엔진에 필요한 수정사항** — **아크 방전 훅.** 두 도체 사이의 **빈 칸**에 전류가 뛰며 열을 놓는 규칙이 지금 없다. 스파크 계통에 "갭 점프 + 발열" 분기를 추가해야 한다. 난이도 중
- **설명 및 제안 근거** — 전극 두 개를 살짝 띄우고 대전력을 걸면 아크가 1900°로 타며 고철을 녹인다.
  - *(a)* **니크롬 줄열이 1050°에서 포화**돼 철(1200°)을 못 녹인다. 즉 **전기로 제련하는 것이 현재 원천적으로 불가능**하다. 열원 위계가 석탄불 1300° / 맨 불 ~1000° / 푸른 불꽃 1800°로 전부 연소에 묶여 있다.
  - *(b)* 1500~2000 빈 온도 구간, 스파크의 도체 클래스·세기 패킹(16비트 aux, 이미 충분히 넓다), 산소 송풍의 온도 핀 관용구. **"전기를 많이 모으면 불 없이 녹인다"**는 전기 계통 최초의 진짜 보상이 된다.
  - *(c)* 신규 1종 + 엔진 수정 1건(중). 리스크: 아크가 **무한 열원**이 되면 화력 확보라는 축(P1)이 통째로 무의미해진다. 전극을 **소모품**으로 두고(P7의 "소모품은 1:1"), 대전력을 실제로 모아야 도달하게 만들 것.

### 연료전지 [B급]

- **들어가는 물질** — **Hydrogen(기존)** · **Oxygen(기존)** · Water(산물) · Wire · Nichrome
- **추가해야 하는 물질** — **연료전지 Fuel Cell**(고체, 전기 **소스**)
- **필요한 전기장치/설비** — 전선 · 부하(니크롬·펌프·전자석) · 수소 저장조(밀폐 용기)
- **엔진에 필요한 수정사항** — **펄스 소스 신설.** 지금 전기 소스는 배터리 2종·터빈·태양광 넷뿐이고, 장치 몸체 플러드가 `SimContext`에 전용 필드를 요구한다(빠뜨리면 틱당 재플러드로 성능이 붕괴한다). 난이도 중
- **설명 및 제안 근거** — 수소와 산소를 먹여 전기를 내고 물을 뱉는다.
  - *(a)* 수소는 **생산 경로가 이미 5개 이상**(전기분해, 활성 알루미늄, 산+금속, 나트륨, 고온 알루미늄+수증기)인데 **소비처가 폭발뿐**이다. 배터리는 전기화학 셀이 아니라 그냥 펄스 주입기다.
  - *(b)* 수소 연소 반응(수소+산소+점화 → 양쪽 수증기)이 이미 있어 화학은 다 서 있다. 태양광 패널의 소스 구조를 그대로 복제한다.
  - *(c)* 신규 1종 + 엔진 수정 1건(중). 리스크: **수소는 폭발한다.** 연료전지가 수소를 안전하게 소비하면 "수소 = 위험물"이라는 긴장이 사라진다. 저장조가 새면 여전히 터지도록, 전지 자체는 인접 불꽃에 파괴되도록 둘 것.

### 알루미늄 전해제련 [C급]

- **들어가는 물질** — Molten Salt(기존, 융점 800°) · Spark · 전원 · **Molten Aluminum(기존)**
- **추가해야 하는 물질** — **알루미나 Alumina**(가루) · 흑연 전극(아크로와 공유)
- **필요한 전기장치/설비** — 대전력 · 전해조(Stone/도자기) · 전극 · 컨베이어
- **엔진에 필요한 수정사항** — 전기분해 매질별 산물 분기(공유)
- **설명 및 제안 근거** — 용융염에 알루미나를 녹여 대전류를 흘리면 알루미늄이 바닥에 고인다.
  - *(a)* Molten Salt는 상호작용이 자기 상전이 하나뿐이다. 알루미늄은 **가루를 660°에 녹여 주조하는 왕복이 이미 있지만**(`npm run test:aluminum`이 지키는 경로), **광석에서 뽑는 경로는 없다** — 그래서 철만 광석 사슬을 갖는다. 900~1050 구간도 비어 있다.
  - *(b)* 알루미나는 `docs/MATERIAL-IDEAS.md`에 **"그 자체로 할 일이 없는 불활성 흰 가루"라는 이유로 보류**된 항목이다. 이 후보는 그 보류 사유를 정면으로 뒤집는다 — **쓸 데가 생기면 보류 사유가 소멸한다.** 승계 판정의 정본은 [[Web sandbox 프로젝트/구상/새 물질 후보]]의 보류 항목 표에 있다(**조건부 승계** — 내화재 또는 전해 원료, **둘 중 하나만 서도 보류 사유가 소멸한다.** 단 어느 쪽이든 반응 잔류물로는 넣지 않는다).
  - *(c)* 신규 2종(1종은 아크로와 공유). 리스크: 전기 소모가 크다는 고증을 반영하면 **전원 건설이 지겨운 노동**이 된다. 요구 전력을 "배터리 두어 개"로 낮게 잡을 것(우선순위 ②가 ③보다 위다).

### 표백제와 염소 순환 [C급]

- **들어가는 물질** — **Chlorine(기존)** · Acid · Water · 소석회/가성소다(공유)
- **추가해야 하는 물질** — **표백제 Bleach**(액체)
- **필요한 전기장치/설비** — 펌프 · 밀폐 반응조
- **엔진에 필요한 수정사항** — **없음 — 물질 레이어만으로 성립**(2체 반응 테이블 두 줄)
- **설명 및 제안 근거** — 염소를 염기 용액에 흡수시키면 표백제, 표백제에 산을 부으면 다시 염소가 나온다.
  - *(a)* Chlorine의 원래 제조 경로가 표백제인데 **미구현이라 직접 배치**한다는 사실이 Chlorine 소스 주석과 도감에 **자인돼 있다.** Chlorine은 반응 상대가 "생물 지우기" 한 규칙뿐이다.
  - *(b)* 반응 테이블 2줄. **염소를 액체로 안전하게 보관했다가 필요할 때 산으로 꺼내는** 저장/방출 놀이가 생겨, 클로르알칼리가 만든 염소에 용도가 붙는다.
  - *(c)* 신규 1종. 리스크: 표백제가 생물을 직접 죽이면 염소의 정체성과 겹친다. **표백제는 바이러스·슬라임만 지우고 식물은 못 죽이게** 차등을 둘 것(알코올·과산화수소·비눗물이 이미 각기 다른 소독 모델을 갖고 있다).

---

## 야금 심화

### 강철 제련 — 2단계 제련과 전로 취입 [A급]

- **들어가는 물질** — **Molten Iron(기존)** · Coal Powder · **Oxygen(기존)** · Limestone · Slag · Iron
- **추가해야 하는 물질** — **선철 Pig Iron**(액체, 탄소 과잉 — 취성) · **강철 Steel**(고체, `durability` 높음·자성) · **용융 강철 Molten Steel**(액체)
- **필요한 전기장치/설비** — 전로(밀폐 도가니) · **산소 송풍**(인접 Oxygen 1칸당 화염 온도 +250°, 상한 1800°라는 기존 규칙이 그대로 취입 장치가 된다) · 펌프 · 전자석
- **엔진에 필요한 수정사항** — **없음 — 물질 레이어만으로 성립.** 선택적으로 이웃 셀 온도 조건(엔진 총괄 5번)이 있으면 "찬 고철을 넣어 온도를 떨어뜨린다"를 데이터로 쓸 수 있다
- **설명 및 제안 근거** — 지금의 제련은 **쇳물에서 바로 철**이 나온다. 여기에 한 단계를 끼운다 — 탄소를 많이 먹인 쇳물은 **선철**(굳으면 잘 깨진다)이 되고, 그 선철에 **산소를 불어 넣어 탄소를 태워 내면** 강철이 된다.
  - *(a)* 제련 라인의 종점이 Iron 하나이고, 산화·탈탄 개념이 없다. 산소는 연소 부스터로만 쓰인다. 1500~2000 온도 구간이 비어 있다.
  - *(b)* 산소 송풍의 온도 핀·푸른 불꽃 승격이 이미 있고, 환원 발열로 강제 승온시키는 관용구(크러스트 함정의 해법)가 그대로 필요하다. **P1의 새 축이 "기체 취입 타이밍"**이라 기존 두 축(화력·재료 배치)과 겹치지 않는다. **P4가 완벽하게 맞는다** — 취입을 안 하면 선철(쓸 수는 있지만 잘 깨짐), 하면 강철.
  - *(c)* 신규 3종. 리스크: 제련 카테고리가 5종 → 8종이 되어 탭이 두꺼워진다. **선철을 생략하고 "쇳물 + 산소 → 강철"** 2단으로 축약하면 신규 2종으로 줄지만 P2(실패 산물이 보인다)가 약해진다. 선철을 남기는 쪽을 권한다.

### 목재 건류 — 숯 [A급]

- **들어가는 물질** — Wood · Sawdust · 열원 · 밀폐 용기 · **Coal / Coal Powder(대체 대상)**
- **추가해야 하는 물질** — **숯 Charcoal**(고체 + 가루 겸용이면 2종, 가루 1종으로 축약 가능) · **목가스 Wood Gas**(기체, 가연성) · 선택: 목타르
- **필요한 전기장치/설비** — 밀폐 가마(공기 차단이 조건) · 니크롬 전기 가마 · 컨베이어
- **엔진에 필요한 수정사항** — **없음 — 물질 레이어만으로 성립.** "산소가 없을 때"는 인접 Fire/Oxygen 부재 검사로 표현된다 — 기존 원유의 "직화면 연소, 아니면 공정" 분기 함수를 **그대로 반전해 쓰면 된다**
- **설명 및 제안 근거** — 나무를 공기 없이 450°로 구우면 가연성 가스를 뱉고 숯이 남는다.
  - *(a)* **제련용 탄소를 확보하는 경로가 팔레트뿐이다.** Wood는 태우는 것 외에 하는 일이 없고(흰개미 먹이 제외), 410~500 온도 구간이 가장 한산하다.
  - *(b)* 연소 회피 게이트, 밀폐 용기 관용구, `Combustible.burnTemp`(연료별 핀 온도). **숯이 석탄가루를 대체하면 제련 라인이 "채굴"에서 "재배"로 바뀐다** — 식물을 길러 나무를 만들고, 구워서 숯을 만들고, 그 숯으로 철을 뽑는 **완전 자급 사슬**이 처음 성립한다.
  - *(c)* 신규 2종. 리스크: 함정 "가연성 부산물"을 정면으로 밟는다 — 목가스가 가마 안에서 터지면 반응기가 파괴된다. **그게 재미다**(P3의 예외를 의도적으로 허용하되, 배출구를 만들면 피할 수 있게). 단 숯 자체의 자연발화점은 석탄과 같이 580° 이상으로 두어 가마 안에서 자기 산물이 타지 않게 할 것.

### 아말감 금 추출 [C급]

- **들어가는 물질** — **Mercury(기존)** · Sand · Water · 열원(357° 수은 비등)
- **추가해야 하는 물질** — **금광석 Gold Ore**(가루) · **금 Gold**(고체, `conductive` + `acidResistant`) · **아말감 Amalgam**(액체)
- **필요한 전기장치/설비** — 증류 회수기(수은 비등 357° — 기존 환류 헬퍼 그대로) · 펌프 · 컨베이어
- **엔진에 필요한 수정사항** — **없음 — 물질 레이어만으로 성립**
- **설명 및 제안 근거** — 금 섞인 모래에 수은을 부으면 금만 녹아 아말감이 되고, 데우면 수은이 날아가고 금이 남는다(그 수은은 응결시켜 회수한다).
  - *(a)* **Mercury는 반응이 0건이다.** 금속인데 산-수소 태그도 없고(수소보다 아래라 고증상은 정확), 아말감·산화수은 등 화학이 하나도 없다. 등급 A 고립 물질 바로 다음 순위다.
  - *(b)* 석유 증류의 환류 헬퍼(끓는점 초과 시 재증발 → 응결)를 **그대로 재사용**한다. 수은 비등 357°가 340~400 한산 구간에 있다.
  - *(c)* 신규 3종으로 비싸다. 리스크: 금이 "그냥 비싼 것"에 그치면 P7 위반(모으기만 하고 쓸 데가 없다). **금을 최고 전도체 + 내산 전극**으로 두어 전기도금·전해 라인이 실제로 요구하게 만들 것. 그 전에 구리 제련이 서 있어야 하므로 순서상 뒤다.

---

## 유기·석유화학 확장

### 황 연소 → SO₂ → 황산 [A급]

- **들어가는 물질** — **Sulfur(기존)** · Oxygen · Water · Steam · **Catalyst(기존)** · Acid(비교군)
- **추가해야 하는 물질** — **이산화황 SO₂**(기체, 무거움·독성) · **황산 Sulfuric Acid**(액체, 강산 + 탈수 성질)
- **필요한 전기장치/설비** — 연소로 · **촉매 지붕**(기존 크래킹 설비의 배치를 그대로) · 물 자켓(흡수탑) · 펌프
- **엔진에 필요한 수정사항** — **없음 — 물질 레이어만으로 성립.** "촉매가 있어야만" 반응하는 것을 테이블로 쓰려면 `ReactionRule.catalystRequired`가 필요하지만(엔진 총괄 2번), `update` 안에서 이웃 촉매를 검사하면 지금도 된다 — 크래킹이 정확히 그 방식이다
- **설명 및 제안 근거** — 황을 태우면 SO₂, 촉매층을 450°로 지나가면 SO₃, 물에 흡수시키면 황산.
  - *(a)* Sulfur는 반응 상대가 **흑색화약 조합 하나뿐**이다. 산은 액체·기체 2종이 있는데 **만드는 법이 없다.** 410~500 온도 구간이 비어 있다.
  - *(b)* **Catalyst가 세 번째 공정을 맡는다** — 한 장의 촉매층이 크래킹·중합에 이어 산화까지 하는 것은 P8의 가장 좋은 확장이다. 황 자연발화점 250°(게임 최저)라 점화가 쉽고, 연소 온도 600°(낮음)라 반응기를 안 녹인다 — **이미 이 공정에 맞게 튜닝돼 있는 것처럼 보인다.**
  - *(c)* 신규 2종. 리스크: 황산이 기존 Acid와 역할이 겹친다. **차별점을 "부식"이 아니라 "탈수"로** 둘 것 — 설탕을 탄소로 만들고, 나무를 검게 태우고, 물을 빨아들이며 발열하는 쪽으로 가면 Acid와 완전히 다른 물질이 된다. SO₂가 독가스라 생명 계통과 겹치는 것도 주의(염소와 차등을 둘 것).

### 질산 제조와 니트로화 [B급]

- **들어가는 물질** — **Saltpeter(기존)** · **Nitro(기존)** · Water · 열원
- **추가해야 하는 물질** — **질산 Nitric Acid**(액체) · 황산(공유) · 글리세린(비누화와 공유)
- **필요한 전기장치/설비** — 증류기(환류 헬퍼) · 냉각조(반응열 제거) · 펌프
- **엔진에 필요한 수정사항** — **3체 이상 레시피 공용 헬퍼**가 있으면 깨끗하다(질산 + 황산 + 글리세린). 없으면 2단으로 우회
- **설명 및 제안 근거** — 초석에 황산을 붓고 데워 질산을 증류하고, 그 질산으로 글리세린을 니트로화한다.
  - *(a)* **Nitro는 팔레트에서만 나온다.** Saltpeter는 반응 3개(불·화약 조합·알루미늄 가루)이고, 폭발 카테고리 16종(비노출 포함 22종) 중 **제조 가능한 것이 흑색화약·테르밋·섬광화약·암모날 넷뿐**이다.
  - *(b)* 흑색화약의 3체 헬퍼가 이미 있고(그게 3체 반응의 정식 사례다), 증류 환류 헬퍼도 있다. **P3의 예외 지대** — 니트로화는 온도가 넘으면 폭발하는 것이 맞다. 다만 **냉각조를 붙이면 확실히 막을 수 있게** 두어 좌절이 아니라 긴장으로 만들 것.
  - *(c)* 신규 1종(+2종 공유). 리스크: 황산·글리세린이 먼저 서야 성립한다. 순서상 황산 → 비누화 → 질산.

### 암모니아 합성 [B급]

- **들어가는 물질** — **Hydrogen(기존)** · **Catalyst(기존)** · Liquid N₂(기존, 수정 필요) · 열원
- **추가해야 하는 물질** — **질소 N₂**(기체, 불활성) · **암모니아 NH₃**(기체, 염기성·자극)
- **필요한 전기장치/설비** — 촉매 반응기 · 압축(밀폐도로 대용) · 냉각기 · 펌프
- **엔진에 필요한 수정사항** — **없음(축약안) — 물질 레이어만으로 성립.** 고증대로 압력을 요구하면 **압력 필드**가 필요한데, 이건 `Grid`에 평행 배열을 추가하는 명백한 엔진 작업이고 세이브 평면 2개 + 스냅샷 리샘플까지 건드린다(엔진 총괄 10번). **우선순위 ③이 ①②보다 아래이므로 압력 없이 온도창 + 촉매로 축약할 것을 권한다**
- **설명 및 제안 근거** — 질소와 수소를 촉매 위에서 450°로 만나게 하면 암모니아가 된다.
  - *(a)* **질소 기체라는 상태가 게임에 없다.** 액체 질소는 끓으면 그냥 사라진다 — 즉 냉매 소모품일 뿐 물질이 아니다. 반응성 기체(암모니아·SO₂·NO₂)가 0종이고, 기체 로스터가 9종으로 얇다.
  - *(b)* 촉매·온도창·발열 자기정지가 전부 중합 라인에서 검증된 관용구다. **LN₂가 끓어 N₂가 되게 고치는 것만으로도 기존 물질 하나가 되살아난다.** 암모니아는 뒤에 질산(오스트발트법)·비료·냉매로 이어질 자리도 크다.
  - *(c)* 신규 2종. 리스크: 압력을 뺀 합성은 고증에서 크게 벗어난다 — **의도적 타협임을 문서에 명시**할 것. 그리고 암모니아가 염기성 기체라 산-염기 계통과 겹치므로, 그쪽이 먼저 서 있어야 역할이 정리된다.

### PVC 라인 — 염소의 활용처 [B급]

- **들어가는 물질** — **Ethylene(기존)** · **Chlorine(기존)** · **Catalyst(기존)** · Water(냉각)
- **추가해야 하는 물질** — **염화비닐 VCM**(기체) · **PVC**(가루, 난연성 — `combustible` 아님)
- **필요한 전기장치/설비** — 촉매 지붕 · 물 자켓 · 컨베이어
- **엔진에 필요한 수정사항** — **없음 — 물질 레이어만으로 성립**
- **설명 및 제안 근거** — 에틸렌에 염소를 붙여 염화비닐을 만들고, 중합하면 PVC가 된다.
  - *(a)* **polymer 카테고리가 3종으로 가장 얇다.** Chlorine의 반응 상대는 "생물 지우기" 하나뿐이다. 폴리에틸렌 말고 두 번째 사슬이 없다.
  - *(b)* 크래킹·중합의 전 구조(촉매 접촉 확률, 온도창, 발열 자기정지, 사슬 세대 제한)를 **거의 그대로 복사**한다. 클로르알칼리가 서면 염소 공급이 자동화된다.
  - *(c)* 신규 2종. 리스크: P1 위반 위험이 크다 — 중합 라인의 재상연이면 새 축이 없다. **PVC를 "타지 않는 플라스틱"**으로 차별화하고(폴리에틸렌은 가연성), 염소 공급이라는 **새 물류 축**을 난이도로 삼을 것.

### 폴리프로필렌·폴리스티렌 [C급]

- **들어가는 물질** — **Petroleum Vapor(기존, aux 유분 코드 1/2/3)** · Catalyst
- **추가해야 하는 물질** — **프로필렌 Propylene**(기체) · **PP**(가루) · 선택: **스티렌 Styrene**(액체) · **PS**(가루)
- **필요한 전기장치/설비** — 촉매 지붕 · 냉각 · 컨베이어
- **엔진에 필요한 수정사항** — **없음 — 물질 레이어만으로 성립**
- **설명 및 제안 근거** — 지금 크래킹은 유분에 따라 **수율만** 달라진다(휘발유 0.85 > 등유 0.60 > 경유 0.40). 여기에 **산물까지** 달라지게 한다 — 무거운 유분은 에틸렌 대신 프로필렌이 나오게.
  - *(a)* 경유를 먹이면 지금은 그냥 손해다. 유분을 골라 분리하는 증류탑 실력이 **한 가지 보상(수율)에만** 연결돼 있다.
  - *(b)* aux 유분 코드가 이미 셀마다 붙어 다니고, 수율 분기 코드가 이미 유분을 읽는다. **분기 하나 늘리는 수준.** 정밀 증류가 처음으로 "다른 물건을 만든다"가 된다.
  - *(c)* PP만 하면 신규 2종, PS까지 하면 4종. **PP만 권한다.** 리스크: 함정 "aux는 폭발을 못 건넌다" — 폭발에 휩쓸린 증기는 유분 태그를 잃고 휘발유로 취급되므로 프로필렌 라인이 조용히 에틸렌 라인이 된다. 지금은 수율이 오르는 방향이라 문제가 없었지만, **산물이 갈리면 플레이어가 원인을 못 찾는 실패**가 된다. 반드시 문서화하거나 태그 소실 시 나오는 쪽을 정할 것.

### 플라스틱 열성형과 재활용 [A급]

- **들어가는 물질** — **Polyethylene(기존)** · 열원 · Water(급냉) · Wall/Stone(몰드)
- **추가해야 하는 물질** — **용융 플라스틱 Molten Plastic**(액체, `glow` 없음·저전도) · **플라스틱 판 Plastic**(고체, 절연·내산)
- **필요한 전기장치/설비** — 니크롬 가열판 · 몰드 · 펌프(사출) · 컨베이어
- **엔진에 필요한 수정사항** — **없음 — 물질 레이어만으로 성립**
- **설명 및 제안 근거** — 폴리에틸렌 가루를 360°로 녹여 몰드에 부으면 굳어 플라스틱 판이 되고, 그 판을 다시 녹이면 재활용된다.
  - *(a)* **Polyethylene은 이 게임의 가장 긴 공정의 최종 산물인데, 그 뒤로 아무것도 하지 않는다.** 원유 → 증류 → 크래킹 → 중합으로 4단계를 거쳐 얻은 것이 "가루 더미"로 끝난다. 340~400 온도 구간이 한산하다.
  - *(b)* 알루미늄 주조 왕복(가루 → 쇳물 → 고체 → 다시 용융)이 이미 검증된 관용구다. **여기서 "만든 것을 쓴다"가 처음 성립한다** — 플라스틱 판이 절연체·내산 용기가 되면 전기·산 계통이 그 산물을 요구하게 된다.
  - *(c)* 신규 2종. **A급인 이유는 신규 2종으로 기존 4단계 라인 전체에 의미를 붙이기 때문이다.** 리스크: 알루미늄 주조 때 실제로 밟은 버그를 그대로 밟는다 — 액체가 **흐르는 코드를 호출하지 않아 제자리에서 굳는** 문제. 회귀 검사가 이미 그 형태로 존재하므로 같은 검사를 복제할 것.

### 발효 심화 — 증류 [B급]

- **들어가는 물질** — **Alcohol(기존)** · **Sugar Water(기존)** · **Yeast(기존)** · Water · 열원
- **추가해야 하는 물질** — **알코올 증기 Alcohol Vapor**(기체) · 선택: 술덧 Mash(액체)
- **필요한 전기장치/설비** — 증류탑(환류 헬퍼) · 냉각기(응결) · 니크롬 가열(온도 제어) · 펌프
- **엔진에 필요한 수정사항** — **없음 — 물질 레이어만으로 성립.** 도수는 `aux`로 표현(석유 증기의 유분 코드와 같은 형태)
- **설명 및 제안 근거** — 발효액을 78°로 조심스럽게 데우면 알코올만 먼저 증발한다. **물 끓는점(100°)과 사이가 22°뿐이라 온도 제어가 진짜 난이도가 된다.**
  - *(a)* Alcohol은 반응 상대가 바이러스 소독 하나뿐이고, 발효는 산물을 하나 내고 끝난다. Yeast·Sugar Water·Honey가 전부 한 갈래로만 이어진다.
  - *(b)* 석유 증류의 **전 인프라를 100% 재사용**한다 — 환류 헬퍼, aux 태그, 응결 온도 리셋, 온도 구배 탑. **신규 1종으로 두 번째 증류탑 놀이가 열린다.**
  - *(c)* 신규 1~2종. 리스크: 석유 증류의 재상연이라 P1 위반 위험. **차별점은 "밴드가 좁다"** — 석유 분획은 폭이 50~70°인데 여기는 22°다. 니크롬 전기 가열의 정밀 온도 제어가 처음으로 필수가 되는 공정이 된다.

---

## 생태·순환

### 광합성과 탄소 순환 [A급]

- **들어가는 물질** — **Plant(기존)** · **CO₂(기존)** · **Oxygen(기존)** · Water · Seed · Soil(Dirt/Mud/Sand/Ash)
- **추가해야 하는 물질** — **없음(0종)**
- **필요한 전기장치/설비** — 없음. 선택: 광원 개념을 쓰면 Laser / Heat Ray / Solar Panel
- **엔진에 필요한 수정사항** — **없음 — 물질 레이어만으로 성립.** "빛"을 조건으로 넣고 싶으면 개념 도입이 필요하지만, **넣지 않기를 권한다**(태양광 패널의 `lightPulse`는 빔 전용이고, 전역 광량 개념을 만드는 것은 큰 작업이며 재미 증분이 작다)
- **설명 및 제안 근거** — 식물이 인접 CO₂를 먹고 산소를 뱉으며 더 빨리 자란다. 태우면 CO₂가 돌아온다.
  - *(a)* **CO₂는 소비하는 반응이 하나도 없다.** 발효·드라이아이스 승화·소화로 생기기만 하고 자연 소산으로 사라진다. `plant.ts`는 CO₂도 산소도 import하지 않는다 — **식물은 기체와 아무 상호작용이 없다.** Smoke도 마찬가지다.
  - *(b)* **신규 물질 0종.** 기존 물질 3종의 `update`에 분기만 넣는다. 연소가 산소를 소비한다는 규칙이 이미 있으므로, 식물이 산소를 뱉게 하는 순간 **"밀폐 온실에서 불을 유지하려면 식물을 길러야 한다"**는 사슬이 자동으로 생긴다. 산소 강제통풍(인접 산소 1칸당 화염 온도 +250°)까지 이어지면 **식물 → 산소 → 고온 → 제련**이라는 놀라운 연결이 공짜로 열린다.
  - *(c)* 비용 거의 0. **투자 효율이 슬래그→시멘트와 함께 최상위.** 리스크: 산소가 흔해지면 산소 부스트의 희소성이 사라져 열원 위계(P1의 화력 축)가 무너질 수 있다. 광합성 산소 생산률을 낮게 잡고, 밀폐 온실을 실제로 지어야 모이게 할 것.

### 부패·퇴비·바이오가스 [C급]

- **들어가는 물질** — Plant · Seed · Yeast · Bleached Coral(사체) · Water · Dirt · **Methane(기존)** · CO₂
- **추가해야 하는 물질** — **퇴비 Compost**(가루, 식물 성장 촉진)
- **필요한 전기장치/설비** — 밀폐 발효조 · 펌프(가스 회수) · 컨베이어
- **엔진에 필요한 수정사항** — **없음 — 물질 레이어만으로 성립**
- **설명 및 제안 근거** — 죽은 식물이 물기 있는 흙에서 삭으면 퇴비가 되고, 밀폐하면 메탄이 나온다.
  - *(a)* 생명 10종에 **부패(사체 분해) 계통이 통째로 없다.** Methane은 폭발용으로만 존재하고 제조법이 없다. Ash는 밭의 재료로 읽히기만 한다.
  - *(b)* Soil의 "이 땅이 젖었는가" 판정이 이미 공용화돼 있고, 발효 관용구(효모 무소모 + CO₂ 버프)가 그대로 재사용된다. **퇴비가 광합성 후보와 맞물리면 완전한 생태 순환**이 된다.
  - *(c)* 신규 1종. 리스크: 부패가 자동으로 진행되면 플레이어가 심어 둔 정원이 **가만히 두면 썩는다** — 좌절이다(P3). **사체에만** 적용하고 살아 있는 식물은 건드리지 말 것.

---

## ★ 추가해야 하는 물질 총괄

위 26개 후보에서 나온 신규 물질을 **중복 제거해 한 표로** 모았다. "여는 공정 수" 내림차순 정렬 — 위쪽일수록 **한 종을 넣었을 때 회수되는 공정이 많다.**

정보:  이 표를 읽는 법
전부 채택하면 팔레트가 40종 가까이 늘어 카테고리 탭이 감당하지 못한다. **A급 후보 10개만 채택하면 신규 16종**이고, 그것으로 막다른 길 물질 12종 이상이 되살아난다. id는 110칸(146~255)이 남아 있어 병목이 아니다 — 진짜 비용은 **팔레트 탭 밀도 + i18n 한국어명 + 도감 행 + 아이콘**의 4중 갱신이다. 아이콘은 렌더 태그(`colorVary`·`lattice`·`brickPattern`·`glow` 등)를 잘 고르면 **자동 생성되어 비용 0**이고, 손그림이 필요할 때만 외부 발주 1건이 된다.

같은 물질이 [[Web sandbox 프로젝트/구상/새 물질 후보]]에도 카테고리별로 실려 있다. 두 문서는 **보는 축이 다르다** — 저쪽은 "팔레트 어느 탭이 얇은가"에서 출발해 물질 단위로 세고, 이 표는 "공정 하나를 열려면 무엇이 최소로 필요한가"에서 출발해 공정 단위로 센다. 어느 물질을 먼저 넣을지는 **이 표의 "여는 공정 수" 열**로 판단하는 편이 낫다.



| 물질명 (한/영) | 상태 | 쓰이는 공정 | 공정 수 | 비고 |
|---|---|---|---:|---|
| 가성소다 / Lye | 액체 | 클로르알칼리 · 산-염기 중화 · 비누화 · 표백제 | **4** | 이 게임 최초의 강염기. `docs/MATERIAL-IDEAS.md`의 보류 항목 "NaOH / 산-염기 계통"을 **승계**한다 |
| 소석회 / Slaked Lime | 가루 | 석회 순환 · 산-염기 중화 · 비누화 · 표백제 | **4** | 약염기. 가성소다와 역할이 겹치므로 **하나만 먼저 넣을 것**(석회 순환이 먼저면 소석회, 클로르알칼리가 먼저면 가성소다) |
| 황산 / Sulfuric Acid | 액체 | 황산 제조 · 질산 · 구리 전해 · 산-염기 중화 | **4** | 차별점은 부식이 아니라 **탈수**. 기존 Acid와 겹치지 않게 |
| 숯 / Charcoal | 고체·가루 | 목재 건류 · 강철 제련 · 석회 하소(열원) · 아크로 전극 대용 | **4** | 석탄가루의 재생 가능 대체재. 자연발화점은 580° 이상 유지 |
| 흑연 전극 / Graphite | 고체 | 아크로 · 알루미늄 전해 · 클로르알칼리 · 구리 전해 | **4** | `conductive` 선언 시 도체 명단에 **append만** 할 것 |
| 생석회 / Quicklime | 가루 | 석회 순환 · 산-염기 · 슬래그→시멘트 | **3** | 물과 만나면 격렬 발열. 자기 질식 주의 |
| 도자기 / Ceramic | 고체 | 점토 소성 · 아크로 노벽 · 황산 반응기 | **3** | `acidResistant` + 고융점. **산을 담을 용기 부족을 푼다** |
| 구리 / Copper | 고체 | 구리 제련 · 연료전지 전극 · 아크로·전해 배선 | **3** | 도체 등록 필요. 최고 전도율 자리 |
| 암모니아 / NH₃ | 기체 | 암모니아 합성 · 질산(대체 경로) · 부패 산물 | **3** | 염기성 기체 — 산-염기 계통이 선 뒤에 |
| 강철 + 용융 강철 / Steel · Molten Steel | 고체·액체 | 강철 제련 · 철근 콘크리트 · 아크로 산물 | **3** | 2종 묶음. `durability` 명시 선언의 두 번째 사례 |
| 질산 / Nitric Acid | 액체 | 질산 제조 · 아말감(금 용해) | 2 | 황산이 선행 |
| 글리세린 / Glycerin | 액체 | 비누화(부산물) · 질산(니트로 원료) | 2 | **두 계통을 잇는 다리** |
| PVC | 가루 | PVC 라인 · 열성형·재활용 | 2 | 난연성 — 폴리에틸렌과 차별 |
| 폴리프로필렌 / PP | 가루 | PP 라인 · 열성형·재활용 | 2 | 경유·등유 유분에 의미를 준다 |
| 용융 플라스틱 / Molten Plastic | 액체 | 열성형·재활용 (PE·PVC·PP 공용) | 2 | 4종 수지가 같은 액체로 녹으면 재활용이 통합된다 |
| 퇴비 / Compost | 가루 | 부패 · 광합성·탄소 순환 | 2 | 생태 순환의 닫힘점 |
| 지시약 용액 / Indicator | 액체 | 산-염기 중화 · 황산 제조(관측) | 2 | **pH를 숫자가 아니라 색으로.** `auxPalette` 렌더 태그 사용 |
| 표백제 / Bleach | 액체 | 표백제 순환 · 클로르알칼리 | 2 | Chlorine의 원래 제조 경로 — 도감이 미구현을 자인 중 |
| 점토 / Clay | 가루 | 점토 소성 | 1 | 젖은/마른 2종으로 쪼개지 말 것(겹침 수분으로 축약) |
| 벽돌 / Brick | 고체 | 점토 소성 | 1 | `brickPattern` 태그 재사용 → **아이콘 비용 0** |
| 강화유리 / Tempered Glass | 고체 | 강화유리 | 1 | `shatterId` 두 번째 사용자 |
| 목가스 / Wood Gas | 기체 | 목재 건류 | 1 | 가연성 부산물 — 함정 인지하고 의도적으로 허용 |
| 이산화황 / SO₂ | 기체 | 황산 제조 | 1 | 독성 — Chlorine과 차등을 둘 것 |
| 선철 / Pig Iron | 액체 | 강철 제련 | 1 | 생략하면 신규 1종 절감, 대신 P2가 약해짐 |
| 구리광석 / Copper Ore | 가루 | 구리 제련 | 1 | **비자성** — 자력선별에 의미를 준다 |
| 황산구리 용액 / Copper Sulfate | 액체 | 구리 제련·도금 | 1 | 전해액. 황산 선행 |
| 유지 / Tallow | 액체 | 비누화 | 1 | 자연발화점을 비누화 온도창 **위로** |
| 질소 / N₂ | 기체 | 암모니아 합성 | 1 | **LN₂가 끓으면 사라지는 현 동작을 고치는 것만으로도 값어치** |
| 염화비닐 / VCM | 기체 | PVC 라인 | 1 | 중간체 |
| 프로필렌 / Propylene | 기체 | PP 라인 | 1 | 중간체 |
| 알코올 증기 / Alcohol Vapor | 기체 | 발효 증류 | 1 | 석유 증기의 aux 관용구 복제 |
| 플라스틱 판 / Plastic | 고체 | 열성형·재활용 | 1 | 절연·내산 — 전기·산 계통이 요구하게 |
| 알루미나 / Alumina | 가루 | 알루미늄 전해 · (내화재 겸용) | 1 | `MATERIAL-IDEAS.md` 보류 항목 — **조건부 승계**. 판정 정본은 [[Web sandbox 프로젝트/구상/새 물질 후보]] |
| 철근 콘크리트 / Reinforced Concrete | 고체 | 철근 콘크리트 | 1 | `durability` **최초 명시 선언자** |
| 유리화 폐기물 / Vitrified Waste | 고체 | 핵폐기물 유리화 | 1 | 선량을 낮춘 안정 고체 |
| 연료전지 / Fuel Cell | 고체 | 연료전지 | 1 | 전기 **소스** 신설 — 엔진 작업 동반 |
| 금광석 · 금 · 아말감 / Gold Ore · Gold · Amalgam | 가루·고체·액체 | 아말감 금 추출 | 1 | 3종 묶음이라 비쌈. Mercury를 되살리는 유일한 후보 |
| 스티렌 · 폴리스티렌 / Styrene · PS | 액체·가루 | PP·PS 라인 | 1 | **후순위 권고** — PP만 먼저 |

**신규 0종으로 성립하는 공정 2개** — 광합성·탄소 순환, 슬래그→시멘트 재활용. 둘 다 A급이고, **가장 먼저 손대야 할 항목이다.**

---

## ★ 엔진 수정 총괄

위 후보 전체가 요구한 엔진 수정을 중복 제거했다. **대부분의 후보가 "없음 — 물질 레이어만으로 성립"이라는 점을 먼저 강조한다** — 기존 2대 공정도 엔진 수정 0건으로 만들어졌고(공용 헬퍼는 물질 레이어에 신설했다), 그 규율을 이어받는 것이 옳다.

노트:  여기와 [[Web sandbox 프로젝트/구상/엔진 개선안]]의 관계
이 절은 **"이 공정들을 열려면 무엇이 필요한가"**만 본다. 엔진 개선안 문서는 공정과 무관한 구조 개선(스캔 순서, 필드 추가, 아키텍처)까지 다루므로 범위가 더 넓다. 겹치는 항목은 이 표에서도 완결적으로 설명하되, 설계 상세는 그쪽을 볼 것.



| 수정 항목 | 무엇을 푸는가 | 요구하는 공정 | 난이도 | 비트동일성·세이브 영향 |
|---|---|---|---|---|
| **`acidHydrogen` → `acidProduct` 일반화** | 산 반응의 산물이 **수소로 고정**돼 있어 "석회암+산 → CO₂", "탄산염+산 → 중화"를 못 쓴다. 현재 산 부식은 상대가 무엇인지 전혀 보지 않고 상(phase)만 본다 | 산-염기 중화 · 석회 순환 · 표백제 | 낮음 | **없음** — 필드 추가 + 읽는 쪽 1곳. 기존 태그 8종은 기본값으로 수소 유지. **반드시 레지스트리 전수 명단 검사를 같이 붙일 것**(같은 형태의 검사가 이미 존재) |
| **`ReactionRule.catalystRequired`** | 현재 `catalyst`는 확률 배수라 "촉매가 있어야만 일어나는 반응"을 표현 못 한다(0×4=0). 갈륨 라인은 중간 물질을 하나 늘려 우회했다 | 황산(접촉법) · 암모니아 · PVC | 낮음 | **없음** — 옵셔널 필드 1개. 미선언 규칙의 동작은 완전 불변 |
| **잠긴 셀의 `byproduct` 스폰 경로** | 부산물이 **인접 빈 칸에만** 스폰돼 웅덩이 바닥·밀폐 가마의 반응은 부산물을 하나도 못 낸다 | 석회 순환(CO₂) · 목재 건류 · 발효 심화 | 중간 | 없음(스폰 위치 규칙만). 단 **액체를 위로 밀어내는 경로**를 새로 쓰면 물 총량 보존 검사가 필요하다 — 연막탄의 수중 연기가 정확히 같은 문제를 이미 풀었으니 그 구현을 볼 것 |
| **3체 이상 레시피 공용 헬퍼** | 반응 테이블은 `with` 하나뿐이라 엄격히 2체다. 흑색화약이 전용 헬퍼로 간 이유가 이것이고, 그 헬퍼가 **일반화되지 않은 채 한 레시피 전용**으로 남아 있다 | 비누화 · 질산 · 강철 제련 | 낮음 | **없음** — 물질 레이어의 공용 헬퍼로 만들면 엔진 무수정. 흑색화약을 이 헬퍼로 이관하면 골든 재확인 필요 |
| **이웃 셀 온도 조건** | 반응 테이블의 온도창이 **선언한 셀의 온도만** 본다. "찬 고철을 뜨거운 쇳물에 넣는다" 같은 온도차 반응을 못 쓴다 | 강철 제련 · 강화유리 | 낮음 | **없음** — 옵셔널 필드. 기존 규칙 판정 경로 불변 |
| **상대별 산물 (태그 상대 반응)** | `with`가 구체적 id 하나라 "모든 금속"·"모든 탄산염"과 반응하려면 행을 물질 수만큼 복제해야 한다. `acidHydrogen` 태그가 태어난 이유가 정확히 그것(같은 행 3벌 복사) | 산-염기 중화 · 표백제 · 부패 | 중간 | 없음. 다만 태그가 늘수록 **명단 드리프트**가 늘어난다 — 리뷰에서 세 번 어긋난 것이 손으로 옮긴 명단이었다는 기록이 있으니, 태그마다 전수 검사를 세트로 붙일 것 |
| **1:N 소모비 (화학량론)** | 반응은 항상 1:1이다. 테르밋의 3:1을 1:1로 양보한 기록이 있다 | 슬래그→시멘트 · 강철 제련 · 석회 순환 | 중간 | 없음. **다만 채택 전에 재미 판정을 먼저 할 것** — 흑색화약이 75:15:10을 1:1:1로 바꾼 것은 계량이 노동이라는 판단이었다. 비율은 "플레이어가 세지 않아도 되는" 형태(예: 반응 확률 차등)로 표현하는 편이 우선순위 ②에 맞다 |
| **융점·비등점의 데이터화** | 융점·비등점·승화점을 표현하는 **데이터 필드가 존재하지 않는다.** 전부 각 물질 `update` 안 하드코딩이고, `*_TEMP` 상수 선언이 50개 이상, `getTemp` 문턱 비교를 하는 파일이 67개다 | 거의 모든 후보(신규 물질마다 3줄씩 반복) | 중간~높음 | **골든 재확인 필수.** 순수 리팩터링이면 비트 동일이어야 하고, 이력(히스테리시스) 간극을 데이터로 옮기는 과정에서 값이 바뀌면 즉시 회귀한다. 세이브 포맷 영향은 없음. **신규 물질이 10종 넘게 들어오기 전에 하는 편이 싸다** |
| **전기분해의 매질별 산물 분기** | 물·염수·산 **세 매질이 전부 같은 산물**을 낸다. 분해 함수가 이미 매질 id를 구분하고 있어 분기 지점은 준비돼 있다 | 클로르알칼리 · 구리 전해 · 알루미늄 전해 | 낮음 | **없음** — 물질 데이터 태그(`Material.electrolysis`)로 만들면 새 매질이 늘어도 코드가 안 는다. 스파크의 aux 패킹은 건드리지 않음 |
| **아크 방전 훅** | 두 도체 사이의 **빈 칸**을 전류가 뛰며 열을 놓는 규칙이 없다. 그래서 전기로 도달 가능한 최고 온도가 니크롬 줄열 상한 1050°에 묶여 있다 | 아크 용해로 | 중간 | 스파크 계통 수정이라 **전기 회귀 검사를 반드시 돌릴 것**(도체 클래스·펄스 강도의 aux 16비트 패킹이 서로를 침범하지 않는지 지키는 검사가 이미 있다) |
| **펄스 소스 신설 API** | 전기 소스가 배터리 2종·터빈·태양광 넷뿐이고, 장치 몸체 플러드가 `SimContext`에 전용 필드를 요구한다 — 빠뜨리면 **틱당 재플러드로 성능이 붕괴**한다 | 연료전지 | 중간 | 없음(런타임 구조). 성능 회귀 위험이 있으므로 활성 타일 검사와 함께 볼 것 |
| **`Material.durability` 첫 실사용** | 필드는 이미 폭발 계통이 읽는데 **어떤 물질도 명시 선언하지 않아** 전부 phase 기본값으로 떨어진다 | 철근 콘크리트 · 강철 · 강화유리 | **0(수정 없음)** | 없음 — 데이터 태그를 선언하기만 하면 된다 |
| *(선택)* **압력 필드** | 밀폐 공간의 압력·유량·농도 개념이 전혀 없다. `SimContext`의 원시연산 41개에 압력·농도 질의가 없고, 밀도 비교는 이웃 1:1 스왑뿐이다 | 암모니아 합성(고증안) · 증류탑 정밀화 | **높음** | **큼.** `Grid`에 평행 배열 추가 = `Grid` + 리사이즈 + 세이브 평면 2개 + 스냅샷 리샘플 4곳 동시 수정. **권고: 하지 말 것.** 우선순위 ③을 위해 ①②를 지불하는 거래다 |
| *(선택)* **전역 광량 개념** | "빛이 닿는가"를 표현할 수단이 빔(`lightPulse`)뿐이다 | 광합성(고증안) | 높음 | 큼. **권고: 하지 말 것** — 광합성은 광원 없이도 CO₂ 소비만으로 충분히 재미있다 |

성공:  읽어야 할 결론
표의 **위 5개(태그 일반화 · `catalystRequired` · 부산물 스폰 · 3체 헬퍼 · 이웃 온도)는 전부 난이도 낮음 + 세이브 영향 없음**이고, 이 다섯만 있으면 A급 후보 10개 중 9개가 열린다. 나머지는 개별 공정이 실제로 착수될 때 같이 하면 된다.


---

## 로드맵 제안

서로를 최대한 재활용하는 순서다. **왼쪽이 먼저다.**

```mermaid
flowchart LR
  subgraph W0["0차 — 신규 0종, 즉시"]
    A1["광합성·탄소 순환<br/>CO2 소비처 신설"]
    A2["슬래그 → 시멘트<br/>막다른 길 2개 상호 해소"]
  end

  subgraph W1["1차 — 염기의 도입"]
    B1["석회 순환<br/>생석회·소석회"]
    B2["클로르알칼리<br/>가성소다·염소 제조"]
    B3["산-염기 중화·pH<br/>지시약"]
  end

  subgraph W2["2차 — 열원·용기·탄소"]
    C1["목재 건류<br/>숯·목가스"]
    C2["점토 소성<br/>벽돌·도자기"]
    C3["플라스틱 열성형<br/>용융 플라스틱·판"]
  end

  subgraph W3["3차 — 산 계통"]
    D1["황 연소 → 황산"]
    D2["비누화<br/>유지·글리세린"]
    D3["표백제 순환"]
  end

  subgraph W4["4차 — 야금 심화"]
    E1["강철 제련<br/>전로 취입"]
    E2["철근 콘크리트"]
    E3["구리 제련·전기도금"]
    E4["아크 용해로"]
  end

  subgraph W5["5차 — 확장"]
    F1["질산 → 니트로"]
    F2["암모니아 합성"]
    F3["PVC / PP"]
    F4["연료전지"]
    F5["핵폐기물 유리화"]
    F6["발효 증류"]
    F7["알루미늄 전해"]
    F8["아말감 금 추출"]
    F9["부패·퇴비"]
  end

  A1 --> F9
  A2 --> E2
  B1 --> B3
  B2 --> B3
  B1 --> A2
  B2 --> D3
  B1 --> D2
  B2 --> D2
  B3 --> D1
  C1 --> E1
  C1 --> B1
  C2 --> D1
  C2 --> E4
  C3 --> F3
  D1 --> F1
  D1 --> E3
  D2 --> F1
  E1 --> E2
  E3 --> F8
  E4 --> F7
  B2 --> F3
  F2 --> F1
```

### 왜 이 순서인가


1. 0차 — 신규 0종부터
**광합성**과 **슬래그→시멘트**는 신규 물질이 0종이고 기존 물질 5종의 `update`에 분기만 넣는다. 새 공정을 여는 비용 없이 **CO₂·Slag·Cement·Limestone·Plant 다섯이 동시에 살아난다.** 여기서 검증 하네스 패턴을 잡아 두면 이후 라운드가 싸진다.

2. 1차 — 염기를 넣는다
이 문서 전체에서 **가장 많은 후보를 막고 있는 단일 공백이 "염기 물질 0종"**이다. 석회 순환과 클로르알칼리 중 하나만 먼저 해도 염기가 손에 들어오고, 그 순간 산-염기 중화·비누화·표백제가 동시에 사정권에 든다. 엔진 쪽에서는 `acidProduct` 일반화 하나만 하면 된다.

3. 2차 — 열원과 용기를 확보한다
숯(재생 가능 탄소)과 도자기(내산·내화 용기)는 **그 자체보다 뒤 공정의 전제 조건으로서 값어치가 크다.** 지금은 산을 담을 용기가 유리·다이아몬드뿐이라 황산 라인이 설 자리가 없다. 플라스틱 열성형은 여기 끼워 두면 기존 최장 공정에 즉시 의미가 붙는다.

4. 3차 — 산 계통
황산이 서면 질산·구리 전해가 열리고, 비누화가 서면 글리세린이 니트로와 이어진다. **이 라운드부터 "재료가 재료를 부른다"가 본격화**된다.

5. 4차 — 야금 심화
강철은 숯이, 아크로는 도자기 노벽이, 철근 콘크리트는 강철과 시멘트가 선행이다. **앞 라운드를 안 하면 전부 신규 물질이 늘어나므로 순서가 곧 절약이다.**

6. 5차 — 폭이 좁거나 전제가 많은 것
질산·암모니아·PVC·연료전지·유리화·발효 증류·알루미늄 전해·아말감·부패. 각각 독립적이라 **재미 판단에 따라 자유롭게 골라 넣으면 된다.**



### 라운드마다 지켜야 할 절차

- [ ] 착수 전 `docs/MATERIAL-IDEAS.md`의 보류 항목 5건에 대한 **승계/기각 판정**을 확인한다 — 판정 정본 표는 [[Web sandbox 프로젝트/구상/새 물질 후보]]에 있다
- [ ] 신규 물질은 **id를 은퇴 번호(14, 15, 30, 35, 64, 72, 76, 142)에서 재사용하지 않는다** — 옛 세이브가 조용히 다른 물질로 렌더된다
- [ ] `npm run check:material-ids`로 id 충돌을 먼저 확인한다(빌드 첫 단계라 겹치면 배포가 강제 실패한다)
- [ ] 한국어명(`src/i18n/materials.ts`)·팔레트 배열(`src/game/materials/index.ts`)·아이콘 키는 **빠뜨려도 빌드가 안 잡는 조용한 실패**다 — 체크리스트 스킬을 따를 것
- [ ] 새 계통마다 **레지스트리 전수 커버리지 검사**를 붙인다(방사선·산+금속 검사가 표준형이다 — 명단이 어긋나면 검사가 먼저 깨지며 새 명단을 출력한다)
- [ ] 온도창은 위 **빈 구간 4개**에서 고르고, 고른 값을 온도 사다리 지도에 되돌려 적는다
- [ ] 밀도 값을 정할 때 **그 값 근처를 참조하는 전 계통을 훑는다**(부등호 방향만 보고 판단 금지)
- [ ] 브라우저 테스트는 직접 하지 않고 유저에게 요청한다

---

## 관련 문서

- [[Web sandbox 프로젝트/구상]] — 구상 인덱스(상위)
- [[Web sandbox 프로젝트/구상/새 물질 후보]] — 이 문서가 요구한 신규 물질의 개별 디자인(색·밀도·상·아이콘)
- [[Web sandbox 프로젝트/구상/엔진 개선안]] — 엔진 수정 총괄의 상위 집합. 공정과 무관한 구조 개선까지
- [[Web sandbox 프로젝트/구상/엔진 최적화 방안]] — 물질이 늘었을 때의 성능 대책
- [[Web sandbox 프로젝트/구상/UI UX 개선안]] — 팔레트 탭 밀도·검색이 이 문서의 실질적 병목
- [[Web sandbox 프로젝트/구상/시작 화면과 도감 페이지]] — 새 공정의 설명을 어디에 둘 것인가
- [[Web sandbox 프로젝트/가이드/물질]] — 현재 팔레트 126종의 도감
- [[Web sandbox 프로젝트]] — 소개문서

**저장소 문서** — `docs/MATERIAL-SYSTEMS.md`(라운드별 구현 기록) · `docs/PETROCHEMISTRY.md`(석유화학 라인의 함정 실측 기록) · `docs/MATERIALS.md`(도감) · `docs/MATERIAL-IDEAS.md`(보류 중인 제안) · `.claude/skills/add-material-or-object/SKILL.md`(추가 절차 체크리스트)