小説置き場

第26話「リファクタリングされた関係」

3,025文字 約7分

規約をバージョン1.1に書き換えた翌朝、おれは裏東京の廃ビルの屋上で目を覚ました。

 隣にリサはいなかった。いつもなら二メートル先の壁際で丸くなって寝ているはずの銀髪が、消えている。

 心拍が二割増しになった。キャッシュに残った昨夜の記憶が一気にフラッシュバックする。リサの告白。エンタープライズの受益者。自ら凍結を選んだ逃亡者。おれが書き換えた第6条。過去の秘匿は契約違反としない。今後の隠し事は禁止。

 頭では処理を終えたはずだった。だが朝の光の中で目を開けると、終わったはずの処理がもう一度走り出す。ループだ。無限ループ。脱出条件が書かれていない。

 リサは——おれの親父とお袋を殺した仕組みの、受益者だった。

 屋上の手すりに手をかけて、裏東京の朝を見下ろした。灰色のウォーターマークをつけた人々が、狭い路地を歩いている。五秒ごとに視界の右端にポップアップ広告が現れては消える。今日のおすすめは栄養ドリンク。一本三百円。おれの全財産ではまだ買えない額だ。

 あの人たちの中に、親父とお袋がいた。二年前まで。同じウォーターマークをつけて、同じ広告を見せられて、同じ生体ボットネットに脳を削られて。三ヶ月で死んだ。

 リサはその三ヶ月間、エンタープライズの最上位で広告もない、ボットネットの負荷もない、清潔な世界にいた。

 分かっている。リサはその後、自分で落ちてきた。受益者の座を捨てた。それは——何だ。贖罪か。自己満足か。覚悟か。

 おれの脳内デバッガが答えを出せない。変数が多すぎる。

 階段を降りて一階に出ると、オヤジの店のシャッターが半分開いていた。中から干し肉を焼く匂いがする。

「よう、坊主。早いな」

「リサを見なかったか」

「嬢ちゃんなら三十分前に出てったよ。西の配水管のとこ」

 西の配水管。裏東京の外れにある、水がまだ流れている数少ない場所だ。顔を洗いに行ったのか。あるいは——一人になりたかったのか。

 オヤジがカウンター越しに干し肉を差し出した。

「食え。腹が減ってちゃ、頭も回らん」

「金がない」

「ツケだ。嬢ちゃんの分も焼いてある」

 おれは干し肉を受け取った。硬い。噛むと顎が痛い。だが味はある。いつもと同じ味。裏東京の味。

「坊主。昨夜、何かあったか」

「何でそう思う」

「嬢ちゃんの目が赤かった。泣いた後の目だ。朝出てくとき、おれに会釈だけして何も言わなかった。いつもは『おはようございます』って言う子だろ」

 おれは干し肉を噛んだ。硬い肉が奥歯に抵抗する。

「契約の内容が変わった。それだけだ」

「そうか」

 オヤジはそれ以上聞かなかった。裏東京の人間は、聞かないことが礼儀だと知っている。

 干し肉を半分食べたところで、おれは店を出た。西に向かった。

 配水管のあたりは、裏東京で数少ない緑がある場所だった。コンクリートの隙間から雑草が生えている。ARのフィルターがかかっていないから、現実の色そのままだ。薄い緑。冬の光。

 リサは配水管の上に座っていた。銀色の髪が朝日を反射している。手には何も持っていない。デバイスも、武器も、何も。ただ座って、水の流れを見ていた。

「おはよう」

 おれの声に、リサが振り返った。目は赤くなかった。もう泣き止んでいる。ただ、表情が硬い。おれを見る目が——怯えている、というほどではない。だが、昨日までとは違う。距離がある。

「おはよう。ごめん、黙って出てきて」

「謝るな。規約に『外出時は報告する』なんて書いてない」

「うん」

 沈黙。配水管を流れる水の音だけが聞こえる。

 おれは配水管の横に腰を下ろした。リサとの間に一メートルの距離。いつもより少し遠い。

「昨日の話だが」

「うん」

「処理に時間がかかってる。正直に言う」

 リサが頷いた。

「分かってる。私の方こそ——あなたが規約を書き換えてくれたのに、まだうまく動けない。再起動に失敗してるみたいに」

 IT用語で感情を表現するのは、おれの癖だ。リサにも移ったらしい。感染したのか。あるいは、共通言語として機能し始めているのか。

「一つ聞いていいか」

「何でも。第6条で、今後の隠し事は禁止だから」

「お前が凍結を選んだとき——おれの親父やお袋のことは知っていたか」

 リサの目が揺れた。三秒。

「個人としては知らなかった。フリープランのユーザーが生体ボットネットで死んでいることは仕様書で知った。でも、それが誰の親で、誰の家族かまでは——」

「データとしてしか見えなかった」

「そう。百二十万人のうちの数字だった。顔が見えたのは、凍結されて裏東京に落ちてきてからだよ」

 おれは水を見た。灰色の水。裏東京の配水管を流れる、浄化されていない水。飲めない。だが流れてはいる。

「分かった」

「分かった、って——許してくれるの?」

「許すとか許さないの問題じゃない。事実の確認だ。お前は親父たちを直接殺したわけじゃない。システムの受益者だった。それは——おれが恨むべき対象なのか。分からない。分からないが、少なくとも契約相手ではある」

 リサが息を吐いた。長い息。安堵ではない。何かを受け入れる息だ。

「クロヤ。一つだけ言わせて」

「何だ」

「私が凍結を選んだのは、あなたのような人に会うためじゃなかった。ただ逃げたかっただけ。受益者でいることに耐えられなくて、一番簡単な方法を選んだ。それは——美談じゃない。利他的な行動でもない。自分の罪悪感を処理するための、一番コストの低い逃避だった」

「自覚してるなら十分だ」

「十分?」

「バグの自覚がある開発者は、バグのない開発者より信頼できる。完璧なコードを書く人間はいない。自分のバグを知ってる人間は、修正できる」

 リサが笑った。小さく。昨夜の泣き笑いとは違う。乾いた、でも本物の笑い。

「あなた、慰め方が全部ITなの、知ってる?」

「仕様だ」

 配水管の水が流れている。冬の朝の光が水面に反射して、コンクリートの壁に波紋の影を作っている。

 おれは立ち上がった。リサに手を差し出した——わけではない。そんな柄じゃない。ただ立ち上がって、背中を向けた。

「飯がある。オヤジがお前の分も焼いてくれた」

「干し肉?」

「干し肉」

「硬い?」

「硬い。でも味はある」

 リサが配水管から降りた。おれの後ろをついてくる足音が聞こえる。いつもの距離。一メートル半。昨日までと変わらない。

 だが中身は変わった。バージョン1.0からバージョン1.1へ。見た目は同じでも、内部のコードが違う。過去のバグは修正対象外。今後のバグだけ追跡する。

 オヤジの店に戻ると、干し肉が二人分、皿の上に並んでいた。リサが座って、一口噛んで、顔をしかめた。

「硬い」

「だろ」

「でも——味はある」

 おれは向かいに座って、残り半分の干し肉を食べ始めた。

 関係のリファクタリングは完了していない。コードの書き直しは一日では終わらない。だが、コンパイルは通った。エラーは出なかった。とりあえず動く。不完全だが、動く。

 それで十分だ。今は。

 視界の右端に広告がポップアップした。

  【期間限定】スタンダードプランへのアップグレード 月額1,980円から

 閉じた。五秒後にまた出る。それも閉じた。

 これがおれたちの世界だ。広告と干し肉と、書き換えられた契約。完璧じゃない。バグだらけだ。でも——動いている。

 リサが干し肉を噛みながら、おれを見た。

「ねえ、クロヤ」

「何だ」

「ありがとう。規約を書き換えてくれて」

「礼はいらない。アップデートは開発者の義務だ」

「うん。でもありがとう」

 おれは干し肉を噛んだ。硬い。顎が痛い。

 だが——悪くない。