第2話 水道魔法陣のデッドロック
宮廷魔法技師団の本部庁舎は、王宮の東翼にあった。石壁のあいだを抜ける風が、冬の空気を運んでくる。
靴音が高い天井に反響する。平民街の石畳とは違う、磨き上げられた大理石の床。歩くだけで場違い感がにじむ。
「ノエミ・ペトリだね。こちらへ」
案内役の事務官に連れられて、長い廊下を歩く。壁には歴代の宮廷魔法技師長の肖像画が並んでいた。どれも立派な貴族の装束。平民の顔は一つもない。
通されたのは、団長室ではなく「第三作業室」という名の小部屋だった。窓が一つ。机が一つ。椅子が一つ。
「ここが?」
「出向者の席はこちらです。正式な配属ではありませんので」
つまり、歓迎されていないということだ。想定内だった。
事務官が去ったあと、部屋を見回した。壁は白い漆喰で装飾は一切ない。窓からは中庭が見えるが、日当たりは悪い。東翼の端。人目につかない場所。
(隔離だな、これは)
前世の会社でもあった。厄介な社員を窓際に追いやるやり方。ここではそれが文字通りの窓際だ。
最初の任務書を開く。記されていたのは——水道魔法陣の定期点検。
(水道。ライフラインの中核じゃない)
王都の上下水道は、すべて魔法陣で制御されている。浄水、送水、排水。人口四十万の水を支える巨大システムだ。
前世の東京の水道管の総延長は約二万七千キロメートル。地球を半周以上する長さだった。この王都はもっと小さいが、魔法陣のネットワーク規模は相当なもののはず。
点検資料に目を通す。過去の保守記録を遡ると、「異常なし」の文字が同じ筆跡で延々と続いている。
(……ずっと異常なし? ありえない)
どんなシステムにも経年劣化はある。「異常なし」が何年も続くのは、点検していないか、異常を書かないかのどちらかだ。
現場に行こう。書類では何も見えない。
◇
水道魔法陣の中央制御室は、地下にあった。薄暗い通路を降りると、巨大な魔法陣が床一面に広がっていた。
空気がひんやりと湿っている。地下水脈に近いのだろう。壁には苔が這い、天井からは微かに水滴が落ちていた。
息を呑んだ。
直径十メートルはある。刻まれた記号の密度が、街灯とは桁違いだった。
(……これ、スパゲッティコードだ)
誰かが設計した元のコードに、何十年もの修正が積み重なって、もう全体像がわからなくなっている。修正のたびに別の場所が壊れ、その修正がまた別の修正を呼ぶ。最終的に「触るな危険」になる。
前世で何度も見た光景だった。でも、これほど巨大なスパゲッティは初めてだ。
「見学ですか?」
声をかけてきたのは、制御室の奥にいた男だった。暗い部屋で、魔法陣の光に照らされた顔は整っているけれど疲れていた。
「ノエミ・ペトリです。今日から出向で」
「ラファエル・ヴェーバー。副団長をやっている」
「副団長……ですか」
袖口がすり切れている。宮廷の幹部にしては、ずいぶん実務家の手だ。
「上の連中は現場に来ない。俺は来る。それだけの違いだ」
「わかります。前の職場でも、現場に来る上司は袖口がボロボロでした」
「前の職場?」
「あ、口癖です」
ラファエルはわずかに首を傾げた。
「水道魔法陣の点検に来ました。保守記録がずっと異常なしになっていますが——」
「気づいたか」
ラファエルの目が、一瞬だけ鋭くなった。
「異常がないのではなく、異常を報告できない体制になっている」
「報告すると、設計に問題があると認めることになるから?」
「そういうことだ。報告した人間は『余計なことをするな』と叩かれる」
「前の——いえ、よくある話ですね」
「お前、その『前の職場』って何回言うんだ」
「すみません。本当に口癖なんです」
わたしは魔法陣の前に膝をついた。ソースコードを読み始める。
三十分かかった。全体構造を把握するだけで三十分。そして、見つけた。
(……デッドロック。二つの処理が互いにロックを取り合って、永久に待ち続ける状態になる条件がある)
たとえば、二人の人間がそれぞれ相手の持っている鍵を「先にくれ」と譲らない状態。どちらも相手を待つから、永遠に動けない。
「ラファエルさん。これ、夏に大規模断水が起きます」
「……やはりか」
「知っていたんですか?」
「症状は把握している。原因がわからなかった。俺にはコードが見えない」
「コードが見えない?」
「この世界で魔法陣の内部が見える技師は、俺が知る限りいない。お前は——見えるのか」
「見えます。文字みたいに浮かんで見えるんです」
「いつから」
「四歳のときから。最初に見えたのは暖炉の魔法陣でした」
「四歳——。お前の力は、この世界では聞いたことがない」
「前の職場では当たり前だったんですけどね」
「また前の職場か」
「すみません」
ラファエルは一瞬黙った。それから棚から分厚いファイルを取り出した。埃をかぶっている。
「過去の事故報告書だ。公式には『原因不明の一時的停止』とされている」
「実際には?」
「王都の東区で大規模断水。復旧まで三日。死者七名」
「七名……」
「熱中症と脱水で亡くなったのは、ほとんどが子供と老人だった。名前も年齢も覚えている」
ラファエルの声は平坦だった。何度もこの事実と向き合ってきた人間の声だ。でもファイルを握る手の関節は、白くなっていた。
「報告を上げたんですか」
「上げた。団長のゲルハルトに」
「返答は?」
「『設計に問題はない。運用で対処しろ』」
「……つまり、設計のバグを指摘したら『仕様です』と返された」
「仕様だと?」
「前の——いえ、ある世界の言葉です。『それはバグではなく仕様です』。設計者が意図した動作だから直す必要はない、という意味で使われる」
「その言葉、覚えておく。まさにそれだ」
「ラファエルさん。その『仕様』が人を殺しているんです」
「わかっている。だが——」
「修正しましょう。わたしが設計書を書きます」
「団長が許可しない」
「許可がなくても、まず設計書を作る。記録を残す。あとから『知らなかった』と言わせないために」
「記録で戦う、か」
「事実は嘘をつきません。問題は、事実を見ようとしない人間がいることです」
ラファエルはしばらくわたしを見つめていた。それから、ほんの少しだけ口角が上がった。
「……面白い技師が来たな」
「面白いですか」
「ああ。少なくとも退屈じゃない。この制御室で退屈じゃないのは、久しぶりだ」
「……もしかして、ラファエルさんもずっと一人でここにいたんですか」
「副団長が地下にいても、誰も気にしない」
「気にします。わたしは」
ラファエルは少し驚いた顔をした。それからまた、あの控えめな笑みを浮かべた。
わたしは設計書の作成に取りかかった。事実を積み上げる。原因を特定する。修正案を提示する。感情ではなく、論理で動かす。
ただ、一つだけ前世と違うことがある。
ここでは、正しいことをしようとする人間が、命を賭けなければならない——その予感が、背筋を這い上がっていた。




