第3話「談合の匂いと、最初の衝突」
昼下がり、南区の通りは珍しく穏やかだった。
臨時ろ過槽の列に並ぶ人の顔から、緊張がわずかに抜けている。洗濯屋の婆は、孫の頭をぽんぽん叩きながら、きれいになった水を自慢げにひしゃくで見せた。
「見ておくれよ、この透き。昨日は十回も駆け込んだのに、今日は二回だ」
「それを“改善”という」
俺は笑ってメモを取る。倉のUIが視界の端でゆったりと波打つ。
《水質ログ(南区・臨時槽群):濁度 0.12→0.04》
《腹痛訴え件数:前日比 -63%(観測窓口=洗濯屋・パン屋・診療所)》
《在庫:布(粗)△/炭 △/砂 ○/油止め幕 ○》
「パン屑の回収、明日から枠を広げる」
「え、パン屑?」
リナが首を傾げる。革の肩紐を締め直しながら、琥珀の瞳を細めた。
「“屑”は屑じゃない。乾かして粉に挽けば、粥のとろみに使える」
「なるほど。屑で人を救えるって、かっこいい」
リナは笑って、屋根に駆け上がるための箱を蹴った。軽い音が路地の空に跳ねる。
“改善”は目に見える形で街に広がり始めた。列の長さ、泣き声の太さ、怒鳴り声の減り。数字にできるものは倉へ、数字にしにくいものは胸に。
――だが、数字が良くなるほど、顔色が悪くなる連中もいる。
染料商会だ。
その日の夕刻、臨時に招集されたギルド会議は、午後の日差しよりも重かった。
板張りの広間に、商人、冒険者、町内会の頭、ギルド職員が集う。末席で、俺は黙ってノートを閉じた。リナは壁にもたれ、靴先で床の節をつついている。
壇上の幹部は咳払いをひとつ。
「……井戸の件だが、ギルドの見解としては“解決済み”とする。臨時に設置されたろ過施設は、公共設備の許可を得ていないため、撤去を命ずる」
ざわめき。洗濯屋の婆がぱちくりと目を瞬く。「解決、って、だれが?」
幹部は曖昧に笑い、背後の男たちを振り返る。身なりのいい、同じ襟留めをした男が二人。染料商会の印。
「湿地の排水路を見直したところ、自然に改善傾向が見られた。よって、臨時の――」
「改善傾向……ね」
リナが低く呟く。怒ると彼女の声は、かえって冷える。
俺はゆっくり手を挙げた。
「数値で示せるか」
幹部が不機嫌に眉をひそめる。「数値?」
「濁度、腹痛訴え件数、配水量。今日、臨時槽が止まったら、明日の数値はどうなる」
「……ここは議論の場ではない」
壇上から一歩、前に出る男がいた。年嵩ではないが、胸を張った立ち姿は人を威圧する練習を重ねてきた者のそれだ。
濃い茶の髪を後ろに流し、黒い上衣。唇の端は、常に嘲笑の形に沿っている。
「数字、数字って。街の連中は帳面より腹の具合で決めるだろ?」
男は笑って、会場の反応を楽しむように視線を一巡させた。
「俺はヴァルス。商会の若頭だ。あんた、荷物持ちだっけ? 荷物持ちが街の設備を勝手にいじるなよ。危ないからな」
最後の“危ない”に、微かな棘が混じる。
「危ないのは汚染水だ」
俺が答えると、ヴァルスは肩を竦める。
「汚染水が危ないかどうかは、ギルドが決める。俺たちは、ギルドに加盟して、税も払ってる。ルールに従う。……あんたこそ、いつギルドに加盟した?」
「加盟はしていない。だが、数字は従う先を選ばない」
俺は倉のUIを開き、壁に投影した。薄い光が広間の板壁を白く染める。
《濁度推移(南区井戸):2.4→0.3(72h)》
《腹痛訴え件数:前日比 -63%》
《臨時槽稼働率:0.86》
《仮説:臨時槽停止→翌日腹痛 +38%(推定)》
ざわり、と空気が動いた。
幹部は唇を固く結んだ。「非公式の器具で収集された数字に、どれほどの信頼が置けるのか」
「器具ではない。倉だ」
「同じだ」
会議の流れは、最初から決まっていたのだろう。おそらく裏で話はついている。
――ギルドと、商会と。
俺は息を一つ吐いて、別の提案を出した。
「臨時槽を撤去しろというなら、代わりに商会で“廃液の前処理”を。倉で安価に運用できる。布・砂・炭、凝集剤。現場にあわせてレシピを組む。設備は簡易、運用は教える。費用は、当面、うちが持つ」
広間に、微妙な沈黙が走った。
「前処理、だと?」
「商会の裏庭を、ほんの少し“手間のかかる庭”にするだけだ。排水は透明度が上がる。匂いも落ちる。井戸は静かに治る」
ヴァルスの目が細くなる。笑みは消えない。
「へえ。“手間”をこっちに寄越すのか。あんた、親切だな」
「親切ではない。必要の順位、だ」
「必要の順位?」
「今日、誰が、どれだけ困っているか。そこへ資源を置く順番。商会の“手間の増加”は、子どもの“腹痛の減少”より下に置くべきだ」
笑いが、乾いた紙の上を転がるように広間を滑った。笑ったのは、幹部の一人と、商人二人。
ヴァルスはゆっくりと腕を組む。
「いいか、荷物持ち。ルールってのは、誰が守るかで価値が決まる。俺らは守ってる。お前は守ってない。だから、お前の正義は軽い」
リナが一歩、前に出た。
「その軽い正義に、街の人はもう拍手してるけど」
ヴァルスの視線が、そこへ刺さる。
「小娘。刃物ぶら下げてりゃ、街が守れるとでも?」
「守る。刃と、配り物と、走る足で」
「可愛いねえ。じゃあ、今夜も走っとけ」
幹部が、槌で机をどんと叩いた。
「決定だ。臨時設備は撤去。……以上」
会議は、拍手にも怒号にも至らず、薄いざわめきのまま解散した。ヴァルスは最後にこちらへウィンクを投げ、取り巻きとともに出ていく。
会議場を出た途端、リナが拳を握り、壁を軽く殴った。
「殴れば早い」
「早いのは、血の匂いの広がりだけだ」
「でもスッキリはする」
「スッキリは、在庫を回さない」
彼女はぷいと顔を背け、すぐに苦笑した。「……言い返せない」
「殴る代わりに、回す」
「どこを?」
「商会の“独占”じゃないところ。利害が合う小さな供給者を巡る」
俺たちは歩いた。パン屋、診療所、水売り、古着屋、鍛冶屋――街の“呼吸点”。
倉のUIに、新しいページが開く。
《見える化:供給・需要ヒートマップ》
《店舗別:過剰/不足》
《色分け:過剰=橙、不足=青、逼迫=赤》
パン屋の棚の上、過剰在庫の小麦粉が橙に光る。診療所の棚は青い。清潔な布が足りない。古着屋の奥の樽は橙で、洗えば使える布が眠っている。鍛冶屋の炭は逼迫の赤。
「パン屋の屑は乾かして“とろみ”へ。古着屋の布は煮沸して診療所へ。鍛冶屋の炭はろ過槽へ。代わりに“市場の余りの釘”を回してやる」
「釘?」
「ろ過槽の枠を固める。余った釘は“価値が眠ってる鉄”だ」
交渉は、驚くほど早かった。必要の順位を説明し、目の前で“見える化”を投影し、倉から“少し先の利得”を見せる。
パン屋の親父は腕を組み、鼻を鳴らした。
「屑に銅貨が付くなら、屑じゃなくなるな」
診療所の女医は、ゴム紐を指にかけ、笑いを堪えた。
「煮沸の手間はこっちが持つ。布は何枚でも欲しい」
古着屋の老人は目を白黒させ、やがて頷いた。
「洗っても売れない布、山ほどあるよ。銅貨二枚で持っていきな」
鍛冶屋のガレンは黙って頷き、炉の前から炭の袋をひとつ蹴り出した。
「釘なら、古釘を鍛ち直せる。折れない柄の試作品、見せたい」
倉のUIに、細い矢印がいくつも引かれていく。
《小麦粉(橙)→診療所・粥(青)》
《古布(橙)→煮沸→包帯(青)》
《炭(赤)→ろ過槽(青)》
《古釘(橙)→鍛ち直し→枠固定(青)》
小さなループが幾つも回り、街の呼吸はほんの少しだけ深くなる。
午後が傾く頃、パン屋の裏庭では、薄く切られたパン屑が網の上で乾き、診療所の裏口では鍋がことことと布を煮ていた。
倉は静かに、だが確実に温まっていく。
《在庫:包帯(清潔)+32/炭+6/古釘(鍛ち直し待ち)+120》
《生活KPI(仮):夜間灯点灯率 0.78→0.81/救急搬送時間 -12%》
《住民満足度:上昇(観測値)》
“独占”の裾野が、街の地面に吸い込まれていく感覚。
だが、裾野を削れば、山は怒る。
夜は、怒りが動く時間だ。
その夜、風は乾いていた。臨時ろ過槽の近くに張った鳴子が、早々にからんと鳴る。
「二つ、北。足音四」
屋根の上からリナの声。俺は手を上げて応え、倉の新タブを開く。
《危機在庫(CRISIS)》
《推奨:油止め幕/簡易盾(貸出可)/投光灯(臨時)》
《複製設置:ろ過槽(小)×テンプレート》
影が素早く動き、ひとつの槽の枠に油の壺が傾けられる。ぱき、と灯りの芯が折れて火花が散る。
「やめな」
低い声。リナが闇の中から滑り出る。短剣の刃が月の欠片を掬う。
「小娘が見張りかよ。危ねえぞ」
油の匂い。黒い帽子の男が口の端を歪める。「仕事だ。どいてろ」
「あなたらの“仕事”、街では“嫌がらせ”って呼ぶ」
彼女の言葉が終わらぬうちに、男の腕が走った。火のついた松明が、枠へと放られる。
リナの肩が稲妻のように動く。松明は半円の軌跡を描いて、空を切り、石畳に転がった。
「うわっ」
男がのけぞる。別の影が背後から彼女の腰を取ろうとした瞬間、俺は倉から“油止め幕”を落とした。
ばさり、と乾いた音。幕は油の壺と男の腕ごと包み、吸い込む。油の光沢が布に広がり、火は、布の内側で嘶くように弱まる。
「幕――?」
驚く声。リナは振り向かない。もう一人の襟を取り、足払い。男が仰向けに倒れる。
「商会の若頭に言われた?」
「誰が言ったか、知るかよ」
「知ってる。あんたら、目が笑ってない」
言葉の終わり、リナの腕が一瞬遅れた。
第三の影が背後から木棒を振り下ろす――
「リナ!」
叫ぶより早く、俺は倉の“簡易盾”を貸与した。透明な板が空気を裂いて、彼女の背に吸い付く。木棒が甲高い音を立てて弾かれ、棒の先が割れた。
リナは一歩踏み込み、逆手の刃で相手の手首を払う。男が呻き、棒を落とす。
四人目が逃げの体勢に入ったのを見て、俺は追わず、槽の状態を確認した。
《ろ過槽(小) No.3:枠損傷(軽)/布交換推奨》
《在庫:布(粗)残 9》
《危機在庫:前面化》
――来た。
暴力に対する、俺の解。
「壊されるなら、壊され尽くせない数で迎える」
俺は倉の奥で、あらかじめ設計しておいたテンプレートを叩く。
《複製設置:ろ過槽(小)×6(近傍)/ろ過槽(極小)×4(路地)》
《設置座標:南区・通り角・路地入口・共同釜周辺》
《展開:即時》
石畳の上に、同じ形の箱が次々に“現れる”。魔法ではない。だが、その光景は魔法に見えるだろう。
枠、布、砂、炭。すべてが、規格化された同じ順序で積まれ、同じ重さで置かれる。人が手で運べば十分に可能な速度。それを倉が“同時に”やる。
「は?」
幕の下でもがいていた男が、声にならない声を漏らした。
リナが肩で息をしながら、笑った。
「壊れた数より、多い」
「“多さ”は盾になる」
「それ、好き」
彼女は言い終えると、ふらりと膝をついた。肩に血が滲み、袖が濡れる。
「リナ!」
駆け寄り、傷口を押さえる。深くはないが、筋をかすめている。倉から止血布と薬草粉を出し、手早く包帯を巻いた。
「ごめん。ちょっと油断した」
「油断を補うのが、在庫だ」
彼女はにやりと笑い、わざと茶化すように言った。
「そういうところ、好き」
耳が熱くなる。俺は咳払いで誤魔化した。
倒れた男たちのうち、二人は這うように逃げ、二人は住民に取り押さえられた。
洗濯屋の婆が杖を振り回し、「孫の腹の仇だよ!」と怒鳴る声に、路地の影から笑いが漏れる。
俺は倉のログに“夜襲対応”のタグを付け、ろ過槽の稼働を再調整した。
《稼働率:0.86→0.91(複製展開後)》
《夜間巡回:増員(町内会+2)》
《臨時灯:2→4》
暴力の成果は、ほとんど“ゼロ”になった。
ゼロにする――それが、俺の反撃だ。
翌朝。
通りの空気は、夜のざわめきを忘れたふりをしている。人は朝になればパンを買い、水を汲み、仕事に出る。
だが、忘れないものもある。通りの隅々に置かれた“同じ箱”の列は、昨夜の答えを誇らしげに晒していた。
ギルドの掲示板に、人だかりができている。
新しい紙が打ち付けられ、墨がまだ乾ききっていない。
“外壁周辺に魔獣群の反応。夜間注意。防衛準備”
人の顔が引き締まる。子どもが母親の手を強く握り、若い男は口の端を噛む。
ヴァルスが、いつの間にか人だかりの後ろに立っていた。襟元の印は今日もぴかぴかだ。
「おい、荷物持ち」
俺が振り向くと、彼は薄い笑みを深くした。
「井戸は、まあ、あんたの“箱”で持った。認めてやるよ。けどな――」
彼はわざとらしく掲示板を顎でしゃくる。
「今度は倉庫じゃ止まらないぜ」
リナが一歩前に出かけ、俺は肩に指を置いて止めた。
壁の向こう、まだ見えない平野の端で、風が草を撫でる音がする。遠い犬の遠吠えが二度、切れて戻る。
俺は掲示板から目を離し、外壁の上に視線を上げた。
視界の隅、倉が静かに開く。
《在庫:矢羽素材(蔦布)△/古油 △/包帯布(清潔)◎/携行火瓶(未)-》
《テンプレート:落石バリア(小)/携行火瓶(改)》
《KPI提示:“次話クリック率”に相当する“次段階勝率”……冗談だ》
手のひらの中で、笑いがひとつ、乾いた紙くずみたいに丸まって消える。
「止めるさ」
俺はヴァルスを見ずに言った。
「物資でな」
リナが横で、にやりと笑う。
「刃で切るための、物資。いい音がする」
「音は、鳴らしていいときだけ鳴らす」
「はいはい、“必要の順位”ね。覚えた」
遠くで鐘が二度、鳴った。
街が、息を吸う。
砂を噛む風が、南から北へと向きを変える――魔獣の群れは、風に乗る。
倉の奥で、まだ見ぬ資材が指先に触れる気配がした。
《危機在庫:前面化(戦闘前夜モード)》
《提案:矢の軽量化・油の燃焼時間延長・包帯規格化・落石バリア座標プリセット》
俺はうなずく。やることは多い。数字は山ほどある。
殴るのは、最後でいい。
回す。置く。繋ぐ。
そして――守る。
外壁の上で、待っていろ。
“地味”が戦場を嫌いにしてやる。
(つづく)




