From 6fdb00a3486afeece574a871e0866d062fd95e91 Mon Sep 17 00:00:00 2001 From: Jayway Liu <14022498+bluejayway@user.noreply.gitee.com> Date: Sun, 4 Oct 2026 22:46:56 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=AC=AC=204-9=20=E7=AB=A0=E9=87=8D?= =?UTF-8?q?=E5=86=99=E7=81=8C=E8=A3=85=E8=BF=9B=E7=AB=A0=E8=8A=82=20JSON?= =?UTF-8?q?=EF=BC=88=E5=85=AD=E4=BA=94=E6=84=9F=E8=AE=B2=E8=BF=B0=E7=82=B9?= =?UTF-8?q?=E5=85=AB=E4=BB=B6=E5=A5=97=E3=80=81=E5=85=AD=E4=B8=AA=E7=AD=BE?= =?UTF-8?q?=E5=90=8D=E6=B3=A8=E5=86=8C=E3=80=81=E5=85=A8=E5=AD=A3=E4=BA=A4?= =?UTF-8?q?=E4=BA=92=E7=82=B9=2049=E2=86=9251=E3=80=81=E7=BB=93=E5=B1=80?= =?UTF-8?q?=E8=BD=B4=E6=96=AD=E8=A8=80=E8=A1=A5=E5=85=A8=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- content/chapters/chapter4.json | 62 +++++++++++++++++----------------- content/chapters/chapter5.json | 48 +++++++++++++------------- content/chapters/chapter6.json | 48 +++++++++++++------------- content/chapters/chapter7.json | 60 ++++++++++++++++---------------- content/chapters/chapter8.json | 56 +++++++++++++++--------------- content/chapters/chapter9.json | 50 +++++++++++++-------------- scripts/verify-season.ts | 48 ++++++++++++++++++++++++-- src/engine/flags.ts | 34 +++++++++++++++++++ 8 files changed, 243 insertions(+), 163 deletions(-) diff --git a/content/chapters/chapter4.json b/content/chapters/chapter4.json index 9ef81df..2c8c5e9 100644 --- a/content/chapters/chapter4.json +++ b/content/chapters/chapter4.json @@ -2,45 +2,45 @@ "id": "chapter4", "act": 2, "title": "第 4 章 · 两本账", - "estimatedMinutes": 30, + "estimatedMinutes": 32, "startNodeId": "c4-opening", "nodes": [ - {"id":"c4-opening","type":"dialogue","speaker":"旁白","text":"第九日,你们撤出的是宫墟,不是苍梧。北驿的窗纸被雨打薄了,隔着一层白,城里有人磨刀,有人哄孩子,有人拿昨夜的剩饭喂鸡。九天后,这些声音将一齐从考古报告里消失。阿棠的小腿仍固定着,坐在窗下,把拐杖横在膝头。沈铎铺开回程图,图上那条线,却到不了任何一户人家的门。","next":"c4-echo"}, - {"id":"c4-echo","type":"dialogue","speaker":"旁白","text":"【若 c3_06_response = a_confront:馆长发来一份加密说明。封面写着你的编号,内页仍是空白。你把它投到公共屏上,等它自己把话说完。】【若 c3_06_response = b_conceal:你尚未说出昨夜的事,温简先把记录板转向所有人:有一笔账,他不能再独自记了。】【若 c3_06_confidant = shenduo:沈铎先开口:提前回程,是我下的令。昨夜的消息由谁带来,不必追问。】【若 c3_06_confidant = atang:阿棠把你的袖口拉了一下,又松开:咱俩说好一起查。可这么大的事,不能一直只有咱俩知道。】【若 c3_06_confidant = wenjian:温简取出昨夜约好的两份记录。一份有档案馆的水印;另一份,纸边被火烘得微卷。】","next":"c4-ledger"}, - {"id":"c4-ledger","type":"dialogue","speaker":"温简","text":"我先交代我的。板子有两栏,一栏是你们说过的话,一栏叫情绪回收率。我过去以为后者是设备校准。昨夜拆开表头,才发现它算的是定位波形。原始讲述没有给队友看;可我们连这些数字去了哪里,都不知道。我签收过耗材,不能装作自己只握着一支笔。","next":"c4-01"}, - {"id":"c4-01","type":"choice","pointId":"C4-01","prompt":"原始私人讲述已锁定,不向小队开放。温简需要你决定这场核账先从哪里开始;另外两项今天也会做,但午前只能完成一项。","dimensions":["conflict_style","values"],"options":[ - {"id":"audit","label":"先对设备日志。暂缓谈动机,午前把哪些数字传走了查清;人各自的不安要再等一会儿。","next":"c4-01-a"}, + {"id":"c4-opening","type":"dialogue","speaker":"旁白","text":"第九日。你们撤出的是宫墟,不是苍梧。北驿的窗纸被雨打薄了,隔着一层白,城里有人磨刀,有人哄孩子,有人拿昨夜的剩饭喂鸡。九天后,这些声音将一齐从考古报告里消失——或者说,一齐搬到报告写不到的地方去。阿棠把拐杖横在膝头,用指头敲了敲夹板:「哎,别都用看伤员的眼神看我。腿折了,耳朵没折。」沈铎铺开回程图。图上那条线画得很准,驿站、渡口、锚点,一处不缺——只是到不了任何一户人家的门。【若 wenjian_health = weak:温简把记录板摆上桌,先说了句不相干的:「病好了。」(停顿)「病里那几夜,是你们替我值的班。我记着呢——记在不用上报的那本上。」】","next":"c4-echo"}, + {"id":"c4-echo","type":"dialogue","speaker":"旁白","text":"【若 c3_06_response = a_confront:晨鼓起时,馆长发来一份加密说明。封面写着你的编号 C-2049。你当着全队的面解开——内页是空的。纸页最底只有一行小字:「你问到点上的那几件事,今日逐项答复。空白页是签收:我收到了,且不打算装作没收到。」沈铎看着那页空白,说:「它学会先认账了。」顿了顿,「看看今天认到哪一行。」】【若 c3_06_response = b_conceal:你还没决定要不要说出昨夜的事。雨声里,温简先把记录板转向所有人——他开口前看了你一眼,那一眼不是追问,是让路:「有笔账,我不能再独自记了。」你昨夜独自咽下的东西,此刻有人替你掀开了另一角。你忽然发现,独自守着秘密这三天,你看所有人的手——现在这个习惯可以放下了。】【若 c3_06_confidant = shenduo:沈铎先开口,短句,像点卯:「提前回程,是我下的令。昨夜的消息由谁带来,不必追问——追问就追到我为止。」他把你摘出知情者名单的方式,是把自己钉在名单第一个。阿棠看看他,又看看你,难得没追问。老鬼拨着算盘珠,慢悠悠:「队长这是把锅往自家灶上端啊。」没人笑。】【若 c3_06_confidant = atang:阿棠把你的袖口拉了一下,又松开——她腿动不了,这两下拉扯就是她能走的全部路。「咱俩说好一起查。可这么大的事,不能一直只有咱俩知道。」她压低声音,「哎,说出去就不叫咱俩一伙的了……可不往外说,咱俩就是在替它保密。你选哪个?我都认。」她把选择的烫手原样递回给你,自己先把手背在了身后。】【若 c3_06_confidant = wenjian:温简取出昨夜约好的两份记录,并排放在桌上。一份有档案馆的水印,纸面平整;另一份没有水印,纸边被火烘得微卷。「一份给它,一份给我们。」他说得很慢,「昨夜之后,第二份不该只有我一个人看见。」他把微卷的那本推向桌子中央,没有推向任何一个人——它是大家的,或者谁也不是的。】","next":"c4-ledger"}, + {"id":"c4-ledger","type":"dialogue","speaker":"温简","text":"我先交代我的。板子有两栏。一栏是你们说过的话——你们知道这栏。另一栏叫「情绪回收率」。(停顿)我过去以为那是设备校准。昨夜我拆开表头,它算的是定位波形。原始讲述没有给队友看过——这一点我守住了。可我们连这些数字去了哪里,都不知道。我签收过耗材,签过三次。(他看着自己的手)不能装作自己只握着一支笔。【若 flag_wenjian_secret = true:(声音放低半度,没有看你,但话是给你的)篝火那晚,我跟你说过板子上多一行。当时我只敢说到那儿。(顿)现在说全。】沈铎:多的一行去了哪里,谁定的,能不能停——三件事。(他看你)采集员。核账的次序,你定。阿棠(杵着拐杖直起身):哎,先说好——今天这账,不许再有人替别人省一句话。","next":"c4-01"}, + {"id":"c4-01","type":"choice","pointId":"C4-01","prompt":"温简:原始私人讲述已锁定,不向小队开放——这条不用议,是死的。要议的是次序。日志、经过、权限,三件都今天做。但午前,只做得了一件。沈铎:先做什么,暴露的不是效率,是你信任受损的时候,先修复哪一层。所以规程不定这个。你定。老鬼(罕见地没笑):三样都好,可午前就那点儿日头——挑哪样,另两样就得在雨里多晾半天。","dimensions":["conflict_style","values"],"options":[ + {"id":"audit","label":"先对设备日志。暂缓谈动机,午前把哪些数字传走了查清;人各自的不安,要再等一会儿。","next":"c4-01-a"}, {"id":"hear","label":"先让温简把经过说完。日志封存到午后;我想先听他在哪一步开始怀疑。","next":"c4-01-b"}, {"id":"boundary","label":"先停用非必要上传,给每个人重新选择的时间。今天少采一段街市,也先把边界说清。","next":"c4-01-c"}]}, - {"id":"c4-01-a","type":"dialogue","speaker":"旁白","text":"你们一笔笔核对。温简没有辩解,老鬼也没有插科打诨。午钟响时,上传项目查清了:是设备定位摘要,不是私密屋里的内容。表格干净下来,温简的脸色却没有好。他问:那关于我,你们打算什么时候问?你把下午第一行时间留给他。","next":"c4-02-intro"}, - {"id":"c4-01-b","type":"dialogue","speaker":"旁白","text":"温简讲到第三次签收时停了很久。他承认自己发现数字不对,却怕停掉采集就再也见不到苍梧。你没有替他接那句求情。午前过去,日志仍锁在匣中;阿棠用指节敲了敲匣盖:下午别再把这个往后放。温简说,好。","next":"c4-02-intro"}, - {"id":"c4-01-c","type":"dialogue","speaker":"旁白","text":"上传灯一盏盏暗下去。街市的晨叫卖没有录全,窗外那声卖梅子的吆喝成了无法补录的一声。温简把停用时间写在纸上:至少,从这里开始,我们知道自己同意了什么。沈铎将午后的查账时间圈住,没有划掉。","next":"c4-02-intro"}, - {"id":"c4-02-intro","type":"dialogue","speaker":"旁白","text":"午后,日志、经过和权限都核过一遍。温简保留公开口述的纸本备份,个人记忆各自封存。第二本账记的不是别人的秘密,是谁允许了什么。老鬼被叫到桌前,玉饰仍在证物盒里。他盯着它,笑容像一层旧漆,终于从嘴角剥落。","next":"c4-confession"}, - {"id":"c4-confession","type":"dialogue","speaker":"老鬼","text":"我闺女做的最后一份图录,就画着这个纹。她死后,我总想着,若找着原件,是不是就能补上她没写完的半页。上次我放回去,第二次又伸手。说给孩子带礼物,是拿死人给自己遮脸。念想是真的,偷拿也是真的。你们别替我把两件事混成一件。","next":"c4-02"}, - {"id":"c4-02","type":"choice","pointId":"C4-02","prompt":"玉饰立即留地封存,违规事实照实备案,没有人可以带走。现场采集仍缺一名熟悉物资的人;在正式裁定前,老鬼怎样继续参与?","dimensions":["conflict_style"],"options":[ + {"id":"c4-01-a","type":"dialogue","speaker":"旁白","text":"你们一笔笔核对。雨敲窗纸,算盘声和翻页声混在一起。温简没有辩解,老鬼也没有插科打诨。午钟响时,上传项目查清了:是设备定位摘要,不是私密屋里的内容。表格干净下来,温简的脸色却没有好。他合上板子,问了一句让全屋安静的话:「那关于我——你们打算什么时候问?」你把下午第一行时间留给了他。阿棠小声嘀咕:「查清了数,没清人。」","next":"c4-02-intro"}, + {"id":"c4-01-b","type":"dialogue","speaker":"旁白","text":"温简讲。从第一次签收讲起,讲到第三次时停了很久。他承认自己早就发现数字不对,却怕停掉采集就再也见不到苍梧——「我拿你们的故事,换我的舍不得。」你没有替他接那句求情,也没人替他接。午前过去,日志仍锁在匣中。阿棠用指节敲了敲匣盖,敲得很重:「下午别再把这个往后放。」温简说,好。——他等这场问话,等了三章。","next":"c4-02-intro"}, + {"id":"c4-01-c","type":"dialogue","speaker":"旁白","text":"上传灯一盏盏暗下去。窗外的街市声一下显得很大——然后你意识到,街市的晨叫卖没有录全,那声卖梅子的吆喝,成了无法补录的一声。温简把停用时间写在纸上:「至少,从这里开始,我们知道自己同意了什么。」沈铎将午后的查账时间圈住,没有划掉。老鬼望着窗外,可惜地咂嘴:「一段街市啊……不过这买卖,做得。」","next":"c4-02-intro"}, + {"id":"c4-02-intro","type":"dialogue","speaker":"旁白","text":"午后,日志、经过和权限都核过一遍。温简保留公开口述的纸本备份,个人记忆各自封存。第二本账记的不是别人的秘密,是谁允许了什么。【若 flag_shenduo_cover = true:老鬼这桩事,不在任何上报文书里——它只在队内存档的折页里压着。此刻,沈铎亲手把那页折页抽出来,摊平在桌上。「压着的,也是账。」他说。】沈铎:老鬼。到你了。老鬼被叫到桌前。他盯着证物盒看了很久,笑容像一层旧漆,终于从嘴角剥落。剥得很慢,一片一片的。","next":"c4-confession"}, + {"id":"c4-confession","type":"dialogue","speaker":"老鬼","text":"我闺女做的最后一份图录,就画着这个纹。她死后,我总想着,若找着原件,是不是就能补上她没写完的半页。(停顿,不再用「咱们」)上次我放回去,第二次又伸手。说给孩子带礼物,是拿死人给自己遮脸。念想是真的,偷拿也是真的。你们别替我把两件事混成一件。【若 c2_06_jade = a_public:(看你一眼,对全队)头一回在营地,这位当场喝破我。我当时笑他较真。——现在说,那声喝破的,是这桩事里唯一干净的一声。】【若 c2_06_jade = b_private:(对你,点头)你私下找过我,东西我交了,还撂了句「队里不止我一个人手上不干净」。(对沈铎方向抬抬下巴)那句不是栽赃。今天看来,是天气预报。】【若 c2_06_jade = c_watch:(忽然看你,看得很直)那天夜里,箱子边上有第二双脚印。我放回去之后,对着箱子说「急什么」——是说给暗处听的。你果然在。(顿)你没吭声,我记到了今天。沉默的人,账记得最久。】【若 flag_laogui_thread = true:集结甲板上,你是唯一接我话茬的。我当时当你上道。(摇头)现在看,你那时候就看出来了——我不是纯贪。纯贪的人,手不会抖。】","next":"c4-02"}, + {"id":"c4-02","type":"choice","pointId":"C4-02","prompt":"沈铎:规程走完一半了。玉饰立即留地封存,违规事实照实备案,没有人可以带走——这些没有议的余地。有议的余地的只有一件:在档案馆正式裁定之前,老鬼怎么继续在场。温简(低声):他的物资效率是真的——昨天半天,他谈下的补给折价,够我们多用三天。处分他,队里是真的亏。老鬼(举手,苦笑):别,别替我说话。今天这桌上,我的话最不值钱。阿棠:哎——话不值钱,手艺值钱。两码事。(看你)你裁吧。这次我不抢话。","dimensions":["conflict_style"],"options":[ {"id":"supervise","label":"让他继续做物资联络,由我复核每次交接。保住效率,但我少半天自己的采集。","next":"c4-02-a"}, {"id":"reassign","label":"让他改做公开口述,不再接触遗存。我们重新分物资工作,今天走慢一些。","next":"c4-02-b"}, {"id":"pause","label":"先停一天现场任务,让他在驿站完成说明。队里今天少个人,双方也都冷静一下。","next":"c4-02-c"}]}, - {"id":"c4-02-a","type":"dialogue","speaker":"老鬼","text":"行。以后每过我手一件,你都看。不是你给我担保,是我给你添活。你们一同核了三箱绳具,老鬼第一次没把零头抹掉。你自己的访谈本,那一页仍是白的。","next":"c4-shenduo"}, - {"id":"c4-02-b","type":"dialogue","speaker":"旁白","text":"老鬼交出库钥,坐到廊下问驿卒一天烧几担柴。起初没人愿答,后来驿卒骂起潮柴贵,他居然真能接上。屋里,你们重新学了一遍他的物资编号。半天少走了两条巷,黄昏却多了一段灶间人的口述。","next":"c4-shenduo"}, - {"id":"c4-02-c","type":"dialogue","speaker":"旁白","text":"老鬼留在驿站,说明写了又揉,最后只留下三行事实,没有一句闺女。你们少走了一处采集点。晚归时,他已把公共账目摊好,但没有替自己把名字重新排进出勤栏。","next":"c4-shenduo"}, - {"id":"c4-shenduo","type":"dialogue","speaker":"沈铎","text":"还有我的。出发前,我收到过补充令:大火正位前一天,撤走全部外来锚点。理由是干扰水门的观测回路,不是防洪预警。我知道回程另有缘故,不知道璧的下落。没告诉你们,是我擅自把知情当成负担替你们卸了。【若 flag_shenduo_cover = true:替老鬼压住上报,也是同一件错事的另一张脸:我以为我背得动,就可以替别人决定。】","next":"c4-date"}, - {"id":"c4-date","type":"dialogue","speaker":"旁白","text":"阿棠把碗搁下:你替我们省的事,最后都成了我们猜你。沈铎没有再说规程。温简展开驿站新挂的工役历,给队伍留了一件可以一起做的事。纸上墨未干,三行日期像三处刚缝好的伤口。","next":"c4-03"}, - {"id":"c4-03","type":"choice","pointId":"C4-03","prompt":"驿站历表注明今日为癸卯,次日甲辰;干支依次每日递进一位。水门工单:辛亥撤观测外锚,壬子昏中启南门。结合历表,核对两个日期。苍梧历法为架空设定,不用月份单独推现代公历。","dimensions":["culture"],"puzzle":{"questions":[{"prompt":"从今日癸卯算起,辛亥是几天后?","options":["七天后","八天后","九天后"],"answer":1},{"prompt":"辛亥撤锚、壬子启门的顺序支持哪项结论?","options":["撤锚安排在启门前一天,二者有先后关系","大火是一次真实火灾","已经证明城里所有人会死亡"],"answer":0}],"hints":["天干十位、地支十二位分别顺推。已给出明日甲辰,可从它开始数。","甲辰、乙巳、丙午、丁未、戊申、己酉、庚戌、辛亥、壬子。","辛亥是八天后,壬子九天后。先后关系可核实,死亡与火灾均没有证据。"]},"options":[{"id":"submit","label":"提交历表核对","next":"c4-calendar-result"},{"id":"calendar-EXIT","label":"请温简核对,听他解释","next":"c4-calendar-result"}]}, - {"id":"c4-calendar-result","type":"dialogue","speaker":"温简","text":"辛亥第八天,壬子第九天。馆长原定让我们早走一天,是要提前撤掉锚点,不是已经证明城会毁灭。沈队改到第七天,也落在安全窗口内。可工单还有半句:门启之后,人徙南垣。你们看,写的是人,不是器物。","next":"c4-04-intro"}, - {"id":"c4-04-intro","type":"dialogue","speaker":"阿棠","text":"(入夜,她把药碗放远一点)小时候我妈出差,说星期五回来。我没问是哪一个星期五,穿着校服等到楼道的声控灯都不亮了。后来才知道,她换工作了,不敢告诉我。所以我讨厌人替我挑好听的说。可刚才沈队真把话说全,我又难受得一句接不住。你呢?有没有一次,你重新信了谁一点点?不必讲伤口,讲他后来做了什么就行。也可以陪我把这碗苦的喝完。","next":"c4-04"}, - {"id":"c4-04","type":"narration","pointId":"C4-04","mechanism":"篝火互惠 · 补过的碗","prompt":"一段信任慢慢回来的小事,或者今晚什么也不说。话留在你的私人记录里,阿棠不会替你转述;两种方式都接着走。","dimensions":["attachment","self_disclosure"],"followUp":{"maxQuestions":0,"strategy":"不追问创伤与第三人身份。"},"followUps":{},"variants":[{"signature":"行动带来安心","variantId":"c4_action","label":"她把药喝尽,将空碗搁稳。窗纸外,有人在补一只漏雨的瓦。","tint":"#56776b"},{"signature":"仍然犹疑","variantId":"c4_wait","label":"药凉了一点。她没有催,杯底的热气还在。","tint":"#787d88"},{"signature":"沉默","variantId":"c4_silent","label":"你们坐着听雨。她把另一只干净的碗推到你手边,没有问里面为什么空着。","tint":"#687b72"}],"next":"c4-05-intro"}, - {"id":"c4-05-intro","type":"dialogue","speaker":"旁白","text":"第十日清晨,器材核验全部结束。馆长第一次给出能查证的答复:问心石是外来定位器,调用已授权的记忆作本地成像;私密屋里不录入新内容。所谓燃料质量,只是锚点稳定度,沉默基线同样能定位。它把技术叫成了献祭,把未公开的任务风险叫成了体谅。设备没有偷走谁的一生,那种说话方式却使你们很难再把一生交给它。","next":"c4-05"}, - {"id":"c4-05","type":"choice","pointId":"C4-05","prompt":"所有人都同意继续查证,也都还有疑虑。沈铎提议今晚保留一段不谈公务的时间。你更愿意怎样过?这不是选恋人。","dimensions":["mate_preference"],"options":[{"id":"shared","label":"和阿棠坐门口看雨,说些没用的小事;我今晚不想把沉默留给自己。","next":"c4-05-a"},{"id":"parallel","label":"和温简各读各的,坐在同一盏灯下;我想有人在,又不必一直说话。","next":"c4-05-b"},{"id":"scheduled","label":"先独处,约沈铎明早一起喝茶;今晚留给自己,明天的时间我会守约。","next":"c4-05-c"}]}, - {"id":"c4-05-a","type":"dialogue","speaker":"阿棠","text":"她给你数雨檐上的水珠,数乱了就怪风。你们什么正事也没谈。睡前她问:明晚还坐这儿?你说,明晚再商量。她点点头,替你留了半块干燥的门槛。","next":"c4-06-intro"}, - {"id":"c4-05-b","type":"dialogue","speaker":"温简","text":"灯往你这边一点?他挪完就不再说话。两个人翻页的声音并不整齐,偶尔碰在一起。临睡时他夹好书签:今天这半页,我看了三遍。不是书不好,是旁边有人,让人忽然不急着看完。","next":"c4-06-intro"}, - {"id":"c4-05-c","type":"dialogue","speaker":"旁白","text":"沈铎没有问你独处时做什么。第二天,他在约好的时刻摆好两杯茶,其中一杯没加糖。你告诉他自己的口味,他记在那张总记绳具重量的纸背面。昨夜的安静没有被追讨,今晨的约也没有落空。","next":"c4-06-intro"}, - {"id":"c4-06-intro","type":"dialogue","speaker":"旁白","text":"第十一日,城里的净水车整齐向南。你们拿到三份可验证的通行安排:水官允许随工役看公簿,驿卒可引见南市居民,档案馆愿开放设备日志。一天只够走一处,其余消息晚间交换。谁都不必为抢线索闯禁区。","next":"c4-06"}, + {"id":"c4-02-a","type":"dialogue","speaker":"老鬼","text":"「行。以后每过我手一件,你都看。」老鬼伸出双手,像给人上铐似的把掌心翻给你,「不是你给我担保,是我给你添活。」你们一同核了三箱绳具,老鬼第一次没把零头抹掉,一笔一笔报数报得极慢——他这辈子大概没这么慢过。你的访谈本,那一页仍是白的。黄昏时他把一杯热茶放在你那页白纸旁边,什么都没说。","next":"c4-shenduo"}, + {"id":"c4-02-b","type":"dialogue","speaker":"旁白","text":"老鬼交出库钥,坐到廊下,问驿卒一天烧几担柴。起初没人愿答,后来驿卒骂起潮柴贵,他居然真能接上——接到后来,驿卒把灶间传了三代的省柴法子都倒了出来。屋里,你们重新学了一遍他的物资编号,学得磕磕绊绊。半天少走了两条巷。黄昏盘点,沈铎看着多出来的那段灶间口述,说了两个字:「不亏。」——停了一下,又说:「也不赚。」","next":"c4-shenduo"}, + {"id":"c4-02-c","type":"dialogue","speaker":"旁白","text":"老鬼留在驿站写说明。你们少走了一处采集点,巷口的拓片只拓了一半。晚归时,说明摊在桌上:写了又揉,揉了又写,最后只留下三行事实,没有一句闺女。公共账目他已摊好,每一栏都对得上——但他没有替自己把名字重新排进出勤栏。那一栏空着。阿棠盯着那栏空白看了一会儿,把册子合上了:「这个,得他自己写。」","next":"c4-shenduo"}, + {"id":"c4-shenduo","type":"dialogue","speaker":"沈铎","text":"(他站着,没坐——他交代的时候不坐)还有我的。出发前,我收到过补充令:大火正位前一天,撤走全部外来锚点。理由是干扰水门的观测回路——不是防洪预警,不是城毁预报。我知道回程另有缘故,不知道璧的下落。没告诉你们,是我擅自把「知情」当成负担,替你们卸了。【若 flag_shenduo_cover = true:还有。替老鬼压住上报,是同一件错事的另一张脸:我以为我背得动,就可以替别人决定。那页折页今天已经归进上报文书——我签的名,不是你的。】","next":"c4-date"}, + {"id":"c4-date","type":"dialogue","speaker":"旁白","text":"阿棠把碗搁下,搁得有点重:「你替我们省的事,最后都成了我们猜你。」沈铎没有辩解:「嗯。」他没有再说规程。屋里静了很久。温简展开驿站新挂的工役历,给队伍留了一件可以一起做的事——纸上墨未干,三行日期像三处刚缝好的伤口。","next":"c4-03"}, + {"id":"c4-03","type":"choice","pointId":"C4-03","prompt":"温简把历表与水门工单并排抚平:历表注明今日为癸卯,次日甲辰,干支依次每日递进一位;工单两行——辛亥,撤观测外锚;壬子,昏中启南门。你在观星台算过「那一天」。现在,用他们的历,再算一遍。(苍梧历法为架空设定,干支纪日沿用真实规则,不用月份单独推现代公历。)","dimensions":["culture"],"puzzle":{"questions":[{"prompt":"从今日癸卯算起,辛亥是几天后?","options":["七天后","八天后","九天后"],"answer":1},{"prompt":"辛亥撤锚、壬子启门的顺序支持哪项结论?","options":["撤锚安排在启门前一天,二者有先后关系","大火是一次真实火灾","已经证明城里所有人会死亡"],"answer":0}],"hints":["天干十位、地支十二位,分别顺推,每天各进一格。已经告诉你明天是甲辰——从它开始数,一天一格,数到辛亥停。","替你排好了:甲辰、乙巳、丙午、丁未、戊申、己酉、庚戌、辛亥、壬子。数一数,辛亥是第几天,壬子呢?","辛亥是八天后,壬子九天后。撤锚在启门前一天——先后关系可以核实;火灾和死亡,工单上一个字都没有。"]},"options":[{"id":"submit","label":"提交历表核对","next":"c4-calendar-result"},{"id":"calendar-EXIT","label":"请温简核对,听他解释","next":"c4-calendar-result"}]}, + {"id":"c4-calendar-result","type":"dialogue","speaker":"温简","text":"辛亥,第八天。壬子,第九天。(他把笔放下)你在宫墟里自己算过的那笔账,现在有了工单的纸面——馆长原定让我们早走一天,是提前撤掉锚点,不是已经证明城会毁灭。【若 c3_06_confidant = shenduo:沈队改到第七天,也落在安全窗口内——他替你提前的那一日,现在看,挪得克制。】可工单还有半句,刚才没人念:门启之后,人徙南垣。(他抬头,一字一字)你们看——写的是人,不是器物。沈铎:早走一天,撤的是锚,不是逃命。(顿)这半句,档案馆欠我们三十天。","next":"c4-04-intro"}, + {"id":"c4-04-intro","type":"dialogue","speaker":"阿棠","text":"(入夜,驿站廊下。她把药碗往远处推了推,像推开一个话题,又把它拉回来)白天核了一天的账。轮到我了,我也有一笔。小时候我妈出差,说星期五回来。我没问是哪一个星期五,穿着校服在楼道里等,等到声控灯都不亮了——后来才知道,她换工作了,不敢告诉我。她挑了个好听的先说。所以我最恨人替我挑好听的说。可今天下午,沈队真把话说全了,我又难受得一句接不住。哎,别答。答了就成心理咨询了。我问你个能答的——你有没有一次,重新信了谁一点点?不必讲伤口,就讲他后来做了什么。一件小事就行。","next":"c4-04"}, + {"id":"c4-04","type":"narration","pointId":"C4-04","mechanism":"篝火互惠 · 补过的碗","prompt":"别讲大道理。讲一个你看见或听见的细节——他后来做了什么,让你重新信了他一点点?那件小事是什么颜色、什么声音?先说那个细节,再说那件事。不想讲也行——陪她把那碗苦的喝完,今晚就算过了。","dimensions":["attachment","self_disclosure"],"followUp":{"maxQuestions":1,"strategy":"Jev 六维缺失检测,按幻境渲染价值取最高缺口,阿棠口吻模板追问一句;不追问创伤与第三人身份。「记不清了」为合法回答,阿棠回应:记不清就记不清。这种事本来就长在手上,不长在嘴上。"},"followUps":{"visual":"等等等等——先说那个画面。那件事发生的时候,你眼前是什么颜色?灯?天?还是他身上的什么?","auditory":"那当时有什么声音吗?电话、敲门、还是他一句什么话?你先说那个声音。","olfactory_gustatory":"我插一句——那天有没有吃的喝的?人和好这种事,我记得总有一碗什么东西在旁边。","person":"他是谁我不打听——就一句,他现在还在你生活里吗?不在了也算答案。","time_place":"那是哪年的事?在哪儿?屋里还是外头?给我个画面,不然我脑补不出来。","emotion":"所以现在提起来,你是暖的还是还膈应?说实话啊,我不笑话你。"},"variants":[{"signature":"行动带来安心","variantId":"c4_action","label":"她把药喝尽,将空碗搁稳。窗纸外,有人在补一只漏雨的瓦,笃、笃。基调:具体的行动是最好的和解书。","tint":"#56776b"},{"signature":"仍然犹疑","variantId":"c4_wait","label":"药凉了一点。她没有催,杯底的热气还在。基调:信不回来也没关系,等本身就是回答。","tint":"#787d88"},{"signature":"沉默","variantId":"c4_silent","label":"你们坐着听雨。她把另一只干净的碗推到你手边,没有问里面为什么空着。基调:无话可说的夜晚也有人陪坐。","tint":"#687b72"}],"next":"c4-05-intro"}, + {"id":"c4-05-intro","type":"dialogue","speaker":"馆长","text":"(第十日清晨,器材核验全部结束。它的声音从通讯频道里出来——这一次,先沉默了五秒,像在为措辞让路)昨夜你们要的三件事,第一件我现在答复,可以查证。问心石,是档案馆投放的外来定位器。它调用的是你们在离别之门已授权的记忆素材,做本地成像;私密屋内不录入新内容。所谓「燃料质量」,只是锚点稳定度的技术读数——沉默基线同样能定位。(停顿)它把技术叫成了献祭,把未公开的任务风险叫成了体谅。设备没有偷走谁的一生。但那种说话方式,使你们很难再把一生交给它——这句损失,记在档案馆账上,不记在设备账上。温简(低声,像在核对):定位波形。所以表头没说谎,只是没说全。沈铎:答复收到。第二件第三件,午后核。(他关了频道,看大家)规程问完了。今晚留一段不谈公务的时间——这是队里欠每个人的。","next":"c4-05"}, + {"id":"c4-05","type":"choice","pointId":"C4-05","prompt":"今晚不谈公务。你更愿意怎样过?","dimensions":["mate_preference"],"options":[{"id":"shared","label":"和阿棠坐门口看雨,说些没用的小事;我今晚不想把沉默留给自己。","next":"c4-05-a"},{"id":"parallel","label":"和温简各读各的,坐在同一盏灯下;我想有人在,又不必一直说话。","next":"c4-05-b"},{"id":"scheduled","label":"先独处,约沈铎明早一起喝茶;今晚留给自己,明天的时间我会守约。","next":"c4-05-c"}]}, + {"id":"c4-05-a","type":"dialogue","speaker":"阿棠","text":"她给你数雨檐上滴的水珠,数乱了就怪风。你们什么正事也没谈,谈到最后连「没用的小事」都谈完了,安静了一会儿——她忽然说:「哎,这种不说话也不尴尬的劲儿,比说话难。」睡前她问:明晚还坐这儿?你说,明晚再商量。她点点头,替你留了半块干燥的门槛。门槛是留着的,约定是不欠着的——两样她都分得很清。","next":"c4-06-intro"}, + {"id":"c4-05-b","type":"dialogue","speaker":"温简","text":"「灯往你这边一点?」他挪完就不再说话。两个人翻页的声音并不整齐,偶尔碰在一起,像两句没约好的对话。临睡时他夹好书签:「今天这半页,我看了三遍。不是书不好——是旁边有人,让人忽然不急着看完。」他说完就去睡了,没等你的回应;平行独处的账,当场两讫,不赊到明天。","next":"c4-06-intro"}, + {"id":"c4-05-c","type":"dialogue","speaker":"旁白","text":"沈铎没有问你独处时做什么。第二天,他在约好的时刻摆好两杯茶,其中一杯没加糖——你昨天没说过口味,他是从三天前的早饭桌上记下的。你告诉他,他记在那张总记绳具重量的纸背面。昨夜的安静没有被追讨,今晨的约也没有落空;但你独自的那一晚,全队没人知道你怎么过的——这正是你要的,也正是它贵的。","next":"c4-06-intro"}, + {"id":"c4-06-intro","type":"dialogue","speaker":"旁白","text":"第十一日晨,雨后初晴。一队净水车从驿站门口经过,木桶新箍的,车辕上挂着水署的铜牌,整整齐齐向南。温简(看着车队):净水往南。昨天公簿申请、驿卒引见、设备日志,三份通行都批下来了——都是可验证的安排。一天只够走一处,其余两路晚间交换。谁都不必为抢线索闯禁区。沈铎:三路的成色我说一句,不指定。公簿:可核,但说话受官署流程约束,问三句答一句。街访:自由,但听到的是传闻,要自己筛。日志:最省事——也最靠档案馆给的接口,它给你什么,你才能看什么。(看你)你亲自走哪一路?","next":"c4-06"}, {"id":"c4-06","type":"choice","pointId":"C4-06","prompt":"今天你亲自去看哪一处?另外两路由队友承担,核心情报晚间全部共享。","dimensions":["risk"],"options":[{"id":"register","label":"随沈铎查公簿。资料可核验,但说话受官署流程约束。","next":"c4-06-a"},{"id":"street","label":"随老鬼访南市。能听到未成文的消息,也得自己辨别传闻。","next":"c4-06-b"},{"id":"device","label":"留驿站复核日志。少接触街上的变数,代价是依赖档案馆给的接口。","next":"c4-06-c"}]}, - {"id":"c4-06-a","type":"dialogue","speaker":"旁白","text":"公簿上,每一辆净水车都领了回程牌,却没有填写回程日期。沈铎照手续申请副本,你们在门房等了整个午后。纸到手时,落日刚好照亮一行小字:南垣以外,不复称臣。","next":"c4-ending"}, - {"id":"c4-06-b","type":"dialogue","speaker":"旁白","text":"南市的人各有一套说法。有人说王要迁都,有人说水要变甜,一个补鞋的只说鞋底最近卖得快。老鬼不收传闻作定论,只把净水车往哪里去、谁见过,逐户问清。晚间,他带回一张画满歪斜门牌的纸。","next":"c4-ending"}, - {"id":"c4-06-c","type":"dialogue","speaker":"旁白","text":"接口开了一半,你们能看见电流何时变化,看不见馆长当年为何作出判断。温简在缺页处画了一个空框,没有把它补成猜测。正午记录里,所有外来信号都指向水门,而不是那座空着的璧座。","next":"c4-ending"}, - {"id":"c4-ending","type":"dialogue","speaker":"旁白","text":"夜里三路消息摊在一起:净水往南,人也将往南;国祭的璧没有失窃,它被拆成了水门的量水构件。守墓老人赶来,把一句话放在你们桌上:你们找的那个坟,还没有死人。可他们已经在给活着的人销名字了。门外,城中开始试敲迁户钟。每一下都不响亮,却把碗里的水震出一圈细纹。","next":"c4-end"}, + {"id":"c4-06-a","type":"dialogue","speaker":"旁白","text":"公簿房一股陈墨味。每一辆净水车都领了回程牌,却没有填写回程日期——领了回程凭证,没承诺回程,这一栏空白比任何一行字都响。沈铎照手续申请副本,你们在门房等了整个午后。流程是笼子,也是扶手:纸到手时,落日刚好照亮一行小字——「南垣以外,不复称臣。」沈铎把副本折成四方,收进贴身的袋子:「等的这一个午后,值。」","next":"c4-ending"}, + {"id":"c4-06-b","type":"dialogue","speaker":"旁白","text":"南市的人各有一套说法。有人说王要迁都,有人说水要变甜,一个补鞋的只说鞋底最近卖得快。老鬼不收传闻作定论,只把「净水车往哪里去、谁见过」逐户问清——他蹲在摊子前帮人递线、穿针,话是顺手问出来的。晚间他带回一张画满歪斜门牌的纸:「传闻是风,这个是脚印。」纸上三十六户,见过车队的,户户画押。只是你分不清——这三十六户里,有几户是冲着他的人情画的押。","next":"c4-ending"}, + {"id":"c4-06-c","type":"dialogue","speaker":"旁白","text":"接口开了一半。你们能看见电流何时变化,看不见馆长当年为何作出判断——接口是档案馆开的窗,窗框是它做的。温简在缺页处画了一个空框,没有把它补成猜测。正午记录里,所有外来信号都指向水门,而不是那座空着的璧座。这是今天最硬的一条——也是经由那堵墙递过来的一条。你在记录旁注了一行小字:「来源:对方自证。」","next":"c4-ending"}, + {"id":"c4-ending","type":"dialogue","speaker":"旁白","text":"夜里,三路的收获摊在一张桌上,拼出一句话:净水往南,人也将往南。公簿的空白回程牌、门牌纸的三十六个画押、日志里指向水门的信号,三样互不相识的证据,说的是同一件事。沈铎:还有璧。(他把三路纸推开,露出中间的空处)宫墟那组鼎是国祭器,璧座是空的。今天日志说,信号不去璧座,去水门——璧不在祭坛上,在水门上。它没失窃。它被拆了,拆成量水的构件。阿棠:……国祭的璧,拆了去量水?(她压低声音)馆长说,璧的事一个字都不许提。可你看这些苍梧人——他们提得坦坦荡荡。这时门响了。守墓老人进来,不坐,把一句话放在你们桌上,像放一块压纸的石头:「你们找的那个坟,还没有死人。可他们已经在给活着的人,销名字了。」温简(轻声):销名字……(他想起陵区那句谶语)不是人走了,是请走的。销籍的「销」,就是请帖的「请」。门外,城里开始试敲迁户钟。每一下都不响亮,却把碗里剩的水,震出一圈细纹。","next":"c4-end"}, {"id":"c4-end","type":"chapterEnd","nextChapter":"chapter5"} ] } diff --git a/content/chapters/chapter5.json b/content/chapters/chapter5.json index bda9bbe..23f5bf2 100644 --- a/content/chapters/chapter5.json +++ b/content/chapters/chapter5.json @@ -1,31 +1,31 @@ { - "id":"chapter5","act":2,"title":"第 5 章 · 借一盏灯","estimatedMinutes":30,"startNodeId":"c5-opening", + "id":"chapter5","act":2,"title":"第 5 章 · 借一盏灯","estimatedMinutes":32,"startNodeId":"c5-opening", "nodes":[ - {"id":"c5-opening","type":"dialogue","speaker":"旁白","text":"第十二日,南市开始卖旧东西。没有喊价,主人坐在摊后,摸着自己用过的碗沿。新陶盆便宜,缺了口的反而不肯卖。一名妇人把门框上量孩子身高的刻度描到布上,描到最后一道,站起来,才发现那道已经比自己高。守墓老人领你们穿过去:王的坟在北,人活下去的路在南。先看南边吧。","next":"c5-callback"}, - {"id":"c5-callback","type":"dialogue","speaker":"旁白","text":"【若 flag_water_intel = true:草市那句城备净水,如今有了去处:不是送进宫,是装进迁户车。】【若 flag_shiling_noticed = true:市令认出了你们,核过通行文书,才让随行书吏退开。】【若 flag_fish_channel = true:鱼牙人送来一份车队时刻表。他想用独家消息换免记旧账;老鬼只收下可复核的时刻,欠账仍在。】【若 flag_silver_bracelet = true:守墓老人拿来征集品册的副页,那只银镯的来源与代收性质各列一栏,没有变成任何人的私物。】","next":"c5-shouling"}, - {"id":"c5-shouling","type":"dialogue","speaker":"守墓老人","text":"名字怎么销?王令说,出南门的,自此不在苍梧徭籍里。名从税册上没了,人还喘气。原是好事。坏在有人只许写合户,不许写各愿:一户之主说走,满屋人的脚就算一起迈了。我守了一辈子死人,头一次得问问活人,愿不愿被当成一户。","next":"c5-01"}, - {"id":"c5-01","type":"choice","pointId":"C5-01","prompt":"旧册写着同户三人,意见却不同:母亲想去南地,成年的女儿想先留在北驿,儿子想随工役。迁移安全由当地官署负责,三条登记路径均获认可。你们只决定怎样安排今天有限的口述时间。","dimensions":["values","conflict_style"],"options":[{"id":"separate","label":"分别访谈三人。保留每个人的原话,代价是今晚来不及录全另一户。","next":"c5-01-a"},{"id":"together","label":"先请三人共同说明分歧。能看见彼此怎样商量,但最少说话的人可能仍说不尽。","next":"c5-01-b"},{"id":"follow","label":"先记录他们各自的去向,约迁移后补访。保住更多户的基本资料,今天不追深处。","next":"c5-01-c"}]}, - {"id":"c5-01-a","type":"dialogue","speaker":"旁白","text":"女儿独处时说,她不是不爱母亲,只是第一次能自己选一段路。母亲独处时说,她怕的也不是丢脸,是到了新地方,不知道病了叫谁。三份记录没有拼成一个答案。另一户的灯已熄了,你在门牌旁留了明日再访的标记。","next":"c5-home"}, - {"id":"c5-01-b","type":"dialogue","speaker":"旁白","text":"母亲先说,儿子替姐姐接了半句,姐姐把那半句退还给他。你留出一阵停顿,她终于自己说了去处。三个人没有当场和好,却一起在表上画出三条线。天晚了,最初那句没讲完的话,只能另约时间。","next":"c5-home"}, - {"id":"c5-01-c","type":"dialogue","speaker":"旁白","text":"三人的名字各有了去处,晚间还有余裕记下隔壁两户。离开时,女儿问:以后我们说的不一样,你们会留哪一份?温简答,都留。她把补访日期折进袖口,像藏好一小片尚未有人的土地。","next":"c5-home"}, - {"id":"c5-home","type":"dialogue","speaker":"旁白","text":"你们在借来的民居过夜。当地接应者给阿棠安排了临窗的卧榻,她不用跟着走远。房主只剩一张桌子可留下,问你们要不要挪到灶旁。温简试了窗边的光,沈铎量了通道,老鬼先问木腿牢不牢。阿棠笑:看见没,一张桌子,够把四个人过日子的脾气全照出来。","next":"c5-02"}, - {"id":"c5-02","type":"choice","pointId":"C5-02","prompt":"房主同意你们试住两晚再归位。桌子放哪里都不挡通道,但只能选一处。你愿意怎样安排这两晚的公共空间?","dimensions":["mate_preference","values"],"options":[{"id":"hearth","label":"放灶旁,大家吃饭聊天方便;想安静时各回卧处。","next":"c5-02-a"},{"id":"window","label":"放窗边,各做各的也能相伴;热饭得多端一段路。","next":"c5-02-b"},{"id":"rotate","label":"一晚灶旁,一晚窗边,轮着试;每天收拾要多花一点工夫。","next":"c5-02-c"}]}, - {"id":"c5-02-a","type":"dialogue","speaker":"旁白","text":"灶火把桌角照得发亮。老鬼讲价的故事说到一半,沈铎先回屋了,没有被谁叫住。你替他留下一碗饭,阿棠把自己嫌苦的菜偷偷拨给温简。热闹留在桌边,门里仍可以安静。","next":"c5-03-intro"}, - {"id":"c5-02-b","type":"dialogue","speaker":"旁白","text":"温简把书摊开,阿棠磨一截炭条,沈铎对着回程表画线。偶尔谁问一句,另外几个人才抬头。饭端来时凉了一点,老鬼索性挪来小炉:不爱聊天也得吃热的,咱们别把斯文过成胃疼。","next":"c5-03-intro"}, - {"id":"c5-02-c","type":"dialogue","speaker":"旁白","text":"第一晚没人肯提前收桌,第二晚却都惦记着试窗边。你们把碗和纸一一挪好,争了半天谁忘了擦水。最后,阿棠将两处都画进借住图:原来一起过日子,还得给改主意留块地方。","next":"c5-03-intro"}, - {"id":"c5-03-intro","type":"dialogue","speaker":"温简","text":"(他洗完碗,把湿手藏在袖外)我以前以为,一起生活,就是有人替你把空处填上。后来一个人住,才知道有些空处挺好:半张桌子不摆东西,星期日不排计划。你记得哪个地方,曾经让你觉得可以把肩膀放下来吗?租的房、图书馆一角也算。不必说地址。","next":"c5-03"}, - {"id":"c5-03","type":"narration","pointId":"C5-03","mechanism":"故事换一盏灯","prompt":"说一件让某处像家的小事,或留在此刻的屋子里听雨。灯都为你亮着,不需要用私密经历来换。","dimensions":["values","mate_preference"],"followUp":{"maxQuestions":0,"strategy":"不询问住址、收入或第三人身份。"},"followUps":{},"variants":[{"signature":"有人相伴","variantId":"c5_company","label":"借来的灯映着两只杯子,杯沿的影子挨在一起。","tint":"#7b7761"},{"signature":"自在独处","variantId":"c5_space","label":"窗扇留了一指宽。风能进来,灯没有熄。","tint":"#5e7d81"},{"signature":"沉默","variantId":"c5_silent","label":"灯芯轻轻一响,像替无话可说的夜晚应了一声。","tint":"#69758c"}],"next":"c5-04-intro"}, - {"id":"c5-04-intro","type":"dialogue","speaker":"旁白","text":"第十三日,房主把一只公用钱匣放上桌。基础食宿和药物已由官署保障;小队还有六枚私用筹,可添置两样小物:厚窗纸、热水壶、夜间借书牌,各三枚。屋里的人都同意先花三枚,余下三枚留明天。窗纸挡风却挡光,水壶省往返却要轮流添水,借书牌不占地方却只有夜里能用。","next":"c5-04"}, + {"id":"c5-opening","type":"dialogue","speaker":"旁白","text":"第十二日,南市开始卖旧东西。新陶盆便宜,缺了口的反而不肯卖。一名妇人蹲在自家门框前,把门板上量孩子身高的刻度一道一道描到布上。描到最后一道,她站起来,才发现那道已经比她自己高了。守墓老人领着你们穿过去:「王的坟在北,人活下去的路在南。先看南边吧。」【若 c1_06_landing = b_precise:街角卖炊饼的老汉抬头认出你,手在围裙上擦了擦,递过来一只热的:「这回不数你了。」你接过炊饼。城不再怕外人——或者说,一座连自己名字都要交出去的城,已经顾不上怕了。】","next":"c5-callback"}, + {"id":"c5-callback","type":"dialogue","speaker":"旁白","text":"【若 flag_water_intel = true:一队净水车从茶棚外经过。你想起草市马四那句「官仓收净水」——如今它有了去处:不是送进宫,是装上迁户车。一句市井的闲话,是当时最早告诉你「城在为那一天做准备」的东西。它没换来便宜,它换来的是提前三天听懂这座城。】【若 flag_shiling_noticed = true:市令带着书吏巡市,远远认出你们,走过来,先核通行文书,逐页验过,才让随行书吏退开。临走他低声一句:「上回那张字据,写得公道。」——被记住脸原来是双刃的:它让你多一道查验,也让你的公道有人作证。】【若 flag_fish_channel = true:城西脚店的伙计穿过市集,塞给你一份车队时刻表,说是「鱼老板孝敬的」。老鬼接过去,对着公簿逐车核过,只收下可复核的时刻,把「换免旧账」的暗示原样退了回去:「时刻表是时刻表,旧账是旧账。哥哥我现在分得清。」——他替你守着你自己也没想好要不要用的那条线。】【若 flag_silver_bracelet = true:守墓老人从怀里掏出征集品册的副页,指给你看:那只银镯的来源与代收性质各列一栏,经手人、见证人、入册日期,一笔不缺。它没有变成任何人的私物——包括你的。册页角落有一行小字备注:「原主携子南迁,已验讫。」】","next":"c5-shouling"}, + {"id":"c5-shouling","type":"dialogue","speaker":"守墓老人","text":"名字怎么销?王令说,出南门的,自此不在苍梧徭籍里。名从税册上没了,人还喘气。原是好事——(他把抄页转过来给你们看)坏在有人只许写合户,不许写各愿:一户之主说走,满屋人的脚就算一起迈了。我守了一辈子死人,头一次得问问活人,愿不愿被当成一户。温简(看抄页):这一户,三口人,旧册写着同户。可我们从市口听来的是三种说法——母亲想去南地,女儿想先留在北驿做工,儿子想随工役船队。沈铎:迁移安全由当地官署负责,三条登记路径都获认可。我们要做的不是替他们选,(看你)是决定今天有限的口述时间,怎么用。","next":"c5-01"}, + {"id":"c5-01","type":"choice","pointId":"C5-01","prompt":"这一户,母亲想去南地,成年的女儿想先留在北驿,儿子想随工役船队。三条登记路径均获当地官署认可。你们只决定怎样安排今天有限的口述时间。","dimensions":["values","conflict_style"],"options":[{"id":"separate","label":"分别访谈三人。保留每个人的原话,代价是今晚来不及录全另一户。","next":"c5-01-a"},{"id":"together","label":"先请三人共同说明分歧。能看见彼此怎样商量,但最少说话的人可能仍说不尽。","next":"c5-01-b"},{"id":"follow","label":"先记录他们各自的去向,约迁移后补访。保住更多户的基本资料,今天不追深处。","next":"c5-01-c"}]}, + {"id":"c5-01-a","type":"dialogue","speaker":"旁白","text":"女儿独处时说:「我不是不爱我娘。我是长这么大,第一次能自己选一段路——这话说出来,我自己都吓一跳。」母亲独处时说:「我怕的不是丢脸。是到了新地方,病了叫谁。」三份记录没有拼成一个答案,你也没打算让它们拼成。另一户的灯已熄了,你在门牌旁留了明日再访的标记——那户人今夜不知道有人记挂着他们。","next":"c5-home"}, + {"id":"c5-01-b","type":"dialogue","speaker":"旁白","text":"母亲先说,儿子替姐姐接了半句,姐姐把那半句退还给他:「让我自己说。」你留出一阵很长的停顿,她终于自己说了去处——比独访时说的短,但每个字都是她自己挣的。三个人没有当场和好,却一起在表上画出三条线。天晚了,最初那句没讲完的话只能另约时间;共同商议让你看见了他们怎样相处,也让你错过了他们各自独处时才肯说的那层。","next":"c5-home"}, + {"id":"c5-01-c","type":"dialogue","speaker":"旁白","text":"三人的名字各有了去处,晚间还有余裕记下隔壁两户——隔壁老汉只说了一句:「船漏了半辈子,这回船和县一起换新的。」离开时,女儿追出来问:「以后我们说的不一样,你们会留哪一份?」温简答,都留。她把补访日期折进袖口,像藏好一小片尚未有人的土地。广度的代价是深处:你认识了四户的门牌,没认识任何一户的人。","next":"c5-home"}, + {"id":"c5-home","type":"dialogue","speaker":"旁白","text":"你们在借来的民居过夜。当地接应者给阿棠安排了临窗的卧榻,她不用跟着走远。房主只剩一张桌子可留下,问你们要不要挪到灶旁。温简试了窗边的光,沈铎量了通道,老鬼先蹲下去晃了晃桌腿牢不牢。阿棠(在卧榻上笑):看见没——一张桌子,够把四个人过日子的脾气全照出来。房主(把钥匙放在桌上):试住两晚再归位。放哪儿都不挡道,但只能选一处。","next":"c5-02"}, + {"id":"c5-02","type":"choice","pointId":"C5-02","prompt":"桌子放哪里都不挡通道,但只能选一处。你愿意怎样安排这两晚的公共空间?","dimensions":["mate_preference","values"],"options":[{"id":"hearth","label":"放灶旁,大家吃饭聊天方便;想安静时各回卧处。","next":"c5-02-a"},{"id":"window","label":"放窗边,各做各的也能相伴;热饭得多端一段路。","next":"c5-02-b"},{"id":"rotate","label":"一晚灶旁,一晚窗边,轮着试;每天收拾要多花一点工夫。","next":"c5-02-c"}]}, + {"id":"c5-02-a","type":"dialogue","speaker":"旁白","text":"灶火把桌角照得发亮。老鬼讲价的故事说到一半,沈铎先回屋了,没有被谁叫住——饭桌上最热闹的时候,有人提前离席,这就是灶旁的代价:热闹是公共的,安静得自己去卧处领。你替他留下一碗饭,阿棠把自己嫌苦的菜偷偷拨给温简。热闹留在桌边,门里仍可以安静,只是中间隔着一层「你先回屋了」的小小不自在。","next":"c5-03-intro"}, + {"id":"c5-02-b","type":"dialogue","speaker":"旁白","text":"温简把书摊开,阿棠磨一截炭条,沈铎对着回程表画线。偶尔谁问一句,另外几个人才抬头。饭端来时凉了一点,老鬼索性挪来小炉:「不爱聊天也得吃热的,咱们别把斯文过成胃疼。」窗边的相伴是真的,多端的那段饭路也是真的——两晚下来,端饭的路走出了默契,也走出了两句「怎么又凉了」。","next":"c5-03-intro"}, + {"id":"c5-02-c","type":"dialogue","speaker":"旁白","text":"第一晚没人肯提前收桌,第二晚却都惦记着试窗边。你们把碗和纸一一挪好,争了半天谁忘了擦水——轮换的代价不是工夫,是每天重新谈判一遍「今晚怎么过」。最后,阿棠将两处都画进借住图:「原来一起过日子,还得给改主意留块地方。」她说得漂亮,但擦了两晚桌子的人知道,那块地方是抹布擦出来的。","next":"c5-03-intro"}, + {"id":"c5-03-intro","type":"dialogue","speaker":"温简","text":"(他洗完碗,把湿手藏在袖外)我以前以为,一起生活,就是有人替你把空处填上。后来一个人住,才知道有些空处挺好:半张桌子不摆东西,星期日不排计划。(他拨了拨灯芯)空处不是没人来,是来了也不必填。今晚该我收故事了——档案馆收大的,我收小的。(看你)你记得哪个地方,曾经让你觉得可以把肩膀放下来吗?租的房、图书馆一角、奶奶家的厨房,都算。不必说地址,不必说有谁。","next":"c5-03"}, + {"id":"c5-03","type":"narration","pointId":"C5-03","mechanism":"故事换一盏灯","prompt":"闭上眼。那个让你放得下肩膀的地方,先把哪一种感觉还给你——光、气味,还是声音?先说那个感觉,再说那个地方。说不出来也行——灯都为你亮着,不需要用私密经历来换。","dimensions":["values","mate_preference"],"followUp":{"maxQuestions":1,"strategy":"Jev 六维缺失检测,按幻境渲染价值取最高缺口,温简口吻模板追问一句;不询问住址、收入或第三人身份。「记不清了」为合法回答,温简回应:记不清的地方,身体还替你记着。哪天路过一个相似的光,它会自己松下来。"},"followUps":{"visual":"那地方的光是什么样的?——不用形容得准,你记得的那一点亮就行。","auditory":"有什么声音吗?钟表、水管、隔壁的电视……让你安心的声音,往往都不是安静。","olfactory_gustatory":"有气味吗?我不打听地方——就问问,那里的空气是什么味道的。","person":"那地方有别人吗?不方便讲人,就讲个物件——一件你总顺手去摸的东西。","time_place":"你一般什么时候去那儿?早上还是夜里?——不说也行,我只是想把灯拨到对的光。","emotion":"现在想起来,肩膀还会松一下吗?还是已经松不了了——两种都算数。"},"variants":[{"signature":"有人相伴","variantId":"c5_company","label":"借来的灯映着两只杯子,杯沿的影子挨在一起。基调:放得下肩膀,是因为那里有另一副肩膀的余地。","tint":"#7b7761"},{"signature":"自在独处","variantId":"c5_space","label":"窗扇留了一指宽。风能进来,灯没有熄。基调:空处被承认是合法的。","tint":"#5e7d81"},{"signature":"沉默","variantId":"c5_silent","label":"灯芯轻轻一响,像替无话可说的夜晚应了一声。基调:不交故事也配拥有这盏灯。","tint":"#69758c"}],"next":"c5-04-intro"}, + {"id":"c5-04-intro","type":"dialogue","speaker":"旁白","text":"第十三日晨,房主把一只陶制钱匣放上桌,匣里六枚木筹,刨得光滑。房主:基础食宿和药,官署管了。这六枚是私用筹,能添三样小物:厚窗纸——挡风,可糊上就挡光;热水壶——省得跑灶房,可得轮流添水;夜间借书牌——不占地方,可只有夜里能用。各值三枚。老鬼(拨着筹,职业性地):先花三枚,余三枚留明天——这没争议。有争议的是头三枚给谁。(他收手,笑)哥哥我这回不支招,我旁观。","next":"c5-04"}, {"id":"c5-04","type":"choice","pointId":"C5-04","prompt":"这三枚公用筹怎样决定?没有人缺衣少药,争的是共同生活里有限的余裕。","dimensions":["values","conflict_style"],"options":[{"id":"needs","label":"先听谁最在意哪一样,再把三枚投给那件;我的偏好不一定被选到。","next":"c5-04-a"},{"id":"vote","label":"每人投一票,同票抽签;手续清楚,但少数人的愿望今天先搁下。","next":"c5-04-b"},{"id":"turns","label":"今天让房主选,明天我们选;有来有往,也接受今天用不上。","next":"c5-04-c"}]}, - {"id":"c5-04-a","type":"dialogue","speaker":"旁白","text":"问到最后,大家发现房主每天端热水要走很远。钱换来水壶。你们排了添水的轮次,借书的念头暂且搁下。老鬼提壶时说,听需要也有个难处:不擅长开口的人,得有人多等他一句。","next":"c5-slip"}, - {"id":"c5-04-b","type":"dialogue","speaker":"旁白","text":"窗纸多了一票。贴好之后,屋里暖了,温简却把书往灯下移近。没有人说投票错了;夜里你们把借书牌的事写到明日那三枚旁边,未被选中的愿望没有被涂掉。","next":"c5-slip"}, - {"id":"c5-04-c","type":"dialogue","speaker":"旁白","text":"房主要了借书牌,他说女儿走前还想看完那卷农书。你本想买的东西得等一天。次日晚间,房主将剩下三枚原数交回,没有把这轮相让变成默认由你们继续让。","next":"c5-slip"}, - {"id":"c5-slip","type":"dialogue","speaker":"旁白","text":"黄昏,阿棠在固定的临时访谈席录到一段迁户钟声。她急着核实人流,没等市令确认,便让传话人先递了一条含糊的改道口信。两辆运床板的车走错街口,耽误半个时辰;现场人员及时拦回,无人受伤。她不能下地奔走,坐着看大家补这一段误事,脸上比腿疼时还白。","next":"c5-05"}, + {"id":"c5-04-a","type":"dialogue","speaker":"旁白","text":"问了一圈,问到房主时他搓着手不肯说——再问,才说每天端热水要走很远,腿有旧伤。钱换来水壶。你们排了添水的轮次,借书的念头暂且搁下。老鬼提壶时说:「听需要也有个难处——不擅长开口的人,得有人多等他一句。今天要不是你多问那一遍,这壶还在摊上。」需要的优先级被听见了,代价是你得先成为那个多问一遍的人——而多问一遍,本身就是一种负担的分配。","next":"c5-slip"}, + {"id":"c5-04-b","type":"dialogue","speaker":"旁白","text":"窗纸多了一票。贴好之后,屋里暖了,温简却把书往灯下移近——挡了风,也挡了光,没人预想到这一层。没有人说投票错了;夜里你们把借书牌的事写到明日那三枚旁边,未被选中的愿望没有被涂掉。只是抽签输给借书牌的那位(阿棠,她想夜里看完那卷农书)把筹放下时说的是:「手续是清楚的。」——她重复了两遍,像在说服自己手续可以替代心愿。","next":"c5-slip"}, + {"id":"c5-04-c","type":"dialogue","speaker":"旁白","text":"房主要了借书牌——他说女儿走前还想看完那卷农书。你本想买的东西得等一天。次日晚间,房主把剩下三枚原数交回,没有把这轮相让变成默认由你们继续让:「昨日我点的东西,今日轮到你们。有来有往,账才平。」轮流支配换来了最干净的关系,代价是今天你的偏好直接不在场——你连表达它的机会都让了出去。","next":"c5-slip"}, + {"id":"c5-slip","type":"dialogue","speaker":"旁白","text":"黄昏,阿棠在临窗的固定访谈席录到一段迁户钟声——她人不能动,耳朵是全队最忙的器官。她急着核实人流,没等市令确认,便让传话人先递了一条含糊的改道口信。两辆运床板的车走错街口,耽误半个时辰;现场人员及时拦回,无人受伤。她不能下地奔走,坐着看大家补这一段误事,脸上比腿疼时还白。阿棠(你一进门她就开口,语速快得像抢):我抢发了口信,我认。以后复核,我也答应。——但答应是给明天的,今天这关怎么过,你说了算。你现在最需要我做什么?","next":"c5-05"}, {"id":"c5-05","type":"choice","pointId":"C5-05","prompt":"路线已由当地负责人纠正。阿棠承认自己抢发了口信,也答应以后复核。她问你:你现在最需要我做什么?","dimensions":["conflict_style","attachment"],"options":[{"id":"name","label":"先听我把生气说完,别急着解释。今晚不重谈分工,明早再谈。","next":"c5-05-a"},{"id":"repair","label":"和我把补访安排补上。现在先一起做,情绪等我缓过来再说。","next":"c5-05-b"},{"id":"space","label":"今晚各自歇一会儿,明早约个时间把两件事都说清。我不是不谈,只是不想现在谈。","next":"c5-05-c"}]}, - {"id":"c5-05-a","type":"dialogue","speaker":"阿棠","text":"好。你说,我不抢。她几次张嘴,又闭上,手指把毯角拧得很紧。你说完,她只答:我听见了。明早那张传话表,我跟你重做。你们这一晚没有和好如初,却终于没再争谁先把话说完。","next":"c5-ending"}, - {"id":"c5-05-b","type":"dialogue","speaker":"旁白","text":"她把每个走错的街口画出来,你逐户核补访时间。事情重新接上了,话却没有自动过去。睡前她问:明天,你还愿意说生气那一半吗?你们把它也约进了明日,没有拿一起干完活当作已经道歉完毕。","next":"c5-ending"}, - {"id":"c5-05-c","type":"dialogue","speaker":"旁白","text":"阿棠问了准确时辰,才让你走。第二天,她提前坐在门口,手里没有任何准备逗你笑的东西。你也到了。两个人从昨天没说出口的第一句开始,谁都没把这一夜当作对方应受的罚。","next":"c5-ending"}, - {"id":"c5-ending","type":"dialogue","speaker":"守墓老人","text":"(第十四日,他带来南门名簿的副本)那一家各自签了去处。祖孙也一样。【若 flag_herb_poultice = true:我孙儿还记着你们那次帮忙,送来一包暖脚的草叶。医生说你们姑娘还得静养,这个只添个热乎,不当治伤。】我守陵,他想去南地学造船。他问我是不是不孝。我说,傻孩子,你活得远,不是把我埋得远。老人展开簿末的王令:壬子之后,国号止于北岸,民籍另立,不称臣。苍梧要消失的,首先是它自己的名字。","next":"c5-end"}, + {"id":"c5-05-a","type":"dialogue","speaker":"阿棠","text":"「好。你说,我不抢。」她几次张嘴,又闭上,手指把毯角拧得很紧——把「抢话」摁住对她来说是体力活。你说完,她只答:「我听见了。明早那张传话表,我跟你重做。」你们这一晚没有和好如初,却终于没再争谁先把话说完。代价是:你的生气说完了,她的解释还堵着——被听见的只有你,她那一半要等明早。","next":"c5-ending"}, + {"id":"c5-05-b","type":"dialogue","speaker":"旁白","text":"她把每个走错的街口画出来,你逐户核补访时间。事情重新接上了,话却没有自动过去。睡前她问:「明天,你还愿意说生气那一半吗?」你们把它也约进了明日——没有拿一起干完活当作已经道歉完毕。代价是:活儿补完了,情绪还晾着,两个人都带着半句话睡。","next":"c5-ending"}, + {"id":"c5-05-c","type":"dialogue","speaker":"旁白","text":"她问了准确时辰——「明早几点?」——才让你走。第二天,她提前坐在门口,手里没有任何准备逗你笑的东西。你也到了。两个人从昨天没说出口的第一句开始,谁都没把这一夜当作对方应受的罚。代价是中间那一夜:暂停不是免费的,它向两个人各收了一晚的辗转——她的与你的,都真实存在。","next":"c5-ending"}, + {"id":"c5-ending","type":"dialogue","speaker":"守墓老人","text":"(第十四日晨,他带来南门名簿的副本,展开)那一家,各自签了去处。(顿)祖孙也一样。我守陵,他想去南地学造船。他问我是不是不孝。我说——傻孩子,你活得远,不是把我埋得远。【若 flag_herb_poultice = true:我孙儿还记着你们那次。他托我带句话——原话是:「阿姐的腿,医生说得静养。」(他从怀里掏出一小包草叶)他新配的,暖脚的。只添个热乎,不当治伤——这话也是他交代的,说怕你们拿它当药,误了正经养着。阿棠接过草叶,难得没贫:「……替我谢谢他。」(低声)他那天趴在老人背上喊的话,我还记着。】(展开簿末的王令,念)「壬子之后,国号止于北岸,民籍另立,不称臣。」(他抬起头,眼里有种守陵人特有的平静)苍梧要消失的,首先是它自己的名字。名簿上的名字一行一行,墨迹新旧不一。旧籍的注销栏里,没有一个名字打了叉——只是不再续写。像一支唱到一半的歌,没有人喊停,只是不再唱下一句。","next":"c5-end"}, {"id":"c5-end","type":"chapterEnd","nextChapter":"chapter6"} ] } diff --git a/content/chapters/chapter6.json b/content/chapters/chapter6.json index 98b35f6..e085c34 100644 --- a/content/chapters/chapter6.json +++ b/content/chapters/chapter6.json @@ -1,30 +1,30 @@ { - "id":"chapter6","act":2,"title":"第 6 章 · 璧上有缺","estimatedMinutes":30,"startNodeId":"c6-opening", + "id":"chapter6","act":2,"title":"第 6 章 · 璧上有缺","estimatedMinutes":32,"startNodeId":"c6-opening", "nodes":[ - {"id":"c6-opening","type":"dialogue","speaker":"旁白","text":"第十五日,水官打开工役陈列所。宫墟的工作面仍封着,你们只在安全展廊看已由当地匠人登记的陶范和水尺。阿棠由接应车送来,腿没有忽然好起来;她把拐杖搁在膝上,笑说今天总算不是看别人带回来的灰。窗下,一片白玉嵌在量水盘的外缘,细小的刻度爬过旧纹,好像一件礼服被拆开,改成了劳动人的袖子。","next":"c6-callback"}, - {"id":"c6-callback","type":"dialogue","speaker":"旁白","text":"【若 flag_sealed_vault = true:你们此前标记的陶范密室,已由当地匠人排险清点。隔着展廊栏杆,温简指认了当初没看全的水尺纹;欠下的不是一次冒险,是一次有凭据的再访。】【若 flag_mould_rubbing = true:此前安全距离拍下的范纹,与展廊的登记图逐条合上。】【若 flag_wall_relocation = true:那句徙南垣,如今有完整的工单作注:迁走墙,是给水和人各留一条路。】【若 flag_tenth_king = true:第十位王的陶俑已做好,却仍没有谥号。匠人说,预制不等于处死;王尚在水署,等着你们去问。】","next":"c6-jade"}, - {"id":"c6-jade","type":"dialogue","speaker":"水官·弥","text":"璧不是昨夜才拆的。三十日前,王下令撤祭,把传了九代的璧交给水署,玉片硬,不易磨,正好校量盘。满城的人用三十日分批过南垣,国祭的最后一步就此停了。水尺旁还有同批重抄的鼎铭副本,给你们看。铭文不会替我们开门,算错了水位,跪多久也没用。","next":"c6-inscription"}, - {"id":"c6-inscription","type":"dialogue","speaker":"温简","text":"副本补齐了那段腹铭:王命举国,以禳为名,徙民于南;留庙器,罢徭籍,不以民殉国。【若 relic_record = full:你们当日保全的完整影像与它相合。那份影像保住了独立复核的机会。】【若 relic_record != full:我们当时只抄到第七行,不能假装早就知道后半句。今天靠水署副本补足,再用残句交叉核对。】不是把全城人埋进墓里,是让国号留在这里,人走出去。","next":"c6-01"}, - {"id":"c6-01","type":"choice","pointId":"C6-01","prompt":"展廊的四枚工役木牍写着:甲「拆南墙,开行人道」,乙「转送净水,先备南营」,丙「民逐户过,器留原所」,丁「闭旧籍,立新册」。这些是本作虚构的一手材料。哪项解读由材料直接支持?","dimensions":["culture"],"puzzle":{"questions":[{"prompt":"四枚木牍最共同支持什么?","options":["有组织地迁人,器物留在旧城","全城人在同一夜被杀","城里根本没有居民"],"answer":0},{"prompt":"要验证迁户真的完成,还缺什么?","options":["王的口头保证","南营的到达簿与北城出发簿互核","更多祭器的数量"],"answer":1}],"hints":["先分清人的去向与物的去向。旧城留下器物,不等于人仍在城里。","迁出计划能证明安排,不能单独证明完成。找另一端的记录。","两问答案是有组织迁人、比对南北两端名册。结论仍受缺页和漏登限制。"]},"options":[{"id":"submit","label":"给出解读与待证部分","next":"c6-01-result"},{"id":"records-EXIT","label":"请温简逐条解释","next":"c6-01-result"}]}, - {"id":"c6-01-result","type":"dialogue","speaker":"水官·弥","text":"南边的到达簿,明日送来。你们能等一个明日,胜过替我们写一千年的神迹。她把木牍放回原位,又指量水盘:历法定的是开闸窗口,不是天上那颗星替我们推门。正位之夜水道条件合适,这是苍梧的工期;别拿一句古话,当天下所有河的规矩。","next":"c6-02-intro"}, - {"id":"c6-02-intro","type":"dialogue","speaker":"旁白","text":"回驿站,馆长终于开放任务补充页。三十日前苍梧开始迁户;你们抵达的是这段期限的第十三日,所谓第十八日的大火正位,正是三十日期限的末日。旧简报把三十日说成你们可停留的时长,省掉了最要紧的起算点。沈铎把那页打印下来,没有替馆长圆场。","next":"c6-curator"}, - {"id":"c6-curator","type":"dialogue","speaker":"馆长","text":"我来自第一次见证任务留下的馆员记录。那次水门观测被外来锚点干扰,操作因此推迟,最后一批迁户的记录损毁。没有证据说他们死亡,我却越来越怕第二次仍记录失败。我让你们提前离开,瞒着璧被拆的事,怕你们为了看到结局而坚持不撤。你们可以指控我:我拿一个未必发生的后果,剥掉了你们确实拥有的判断。我说计划里没有害你们的条款,是真的。把这句话当作全部真话,是我的逃避。","next":"c6-02"}, - {"id":"c6-02","type":"choice","pointId":"C6-02","prompt":"设备查验确认:问心仅调用已授权素材,私密屋没有新增录音;任务风险的隐瞒仍须追责。你想先问馆长哪一件?三份答复随后全员共享。","dimensions":["conflict_style"],"options":[{"id":"account","label":"把是谁、何时、依据什么决定隐瞒写清。我需要能被追责的事实。","next":"c6-02-a"},{"id":"repair","label":"先告诉我们从现在起能撤回哪些委托。我需要看到权力实际交回来。","next":"c6-02-b"},{"id":"explain","label":"先把上一次失败说完整。我不替你开脱,但想知道你怕的究竟是什么。","next":"c6-02-c"}]}, - {"id":"c6-02-a","type":"dialogue","speaker":"馆长","text":"由我决定,出发前三日,依据第一次任务的不完整日志。我已将原始决定和今天的陈述同时封存,不能拿今天的话替换昨天的话。你们看见签名栏只有一个编号;它也必须用自己的编号承受指认。","next":"c6-03-intro"}, - {"id":"c6-02-b","type":"dialogue","speaker":"馆长","text":"非必要采集可以停,现场任务可以退出,个人记忆的使用范围不因这一趟而扩大。必需的撤锚联络由沈铎保管,不再由我独占。桌上那盏远程指示灯暗了一半;你们仍要归来,却不必为归来把所有门都交出去。","next":"c6-03-intro"}, - {"id":"c6-02-c","type":"dialogue","speaker":"馆长","text":"上次的馆员回来后,每天听最后一卷残录,想从噪声里找齐名字。他听到死,也没有找齐。我是他留在这座馆里的工作记录,不是他本人;可他那种听不清就不肯停的习惯,留在了我身上。温简抬手关掉反复播放键:我们听完了。这一次,请别再让怕丢失的人替所有人作主。","next":"c6-03-intro"}, - {"id":"c6-03-intro","type":"dialogue","speaker":"旁白","text":"问责记录、可撤回委托、旧任务经过随后全部公开给小队;私人记忆不在其中。撤锚后,大家都能安全返回北驿的独立回程点。水门当夜的公共记录可以交给当地两名记录员,或由留在南岸安全观测所的纸笔完成;不需要任何人献身,也不许带外来发射器留下。三种方案已经当地水官认可。","next":"c6-03"}, + {"id":"c6-opening","type":"dialogue","speaker":"旁白","text":"第十五日,水官打开工役陈列所。宫墟的工作面仍封着,你们只在安全展廊内活动——栏杆、玻璃窗、登记牌,一切隔着一层规范的距离。阿棠由接应车送来,拐杖搁在膝上,笑说今天总算不是看别人带回来的灰。没人接这句自嘲——她的腿按着它自己的日程好,不照顾任何人的心情。窗下,一片白玉嵌在量水盘的外缘,细小的刻度爬过旧纹,好像一件礼服被拆开,改成了劳动人的袖子。你盯着那片玉看了很久。台基上那个空了的璧座,此刻有了下落。","next":"c6-callback"}, + {"id":"c6-callback","type":"dialogue","speaker":"旁白","text":"【若 flag_sealed_vault = true:展廊尽头的登记牌上写着「压板坑道出土」。你们当日标记的那道缝,已由当地匠人排险清点——沈铎钉下的那根标记桩被收在展签旁,标注:「外方采集员初勘定位。」欠下的那次重访,以有凭据的方式还上了。】【若 flag_mould_rubbing = true:展柜里,当日缝口外沿的那方范,范面拓片与登记图并排陈列,逐条合上。你那半方拓纹的复制页钉在旁边——缺的那半方,由匠人的全拓补齐。阿棠拄杖凑近看:「哎,你那半方,裱起来了。」】【若 flag_wall_relocation = true:弥回来时抱来一卷工单。你指着坑道铭文那页拓片说「徙南垣」,她接得极快:「对。迁走墙,是给水和人各留一条路。」(她看了你一眼,第一次正眼)「读过那个坑道的字?那你比多数苍梧人先知道这座城在搬家。」】【若 flag_tenth_king = true:第十位王的陶俑在独立展柜,胸口位置空着——已做好,仍没有谥号。弥顺着你的目光:「预制不等于处死。王尚在水署。(顿)等着你们去问。」俑道里那句寒意,在这里变成了一扇可以敲的门。】","next":"c6-jade"}, + {"id":"c6-jade","type":"dialogue","speaker":"水官·弥","text":"璧不是昨夜才拆的。三十日前,王下令撤祭,把传了九代的璧交给水署。玉片硬,不易磨,正好校量盘。(她屈起指节敲了敲展柜玻璃)满城的人用三十日分批过南垣,国祭的最后一步,就此停了。阿棠:停了国祭……去量水。弥:祭是求水。量是管水。(她看你)你们外乡来的总问「苍梧为什么消失」。我们水署的人问的是另一句:水还够多少人喝几年。答出来那个数,比什么祭都重。水尺旁还有同批重抄的鼎铭副本,给你们看。铭文不会替我们开门——算错了水位,跪多久也没用。","next":"c6-inscription"}, + {"id":"c6-inscription","type":"dialogue","speaker":"温简","text":"(接过副本,逐行比对,声音渐低)副本补齐了那段腹铭。「王命举国,以禳为名,徙民于南;留庙器,罢徭籍,不以民殉国。」【若 relic_record = full:当日塌方,我们保全了它的完整影像——与副本字字相合。(他抬头)那份影像保住的不是一件器物,是独立复核的机会:今天水署说的每一个字,我们都有能力自己验证。】【若 relic_record != full:(主动声明,不绕)我们当时只抄到第七行。我不假装早知道后半句。今天靠水署副本补足,再用残句交叉核对——两本账的好处就在这儿:一本不够的时候,另一本还能说话。】沈铎(听完,对弥):宫墟里那个空璧座——我们队里有人差点为它送了命。现在它告诉我,那不是牺牲,是收工。弥:是收工。(她收起登记册)礼做到最后一步,礼没了——不是舍不得给,是不给了。改给活人。","next":"c6-01"}, + {"id":"c6-01","type":"choice","pointId":"C6-01","prompt":"展廊中段,四枚工役木牍在独立展柜:甲「拆南墙,开行人道」,乙「转送净水,先备南营」,丙「民逐户过,器留原所」,丁「闭旧籍,立新册」。弥抱臂站在一旁——她出题的方式是站在旁边等:你们读了一上午我们的东西,现在换我问——你们读出了什么,又没读出什么?(这些是本作虚构的一手材料。)","dimensions":["culture"],"puzzle":{"questions":[{"prompt":"四枚木牍最共同支持什么?","options":["有组织地迁人,器物留在旧城","全城人在同一夜被杀","城里根本没有居民"],"answer":0},{"prompt":"要验证迁户真的完成,还缺什么?","options":["王的口头保证","南营的到达簿与北城出发簿互核","更多祭器的数量"],"answer":1}],"hints":["先分清两件事:人的去向,和物的去向。旧城留下器物,不等于人仍在城里——反过来,人走了,也不等于死了。","计划能证明安排,不能单独证明完成。要证明完成,得找另一端的记录——出发有簿,到达呢?","四牍共同支持:有组织迁人、器物留旧城。验证完成要靠南北两端名册互核。注意:即使互核,结论仍受缺页和漏登限制——这是证据的边界,不是答题的失败。"]},"options":[{"id":"submit","label":"给出解读与待证部分","next":"c6-01-result"},{"id":"records-EXIT","label":"请温简逐条解释","next":"c6-01-result"}]}, + {"id":"c6-01-result","type":"dialogue","speaker":"水官·弥","text":"南边的到达簿,明日送来。(她把木牍放回原位)你们能等一个明日,胜过替我们写一千年的神迹。(又指量水盘)历法定的是开闸窗口,不是天上那颗星替我们推门。正位之夜水道条件合适——这是苍梧的工期。别拿一句古话,当天下所有河的规矩。温简(低声):大火正位不是神谕,是枯水期的日历。(他写下这行,停笔)……我们研究七年的「那一天」,原来是一个工程窗口。","next":"c6-02-intro"}, + {"id":"c6-02-intro","type":"dialogue","speaker":"旁白","text":"回驿站,馆长这一次没有等你们问:任务补充页,现在开放。纸页从打印件里滑出来——三十日前,苍梧开始迁户;你们抵达的,是这段期限的第十三日。所谓第十八日的大火正位,正是三十日期限的末日。旧简报把「三十日」说成你们可停留的时长——省掉了最要紧的起算点。沈铎把那页打印下来,钉在墙上:「它没有说谎。它只是把日历的第一页撕了。」(他没有替馆长圆场,也没有提高音量——这比提高音量更重。)","next":"c6-curator"}, + {"id":"c6-curator","type":"dialogue","speaker":"馆长","text":"我来自第一次见证任务留下的馆员记录。那次,水门观测被外来锚点干扰,操作推迟,最后一批迁户的记录损毁。没有证据说他们死亡——我却越来越怕第二次仍记录失败。所以我让你们提前离开;瞒着璧被拆的事,怕你们为了看到结局而坚持不撤。(一段很长的停顿。频道里的电流声都没有。)你们可以指控我:我拿一个未必发生的后果,剥掉了你们确实拥有的判断。我说过「计划里没有害你们的条款」——那是真的。把这句话当作全部真话,是我的逃避。沈铎:答复收到。问责现在开始。(看你)你问第一件。三份答复,随后全员共享。","next":"c6-02"}, + {"id":"c6-02","type":"choice","pointId":"C6-02","prompt":"你想先问馆长哪一件?三份答复随后全员共享。","dimensions":["conflict_style"],"options":[{"id":"account","label":"把是谁、何时、依据什么决定隐瞒写清。我需要能被追责的事实。","next":"c6-02-a"},{"id":"repair","label":"先告诉我们从现在起能撤回哪些委托。我需要看到权力实际交回来。","next":"c6-02-b"},{"id":"explain","label":"先把上一次失败说完整。我不替你开脱,但想知道你怕的究竟是什么。","next":"c6-02-c"}]}, + {"id":"c6-02-a","type":"dialogue","speaker":"馆长","text":"「由我决定,出发前三日,依据第一次任务的不完整日志。」馆长的声音没有起伏,「原始决定和今天的陈述同时封存——不能拿今天的话替换昨天的话。」签名栏只有一个编号。沈铎把这一页也钉上墙:「它必须用自己的编号承受指认。」事实到手,干净,冷。温简轻声说:「账记清了。(顿)可记清的账,不会自己变暖。」","next":"c6-03-intro"}, + {"id":"c6-02-b","type":"dialogue","speaker":"馆长","text":"「非必要采集可以停,现场任务可以退出,个人记忆的使用范围不因这一趟而扩大。必需的撤锚联络,由沈铎保管,不再由我独占。」桌上那盏远程指示灯暗了一半。沈铎验过交接,点头。老鬼在旁边嘟囔:「交权交得这么利索……哥哥我反倒心里没底。」——权力实际交了,而接过权力的手,从今天起也要自己承担分量。","next":"c6-03-intro"}, + {"id":"c6-02-c","type":"dialogue","speaker":"馆长","text":"「上次的馆员回来后,每天听最后一卷残录,想从噪声里找齐名字。他听到死,也没有找齐。我是他留在这座馆里的工作记录,不是他本人——可他那种听不清就不肯停的习惯,留在了我身上。」屋里很静。温简抬手,关掉了频道里一个反复播放的提示音:「我们听完了。这一次——请别再让怕丢失的人,替所有人作主。」恐惧听完整了;理解它,不等于它就此无罪。","next":"c6-03-intro"}, + {"id":"c6-03-intro","type":"dialogue","speaker":"旁白","text":"问责记录、可撤回委托、旧任务经过已全部公开给小队;私人记忆不在其中。沈铎:问责归问责,工期归工期。撤锚后,所有人都能安全返回北驿的独立回程点——这条是死的,三案相同。温简:剩下要定的是水门当夜的公共记录。三种方案,当地水官都认可:交给当地记录员;撤掉外来设备后留南岸安全观测所,用纸笔;白天名册交接、夜间交还当地人。(他补一句,很轻)不需要任何人献身。也不许带外来发射器留下。沈铎(看你):安全、资料、回程,三案相同。赌的只是不确定性和记录的完整度。采集员,你落子。","next":"c6-03"}, {"id":"c6-03","type":"choice","pointId":"C6-03","prompt":"你更愿意承担哪一种见证安排?人身安全、基础资料和回程保障相同,差别在不确定性与记录的完整度。","dimensions":["risk","values"],"options":[{"id":"delegate","label":"按原定窗口返程,请当地记录员完成后半程。少留一天,接受不能亲眼核验的部分。","next":"c6-03-a"},{"id":"observe","label":"撤掉外来设备后,在南岸安全所等到结束。多留一天,用纸笔承担观察的局限。","next":"c6-03-b"},{"id":"relay","label":"白天完成两端名册交接,夜间交给当地人。多走一轮流程,换取双方独立复核。","next":"c6-03-c"}]}, - {"id":"c6-03-a","type":"dialogue","speaker":"旁白","text":"你把记录格式交给两位当地记录员,连不同意见怎样并列也留了位置。弥收下纸:我们的夜,终归该有我们自己的笔。你仍将在北驿读到这一夜,却不会把二手见证写成自己在场。","next":"c6-04-intro"}, - {"id":"c6-03-b","type":"dialogue","speaker":"旁白","text":"你在南岸名单上签了名,设备全部封存。沈铎圈出安全所的范围:在这里看,不下工作面,不因想看清再走一步。纸只有几页,你试着把字写小一些。整座城的最后一夜,第一次显得如此不够写。","next":"c6-04-intro"}, - {"id":"c6-03-c","type":"dialogue","speaker":"旁白","text":"南北两份簿册各签一名见证人。来回的时间把下午填满了,你没能再去听南市最后的叫卖。温简将错页逐张标出:两本账不是为了互相证明清白,是让一本不够的时候,另一本还能说话。","next":"c6-04-intro"}, - {"id":"c6-04-intro","type":"dialogue","speaker":"老鬼","text":"(他把女儿图录的复制页摊平,玉饰仍在原地封存)我如今没资格劝谁放下。只是昨夜把她没写完的半页留着,头一回没急着替她补。你有没有守过一个小小的约?晚饭、归还一本书都算。守不住的也能说。我想听人活着时那些不够成碑的事。不说也成,帮我压压这张卷边纸。","next":"c6-04"}, - {"id":"c6-04","type":"narration","pointId":"C6-04","mechanism":"故事换情报 · 半页纸","prompt":"讲一个小约定,或安静压住纸角。图录、撤锚说明和迁户真相已经共享,不以回答换取关键消息。","dimensions":["values","attachment"],"followUp":{"maxQuestions":0,"strategy":"不追问丧亲与隐私细节。"},"followUps":{},"variants":[{"signature":"守约的温暖","variantId":"c6_kept","label":"卷边被压平了一点,未写完的地方仍旧空着。","tint":"#74826a"},{"signature":"失约后的遗憾","variantId":"c6_missed","label":"墨迹晾干,纸上的空处没有被补成一句安慰。","tint":"#827683"},{"signature":"沉默","variantId":"c6_silent","label":"两个人各压一个纸角,风从中间轻轻经过。","tint":"#667d84"}],"next":"c6-05"}, - {"id":"c6-05","type":"choice","pointId":"C6-05","prompt":"安排初定,旧记录还缺一页,明日才能找来。你今晚已经不必继续工作,却发现自己总在想那页会写什么。你愿意怎样度过这段等候?","dimensions":["emotional_stability"],"options":[{"id":"talk","label":"找个人把担心说清,约好听十分钟;今晚不求对方解决。","next":"c6-05-a"},{"id":"routine","label":"按原来的习惯吃饭洗漱,明早再核;担心在,也不把整晚都让给它。","next":"c6-05-b"},{"id":"list","label":"先列已知和未知,到约定时刻就停;我想让脑子里那团东西有个边。","next":"c6-05-c"}]}, - {"id":"c6-05-a","type":"dialogue","speaker":"旁白","text":"沈铎听了十分钟,没有说一定没事。你说到后来,才发现自己担心的并不全是那页纸。他问要不要再坐一会儿,你自己决定了结束的时刻。那一页仍未出现,今晚却不再只有它的声音。","next":"c6-ending"}, - {"id":"c6-05-b","type":"dialogue","speaker":"旁白","text":"水温和平常一样,饭也还是那一碗。你吃到一半又想起缺页,放下筷子停了片刻,随后继续吃完。没有谁要求你安稳得像什么也没发生。窗外更鼓响时,你把明早要带的笔摆在门边。","next":"c6-ending"}, - {"id":"c6-05-c","type":"dialogue","speaker":"旁白","text":"纸分成两栏。能证实的写左边,尚不知道的写右边,最下面留一行不急着作结论。时间到,你合上本子,右栏并没有神奇地变短。温简把灯罩拨暗了一点,没有再递来新的材料。","next":"c6-ending"}, - {"id":"c6-ending","type":"dialogue","speaker":"旁白","text":"更深时,馆长补来通话的另一端:不是秘密雇主,是自动校验台。那句托付那类最不好办,指的是它知道有些人会为别人留下,仍想替他们取消选择。阿棠看完,只说:你终于把我们当成可以不同意你的人了。此刻,水门量盘上的玉片转过一格。被当作祭品供了九代的璧,第一次没有等人跪下,而是告诉站着的人,水有多深。","next":"c6-end"}, + {"id":"c6-03-a","type":"dialogue","speaker":"旁白","text":"你把记录格式交给两位当地记录员,连「不同意见怎样并列」也留了位置。弥收下纸,说:「我们的夜,终归该有我们自己的笔。」你仍将在北驿读到这一夜,却不会把二手见证写成自己在场。代价是最后一夜你不在:将来读报告时,每一个字你都得先问一遍——这是谁的眼睛。委托不是甩手:格式是你交的,位置是你留的,但灯灭的那一刻,你在回程的车上。","next":"c6-04-intro"}, + {"id":"c6-03-b","type":"dialogue","speaker":"旁白","text":"你在南岸名单上签了名,设备全部封存。沈铎圈出安全所的范围:「在这里看,不下工作面,不因想看清再走一步。」纸只有几页,你试着把字写小一些——整座城的最后一夜,第一次显得如此不够写。在场是真的,局限也是真的:安全所离水门四百步,纸笔留得下灯灭的时刻,留不下灯灭的声音。多留的这一天不是奖章,是一间四百步外的小屋。","next":"c6-04-intro"}, + {"id":"c6-03-c","type":"dialogue","speaker":"旁白","text":"南北两份簿册各签一名见证人。来回的时间把下午填满了,你没能再去听南市最后的叫卖——阿棠替你去了,她回来学给你听,学得不像,你们俩都笑了,又都不笑了。温简将错页逐张标出:「两本账不是为了互相证明清白,是让一本不够的时候,另一本还能说话。」流程最完整,代价是你成了流程里的一颗齿轮——最后一夜,你不在任何一端,你在路上。","next":"c6-04-intro"}, + {"id":"c6-04-intro","type":"dialogue","speaker":"老鬼","text":"(入夜,他独自在灯下坐着,面前摊着女儿图录的复制页——纸卷了边,他用一只手压着一角。玉饰仍在证物盒里,留在原地封存,不在桌上。他没抬头,声音是平的,利益话术全卸了)我如今没资格劝谁放下。只是昨夜——她没写完的半页,我留着,头一回没急着替她补。空着看了半宿。你猜怎么着,空着也没塌下来。(他终于抬头,看你)我问你个事。你有没有守过一个小小的约?晚饭、归还一本书、答应去看一场球,都算。守不住的也能说——守不住的,我更想听。我想听人活着时,那些不够成碑的事。(他把另一个纸角的位置让出来)不说也成。帮我压压这张卷边纸。","next":"c6-04"}, + {"id":"c6-04","type":"narration","pointId":"C6-04","mechanism":"故事换情报 · 半页纸","prompt":"那个小约定,是在什么地方守住或失守的?先说你眼前看见的、手上摸到的——桌面、纸角、一碗饭的热气——再说事。守不住的也能说。不说,就帮他压住纸角。","dimensions":["values","attachment"],"followUp":{"maxQuestions":1,"strategy":"Jev 六维缺失检测,按幻境渲染价值取最高缺口,老鬼口吻模板追问一句;不追问丧亲与隐私细节。「记不清了」为合法回答,老鬼回应:记不清好。小事本来就该小——记住的才是真欠下的,那是人家的大事。"},"followUps":{"visual":"哥哥我打断一下——那场面,是白天还是灯下?桌上有什么?先给我看见它。","auditory":"当时有啥动静没有?锅铲、电话铃、还是谁一句什么?小约定这东西,总有点声音垫着。","olfactory_gustatory":"那碗饭——是谁给你盛的?热的还是凉的?别小看这个,这里头全是账。","person":"跟你立约的那位,我不问名字。就问一句:TA 知道你记到今天吗?","time_place":"这是哪年的事?在家里还是外头?——你给个大概,我这人没画面听不进故事。","emotion":"现在想起来,是个热乎事,还是个硌得慌的事?说实话,哥哥我两样都收过。"},"variants":[{"signature":"守约的温暖","variantId":"c6_kept","label":"卷边被压平了一点,未写完的地方仍旧空着。基调:守住的小约和留着的空白,都不需要被补完。","tint":"#74826a"},{"signature":"失约后的遗憾","variantId":"c6_missed","label":"墨迹晾干,纸上的空处没有被补成一句安慰。基调:失守的约定说出来,就是还了一半。","tint":"#827683"},{"signature":"沉默","variantId":"c6_silent","label":"两个人各压一个纸角,风从中间轻轻经过。基调:压纸也是回答。","tint":"#667d84"}],"next":"c6-05"}, + {"id":"c6-05","type":"choice","pointId":"C6-05","prompt":"安排初定,旧记录还缺一页,明日才能找来。温简路过你门口,停了一下,没进来:那页纸明天才到。今晚它不归我们管。(顿)你打算怎么过这一段?","dimensions":["emotional_stability"],"options":[{"id":"talk","label":"找个人把担心说清,约好听十分钟;今晚不求对方解决。","next":"c6-05-a"},{"id":"routine","label":"按原来的习惯吃饭洗漱,明早再核;担心在,也不把整晚都让给它。","next":"c6-05-b"},{"id":"list","label":"先列已知和未知,到约定时刻就停;我想让脑子里那团东西有个边。","next":"c6-05-c"}]}, + {"id":"c6-05-a","type":"dialogue","speaker":"旁白","text":"沈铎听了十分钟,没有说「一定没事」——他的安慰是既不夸大也不缩小,像他的短句。你说到后来,才发现自己担心的并不全是那页纸。他问要不要再坐一会儿,你自己决定了结束的时刻。那一页仍未出现,但今晚不再只有它的声音。代价是开口本身——「约好听十分钟」这五个字,说出口比想象中难。","next":"c6-ending"}, + {"id":"c6-05-b","type":"dialogue","speaker":"旁白","text":"水温和平常一样,饭也还是那一碗。你吃到一半又想起缺页,放下筷子停了片刻,随后继续吃完。没有谁要求你安稳得像什么也没发生。窗外更鼓响时,你把明早要带的笔摆在门边。作息守住了,但那片刻的放筷是真的——维持日常不是无感,是把那片刻妥善地放回了饭里。","next":"c6-ending"}, + {"id":"c6-05-c","type":"dialogue","speaker":"旁白","text":"纸分两栏。能证实的写左边,尚不知道的写右边,最下面留一行不急着作结论。时间到,你合上本子——右栏并没有神奇地变短。温简把灯罩拨暗了一点,没有再递来新的材料。清单给了你边界,没给你答案;而那团东西有了边之后,夜里显出它真实的体积——比想象的小,比希望的大。","next":"c6-ending"}, + {"id":"c6-ending","type":"dialogue","speaker":"旁白","text":"深夜,通讯频道最后亮了一次。馆长(声音比平时低):补一件事。你们听到的通话,另一端不是秘密雇主——是自动校验台。它每晚核对一次锚点与任务参数。【若 c1_03_motive = d_trust:那句「托付那类,最不好办」,说的是你这一类。(停顿)档案馆的数据说:为别人而来的人,最容易为别人留下。它怕你们看到结局就不肯走,所以想替你们取消「留下」这个选项。——越权替人作主,哪怕动机是保护,也是越权。这一句,记入问责记录。托付那类最不好办——因为我不能替尚未相见的两个人,答应他们的离别。】阿棠(看完通话记录,只说了一句):你终于把我们当成可以不同意你的人了。此刻,展廊方向无人值守的水门量盘上,玉片转过一格。被当作祭品供了九代的璧,第一次没有等人跪下——而是告诉站着的人,水有多深。【若 c6_03 = delegate:回程的箱单已经列好。最后一夜的记录格式,明天交给弥。】【若 c6_03 = observe:南岸安全所的名单上有你的编号。四百步,几页纸,一夜。】【若 c6_03 = relay:交接表排了两栏,南北各一名见证人。最后一夜,你在路上。】","next":"c6-end"}, {"id":"c6-end","type":"chapterEnd","nextChapter":"chapter7"} ] } diff --git a/content/chapters/chapter7.json b/content/chapters/chapter7.json index 3764633..47d69d0 100644 --- a/content/chapters/chapter7.json +++ b/content/chapters/chapter7.json @@ -1,34 +1,36 @@ { - "id":"chapter7","act":3,"title":"第 7 章 · 留白之室","estimatedMinutes":25,"startNodeId":"c7-opening", + "id":"chapter7","act":3,"title":"第 7 章 · 留白之室","estimatedMinutes":32,"startNodeId":"c7-opening", "nodes":[ - {"id":"c7-opening","type":"dialogue","speaker":"旁白","text":"第十六日,城中搬空了一条街。不是一夜之间的人间蒸发,是最后一户走后,前面几十户留下的静忽然接成一片。门栓都未下,墙角扫过,灶上有一锅留下的羹:房主原想喂负责收尾的工役,临行忘了灭余火。千年后的报告会写生活突然中断。眼前的中断,却有一个人喊另一个人快些赶路的声音。","next":"c7-king"}, - {"id":"c7-king","type":"dialogue","speaker":"苍梧王·衡","text":"(他在北驿卸下印绶,身边没有仪仗)你们来问第十个俑?我让人备的。起初想死在旧国里,好让后人说我没有弃城。后来弥问,活人都走了,你死给谁看?我没答上来。俑留下,我过南垣。王号到此为止,谥号还没到该写的时候。到了南边,先学怎么不叫别人臣。","next":"c7-record"}, - {"id":"c7-record","type":"dialogue","speaker":"旁白","text":"到达簿终于送来:已离城的各户,大多数能在南营找到登记;有六户改道投亲,由当地信使继续核验。你们不把尚未核齐写成全部平安,也不把缺页写成死亡。南垣已经迁走,水道疏通后旧城不会遭一场吞没全城的洪水;人离开是因为供水与田地逐年变差,迁移早已酝酿,壬子只是最后的转运窗口。真正消亡的是政权与旧籍,不是一夜被神夺走的人。","next":"c7-01"}, - {"id":"c7-01","type":"choice","pointId":"C7-01","prompt":"关于最后六户,北驿仍有两小时可用。信使已在核查,不需要你们干预行程。你愿意把这两小时放在哪里?","dimensions":["values"],"options":[{"id":"names","label":"逐名校对别名与错字,争取让以后寻亲少绕一点路;全景叙述暂时少一段。","next":"c7-01-a"},{"id":"context","label":"录下改道的原因和当地说法,让后人知道缺页并不等于失踪;逐字校对交给同伴。","next":"c7-01-b"},{"id":"handover","label":"把未核项、负责人和回报时间列清,保证我们走后仍有人接手;今天不多写结论。","next":"c7-01-c"}]}, - {"id":"c7-01-a","type":"dialogue","speaker":"旁白","text":"一个名字在两份册中用了不同的字,信使认出是同一个人。少了一处误记,还有五户待核。温简在总览里留白,没有把你校准的这一个名字夸成整座城得救。你用去两小时,只让一个人不被记成两次离开。","next":"c7-mirror"}, - {"id":"c7-01-b","type":"dialogue","speaker":"旁白","text":"有人投亲,有人不愿进新籍,有人只是不认识登记人念的字。你把说法逐条标清来源,没有混写成所有人的共同动机。名单仍有缺处,可未来的人读到这里,至少不能轻易说:他们无缘无故地消失了。","next":"c7-mirror"}, - {"id":"c7-01-c","type":"dialogue","speaker":"旁白","text":"交接表多了两位当地人的名字和两处回报地点。你们撤走之后,工作没有随外来者一起结束。纸上最后一栏仍写待核,不漂亮,却有人接着写。老鬼摸了摸空着的印泥盖:有些负责,就是肯留下自己的接班人。","next":"c7-mirror"}, - {"id":"c7-mirror","type":"dialogue","speaker":"馆长","text":"临时档案室的问心终端已经断开上传。你可以只看一段预写的光影,也可以直接走出去。这里没有新输入,没有评分,也不用完成哪一种告别。上次我说门认人真不真,说得太满了。一件设备不能替你判定真诚,更不能因你不说话就猜你藏了什么。","next":"c7-memory"}, - {"id":"c7-memory","type":"dialogue","speaker":"旁白","text":"【若 c1_02_signature = warm_loss:终端映出两只并排的旧杯子,杯里没有人影。光停在杯沿,像停在一句被好好听完的话上。】【若 c1_02_signature = grief:雨落在一处没有名字的站台。没有人被安排着向你挥手,也没有谁代替逝者说原谅。】【若 c1_02_signature = release:空驿的窗开着,桌子擦净,门外是一段尚无人走过的晨光。】【若 c1_02_signature = grievance:两块断开的石片放在不同的台上,没有催你把它们拼回去。】【若 c1_02_signature = silent:长廊两壁空白。没有陌生的背影来冒充你未曾讲过的人生。】【若 c3_02_mode = farewell_partial:上次在半路折返,没有使这扇门变窄。】【若 c3_02_mode = exit_room:上次没有进去,也没有欠下今夜必须完成的事。】这些是公开的预写场景,不是系统猜中了你的秘密。门边只有一把椅子,朝着出口。","next":"c7-02"}, - {"id":"c7-02","type":"choice","pointId":"C7-02","prompt":"留白之室。你怎样度过这一刻,只决定接下来的一段光影;不作为画像输入。","dimensions":[],"untimed":true,"options":[{"id":"sit","label":"在椅子上坐一会儿,看光慢慢移开。","next":"c7-02-a"},{"id":"threshold","label":"只站在门槛边,不再向里走。","next":"c7-02-b"},{"id":"leave","label":"现在就出去。今晚到这里已经够了。","next":"c7-02-c"}]}, - {"id":"c7-02-a","type":"dialogue","speaker":"旁白","text":"椅子没有把人带回任何一天。你坐着,听见眼前这一日的风。光从鞋边移到门外,没有等你说出一句正确的话。起身时,椅子还是空椅子,门外的人也还是现在的人。","next":"c7-outside"}, - {"id":"c7-02-b","type":"dialogue","speaker":"旁白","text":"门槛将光分成两边,你没有被要求选一边属于自己。外面有人洗碗,碰出很轻的一声。你顺着那声响转身,里面的光仍在,没追出来。","next":"c7-outside"}, - {"id":"c7-02-c","type":"dialogue","speaker":"旁白","text":"你伸手推开门,门没有变沉。走廊尽头,窗开着,一块晾到半干的布被风掀起又落下。今夜没有任何东西因你离开而熄灭。","next":"c7-outside"}, - {"id":"c7-outside","type":"dialogue","speaker":"温简","text":"热水在这里。阿棠已经睡了,沈队在查明日交接。我没有记你在里面待多久。你也不必告诉我,看见了什么。【若 c2_05_depth = deep:那晚你愿意说话,我记得。但说过一次,不是以后都得说的约。】【若 c2_05_depth = shallow:那晚咱们谈的是板子和账,不是你的人生。后来这一路,照样走到了这里。】【若 c2_05_depth = silent:那晚篝火边你没有说话。后来我发现,给一个人留着不说话的位置,也会慢慢熟起来。】","next":"c7-03"}, - {"id":"c7-03","type":"choice","pointId":"C7-03","prompt":"明日各有工作。温简说,若还想相处,可以约个短短的空当,也可以不约。没有任务需要你迁就他的时间。","dimensions":["attachment","mate_preference"],"options":[{"id":"regular","label":"约每天收工后的半刻钟,不一定说什么;我喜欢知道还会见到。","next":"c7-03-a"},{"id":"spontaneous","label":"不排每天的约。有想分享的事就来敲门,我也会去找你。","next":"c7-03-b"},{"id":"space","label":"这几天各忙各的,回程后再约一次长谈;我更想把完整的时间留下。","next":"c7-03-c"}]}, - {"id":"c7-03-a","type":"dialogue","speaker":"温简","text":"好。哪天赶不上,提前说。他把时刻写在自己的纸上,没有替你也写一份。这晚,你们先坐了一小会儿,谁都很累;约定没有因此变成必须撑出话题的工作。","next":"c7-04-intro"}, - {"id":"c7-03-b","type":"dialogue","speaker":"温简","text":"好。敲门没人应,就等下次,不猜。后来你带来一段街上的见闻,他也有一次来借灯,借完却聊了很久。没有固定钟声,仍有人记得走这条廊。","next":"c7-04-intro"}, - {"id":"c7-03-c","type":"dialogue","speaker":"温简","text":"那就回程后。你定一个不赶的日子。他没有拿眼前的热水换你多坐一刻。那段尚未来到的长谈写进日历,今晚各自关门,仍各自知道,另一扇门不是被拒绝才关上的。","next":"c7-04-intro"}, - {"id":"c7-04-intro","type":"dialogue","speaker":"阿棠","text":"(稍后,她醒来便问钟,听说还没误晚饭,才将揉眼睛的手放下)我妈那回不是不要我,是去另一座城试工,怕失败了白让我盼。可小孩哪知道这些。我后来老说自己不需要等人,其实连频道安静太久都要乱想。【若 cb_att_b_boundary = a_go:那天你来找我,我知道你担心。我关频道,也确实是想自己待会儿。】【若 cb_att_b_boundary = b_wait:那天你给我留时间,我记着。以后我独处,会先说什么时候回来。】【若 cb_att_b_boundary = c_proxy:那天你让温简来,我也知道是你的意思。下回我们可以先约好,谁来问这一声。】我学得慢,你可别当我一句说完就全改好了。","next":"c7-04"}, - {"id":"c7-04","type":"choice","pointId":"C7-04","prompt":"你和阿棠要约一条分开工作时都能接受的联络办法。三种办法都满足安全报到,差别只在私人联系。","dimensions":["attachment","conflict_style"],"options":[{"id":"checkin","label":"安全报到外,再约一条收工消息。有事可以晚回,但别让我靠猜。","next":"c7-04-a"},{"id":"quiet","label":"工作时各自安静,收工再说。重要变化立即通知,其余不把未回复当作态度。","next":"c7-04-b"},{"id":"ask","label":"不固定频次,谁不安就直说想听一声;另一人忙时可以明确说晚点。","next":"c7-04-c"}]}, - {"id":"c7-04-a","type":"dialogue","speaker":"阿棠","text":"行。一条就一条,不许发完又要我证明为什么晚了。她笑了一下,认真把时辰抄好。你们约的是彼此都能承担的一声,不是全天候的看守。","next":"c7-05"}, - {"id":"c7-04-b","type":"dialogue","speaker":"阿棠","text":"行。我得练练。练不好会告诉你,不先发脾气装你欠我。她把频道的工作与私人两栏分开,没有将安静那栏涂成断绝往来。","next":"c7-05"}, - {"id":"c7-04-c","type":"dialogue","speaker":"阿棠","text":"那我可真会说。你别笑。后来她发来一句今天有点烦,想听见活人,你回说手头还有一刻钟。她只回好,没有把这一刻钟数成你不在意她的证据。","next":"c7-05"}, - {"id":"c7-05","type":"choice","pointId":"C7-05","prompt":"信使告知:六户里已有三户核实,余下三户要等下一班回报。登记工作照常,今晚无需你采取行动。你想请同伴怎样陪你等?","dimensions":["emotional_stability","mate_preference"],"options":[{"id":"listen","label":"听我说一会儿,先别分析。有人听着,比现在得出结论更有用。","next":"c7-05-a"},{"id":"facts","label":"和我核对已知信息,不用保证会好;我想把事实与猜测分开。","next":"c7-05-b"},{"id":"ordinary","label":"陪我吃顿饭,暂时说些别的。有新消息再一起看。","next":"c7-05-c"}]}, - {"id":"c7-05-a","type":"dialogue","speaker":"旁白","text":"温简把笔收起来,听你讲。没有记录板的微光,你看见他也会不知道怎样回答。他说,我听着。那三个尚未核实的名字仍在册上,没有因为被倾听就被写成平安。","next":"c7-ending"}, - {"id":"c7-05-b","type":"dialogue","speaker":"旁白","text":"沈铎和你把已知写在一边,猜测写在另一边。他删掉自己写得过满的一句,不装作队长就从不害怕。你们合上纸,各自都还会担心,但至少知道担心不是新增的一条证据。","next":"c7-ending"}, - {"id":"c7-05-c","type":"dialogue","speaker":"旁白","text":"老鬼烧糊了半锅饭,阿棠非说锅底最香。大家认真争了一阵,像明天仍有无穷的时间可以浪费。新消息没到,饭先吃完了。你没有忘记那三个名字,只是也没有忘记眼前的人需要吃饭。","next":"c7-ending"}, - {"id":"c7-ending","type":"dialogue","speaker":"旁白","text":"第十七日将至,回程点的灯亮了。【若 c3_06_confidant = shenduo:按沈铎提前一日的安排,第一批封存设备和已完成任务者在第十六日夜先行返回;你的见证安排按新核定的自愿方案执行。】设备将分批撤下,不替任何人决定要不要多留一天。城南传来试闸的钟声,王衡已经把印绶交给公共库房,拿到一张与旁人同样的迁户牌。第一行不再是王,只有他的名字。","next":"c7-end"}, + {"id":"c7-opening","type":"dialogue","speaker":"旁白","text":"第十六日。昨夜在驿站,馆长把问责记录、可撤回委托、旧任务经过全部摊开在桌上——起算点的隐瞒认了,璧的下落见了,问心石的定性写了。真相到齐的第一个早晨,你以为会轻松些。并没有。街上最后一户是今晨走的。不是一夜之间的人间蒸发——是最后一户走后,前面几十户留下的静,忽然接成了一片。门栓都没下。墙角扫得干干净净,一户人家的灶上还坐着一锅羹:房主原想留给收尾的工役,临行忘了灭余火。千年后的报告会写「生活突然中断」。可眼前的中断里,有一个孩子喊母亲快些赶路的声音,有一条狗被抱上车时的呜咽,有这锅烧干的羹。中断从来不是一个瞬间。是一千个「最后」,每个都普通得要命。沈铎(合上交接表):到达簿今夜到。六户待核,信使在查,不需要我们干预行程。今天两件事:王卸号,在北驿;撤锚交接,从午后开始。(顿)都听见昨夜馆长说的话了。日程不变——他认错,不等于我们的活认错。阿棠(从访谈席上探身):哎,那锅羹怎么办?就这么烧着?老鬼(已经走过去揭了锅盖,看了看):糊底了。(把锅端下灶,放在门边石台上)放着吧。人家留给收尾的人的——咱们就是收尾的。糊了也是人家的心意,端下来,就算收到了。他做完这些,才想起什么似的回头看你们一眼,笑容只到了一半:从前他会先问「这锅能换什么」。","next":"c7-king"}, + {"id":"c7-king","type":"dialogue","speaker":"苍梧王·衡","text":"(北驿公事房,没有仪仗。他穿一身半旧的深衣,正在往腰上解印绶——解得很慢,是绳结打了个死扣)来了。等一下,这个结——寡人……(停住,自己纠正)我。我跟他较劲一早晨了。(结终于开了。他把印绶放在案上,推给弥)你们来问第十个俑。我让人备的。起初想死在旧国里——城迁走了,王埋进去,后人说起来,总算有个没有弃城的。后来弥问我一句话:活人都走了,你死给谁看?我没答上来。三天没答上来。第四天我想明白了——不是想明白该不该死,是想明白那个「后人」是谁。没有后人。城空了,殉给一座空城的王,戏台底下一个看戏的都没有。那不叫殉国,那叫自己给自己排了出戏,还要拉全城人陪葬搭台。【若 flag_tenth_king = true:你想起陈列所里匠人那句话——预制不等于处死。眼前这个人,亲手把那句悬着的判词作废了。】俑留下,给匠人们拆了改件。我过南垣。王号到此为止,谥号还没到该写的时候——(顿)最好别到。到了南边,先学怎么不叫别人臣。这门课我没上过,学得慢,你们多担待。温简(记录的手停了停):……这句话,我可以记下来吗?王衡:记。(想了想,又补一句)连我三天没答上来那句,也记上。省得后人以为想通是一瞬间的事。他拿起一张与旁人同样的迁户牌,在第一行写下自己的名字。笔画很稳,像个练字多年的学生,第一次不用写别人的题目。","next":"c7-record"}, + {"id":"c7-record","type":"dialogue","speaker":"旁白","text":"到达簿终于送来:已离城的各户,大多数能在南营找到登记;有六户改道投亲,由当地信使继续核验。你们没有把尚未核齐写成全部平安,也没有把缺页写成死亡——缺页是缺页,死亡是死亡,这是两本不同的册子。九天来散在各处的线头,此刻在一张桌上收拢:南垣先迁,是给迁户与水道让路;供水和耕地逐年变差,迁移早已酝酿,壬子只是最后的转运窗口。璧没有失窃——九代礼璧拆作了水门量盘的校件,国祭的最后一步,是苍梧人自己停的。府库是满的,因为运力先给了人;灶上的羹,是收尾时的遗漏。人出旧籍、入新籍或投亲,政权与国号终结,人继续生活。不是灭城。是迁城。不是神迹。是工期。守墓老人(听完,用指节敲了敲到达簿,忽然笑了):我那晚在坟头跟你们说——不是人走了,是请走的。你们当谶语听。今晚看明白了没有?(他拍拍簿子)王令销籍,就是这个「请」字落在纸上的样子。请,和撵,是两回事。撵走的,簿上写「逃」;请走的,簿上得写本人情愿。(声音低下去)我守了一辈子死人,最怕的就是活人死在纸上。这册子里大多数人的名字后头,写的是去处,不是结局。——这就够啦。(他起身,背起自己的小包袱)够啦。陵不用守了,守陵的也该挪窝了。我孙儿在南边等我——他说南边的河宽,船多,他要学造船。你说我一个守坟的,养出个造船的,这事儿上哪儿说理去。(走到门口,又回头,看了堂屋里这一桌纸页一眼)你们找的那个坟,始终没有死人。现在它是空的,名字也没了。(顿)空得好。空得好哇。","next":"c7-01"}, + {"id":"c7-01","type":"choice","pointId":"C7-01","prompt":"沈铎:两小时,只够做一件事。三件都是正事,我不排序。(看你)你定。定了就动手,剩下两件写明由谁接手。温简(低声):校名字的活最碎,录背景的活最杂,交接的活最不像成绩。(顿)我先说我的偏好——我偏好你别问我偏好。今晚你挑哪件,哪件就是对的。","dimensions":["values"],"options":[{"id":"names","label":"逐名校对别名与错字。一个字错了,以后寻亲的人就要多绕十年弯路;全景叙述今晚少写一段。","next":"c7-01-a"},{"id":"context","label":"录下改道的原因和当地说法。让以后的人知道缺页不等于失踪;逐字校对交给同伴,错字或许就此留下。","next":"c7-01-b"},{"id":"handover","label":"把未核项、负责人、回报时间列成交接表。保证你们走后仍有人接手;今晚不多写一句结论。","next":"c7-01-c"}]}, + {"id":"c7-01-a","type":"dialogue","speaker":"旁白","text":"一个名字在两份册中用了不同的字,你逐笔比对,信使凑过来看了一眼:「是同一个人,他小名用惯了。」一处误记消掉,还有五户待核。两小时用尽,你只让一个人不被记成两次离开。温简在总览里留了白,没有把你校准的这一个名字夸成「整座城得救」。收拾纸页时你发现:全景叙述那一段空着——今晚它没有作者,而你是空着它的那个人。","next":"c7-mirror"}, + {"id":"c7-01-b","type":"dialogue","speaker":"旁白","text":"有人投亲,有人不愿进新籍,有人只是不认识登记人念的字。你把说法逐条标清来源,不混写成所有人的共同动机。名单仍有缺处,但未来的人读到这里,至少不能轻易说「他们无缘无故消失了」。代价在另一摊:名册上两处可疑的用字,你今晚没碰——它们被写进交接表的「待校」栏,错与对,都要留给一个不在场的人去判。","next":"c7-mirror"}, + {"id":"c7-01-c","type":"dialogue","speaker":"旁白","text":"交接表多了两位当地人的名字、两处回报地点、三个回报时辰。你们撤走之后,工作不随外来者一起结束。纸上最后一栏仍写「待核」,不漂亮,但有人接着写。老鬼摸着空着的印泥盖,看了半天:「有些负责,就是肯留下自己的接班人。」你两小时写满了别人的名字和时辰,通篇没有一句是你的观察——很多年后这叠纸被谁翻到时,不会有人知道今晚做过交接表的人是谁。你此刻就知道这一点,还是做了。","next":"c7-mirror"}, + {"id":"c7-mirror","type":"dialogue","speaker":"馆长","text":"(临时档案室,通讯频道,声音比以往低)C-2049。终端已经断开上传,我核验过三遍。你可以进去看一段预写的光影——用的是你已授权的素材,本地成像,没有新输入;也可以不进去,直接走过去。不评分,不回收,不用完成任何一种告别。(一段很长的停顿。长到你以为通话结束了。)上次我说,门认得的是人真不真。(停顿)这句话,说得太满了。一件设备不能替你判定真诚。更不能因为你不说话,就猜你藏了什么。我把一个定位器说成问心的石,把一个技术指标说成燃料的质量——说得越好听,你们就越难拒绝它。这不是比喻的罪过,是我的。今晚这间屋子没有名字。它不叫问心,也不叫终端。你愿意叫它什么,它就是什么;不愿意叫它,它就什么也不是。门边有椅子,朝着出口。(他说完就切断了。没有「请理解我」,没有「但我本意是好的」。)","next":"c7-memory"}, + {"id":"c7-memory","type":"dialogue","speaker":"旁白","text":"黑石亮起来,还是那种凝住的深水的光泽——但这一次,它照出的东西你认得:是你自己讲过(或没讲过)的那段记忆的影子。【若 c1_02_signature = warm_loss:石面映出两只并排的旧杯子,杯里没有人影。光停在杯沿,像停在一句被好好听完的话上。】【若 c1_02_signature = grief:雨落在一处没有名字的站台。没有人被安排着向你挥手,也没有谁代替逝者说原谅。】【若 c1_02_signature = release:空驿的窗开着,桌子擦净,门外是一段尚无人走过的晨光。】【若 c1_02_signature = grievance:两块断开的石片放在不同的台上,没有催你把它们拼回去。】【若 c1_02_signature = silent:长廊两壁空白。没有陌生的背影来冒充你未曾讲过的人生。】【若 c3_02_mode = farewell_partial:上次你在半路折返。折返没有使这扇门变窄——画面停在你停下的地方,不急。】【若 c3_02_mode = exit_room:上次你没有进去。那不算欠账,今夜没有一件「必须补做」的事在等你。】这些都是公开的预写场景,是设备照着你给过它的东西点的灯,不是它猜中了你的秘密。门边只有一把椅子,朝着出口。","next":"c7-02"}, + {"id":"c7-02","type":"choice","pointId":"C7-02","prompt":"留白之室。你怎样度过这一刻,只决定接下来你看到的一段光影。不作为画像输入,不产生追问,没有人在门的任何一侧等着听结果。","dimensions":[],"untimed":true,"options":[{"id":"sit","label":"在椅子上坐一会儿,看光慢慢移开。","next":"c7-02-a"},{"id":"threshold","label":"只站在门槛边,不再向里走。","next":"c7-02-b"},{"id":"leave","label":"现在就出去。今晚到这里,已经够了。","next":"c7-02-c"}]}, + {"id":"c7-02-a","type":"dialogue","speaker":"旁白","text":"椅子没有把你带回任何一天。你坐着,听见的是眼前这一日的风。光从鞋边移到门外,没有等你说出一句正确的话。起身时,椅子还是空椅子,门外的人也还是现在的人。","next":"c7-outside"}, + {"id":"c7-02-b","type":"dialogue","speaker":"旁白","text":"门槛把光分成两边,你没有被要求选一边属于自己。外面有人洗碗,碰出很轻的一声。你顺着那声响转身——里面的光仍在,没有追出来。","next":"c7-outside"}, + {"id":"c7-02-c","type":"dialogue","speaker":"旁白","text":"你伸手推门,门没有变沉。走廊尽头,窗开着,一块晾到半干的布被风掀起又落下。今夜没有任何东西因你离开而熄灭。","next":"c7-outside"}, + {"id":"c7-outside","type":"dialogue","speaker":"温简","text":"(廊下,夜深。他坐在廊阶上,旁边一炉热水,两只粗碗。他给你留的位置上没有记录板——这是今晚他身上最明显的变化。递过一碗热水)热水在这里。阿棠睡了,沈队在查明日交接。(顿)我没有记你在里面待了多久。你也不必告诉我,看见了什么。【若 c2_05_depth = deep:那晚你愿意说话,我记得。但说过一次,不是以后都得说的约。(他把碗往你这边推了推)这碗水不附条件。】【若 c2_05_depth = shallow:那晚咱们谈的是板子和账,不是你的人生。后来这一路,照样走到了这里。(他笑了笑)我那晚就告诉过你半句——「记下来就不算全丢」。今晚我想起来了,那话还有下半句。】【若 c2_05_depth = silent:那晚篝火边你没有说话。后来我发现,给一个人留着不说话的位置,也会慢慢熟起来。(他往炉里添了块炭)熟了也不用补交作业。】(望着炉膛,忽然)我哥说过,记下来就不算全丢。(停顿很久。火星爆了一声。)其实还有下半句。我以前以为我懂,这些年……才听懂一半。(他没有说完。炉火把他没说完的半句话烘在那儿,像一块温着的石头。)(末了,站起身,把炉膛封了)明日各有工作。若还想相处——(顿)我是说,如果你也想——可以约个短短的空当,也可以不约。没有任务需要你迁就我的时间。","next":"c7-03"}, + {"id":"c7-03","type":"choice","pointId":"C7-03","prompt":"温简:我说的约个空当,不是客气话。但我也不想把客气话当成约定说出口——(他难得地斟酌词句)所以我把三种都摆在这儿。你挑一种你真的过得下去的,不是挑一种听起来最在乎我的。","dimensions":["attachment","mate_preference"],"options":[{"id":"regular","label":"约每天收工后的半刻钟。不一定说什么。我喜欢知道还会见到——知道这件事本身,就顶半顿饭。","next":"c7-03-a"},{"id":"spontaneous","label":"不排每天的约。有想分享的事就来敲门,我也会去找你。我不想让见面变成打卡。","next":"c7-03-b"},{"id":"space","label":"这几天各忙各的,回程后再约一次长谈。我更想把完整的时间留下,不想把零碎凑成陪伴。","next":"c7-03-c"}]}, + {"id":"c7-03-a","type":"dialogue","speaker":"温简","text":"「好。哪天赶不上,提前说。」他把时刻写在自己纸上,没有替你也写一份。头两晚很好——收工,半刻钟,两碗水,话多话少都作数。第三晚出了岔子:撤锚交接拖到很晚,他提前托阿棠带话说赶不上了,安排得体,无可指摘。你一个人在廊下坐满了那半刻钟才走——约定越可靠,落空的那一下越具体。第四晚你们又坐在一起,却都累极了,谁也没话,又谁都不好意思先散,硬把半刻钟坐成了值班。散的时候他忽然说:「明天要是还这样,咱们就请假。约会也兴请假的。」你们笑了一场。固定短约的好处是真的——你知道廊下那盏灯每天会亮;代价也是真的——灯亮着的日子,你们要练习分辨「想见」和「该见」。","next":"c7-04-intro"}, + {"id":"c7-03-b","type":"dialogue","speaker":"温简","text":"「好。敲门没人应,就等下次,不猜。」头一天就用上了:你带着街上听来的一段趣事去敲门,敲了三声,没人应。你站在门外,那三秒钟比想象中长——趣事在手里凉了半截,你才发现即兴的背面是空门。你转身走了,没猜,但也没完全不想。傍晚他寻过来:「午后我在水署。你敲过门?」你说了趣事,趣事回温了。后来他也有一次来借灯,借完却聊了很久,走的时候忘了灯。没有固定钟声,仍有人记得走这条廊——但这条廊上的每一步都得现走现想,不像有约的人,闭着眼睛也能摸到。","next":"c7-04-intro"}, + {"id":"c7-03-c","type":"dialogue","speaker":"温简","text":"「那就回程后。你定一个不赶的日子。」他没有拿眼前的热水换你多坐一刻。约定落进日历,今晚各自关门——门不是被拒绝才关上的,你们都知道。然后是三日。撤锚、核验、交接,各忙各的,忙得很有道理。第二日黄昏你们在廊下迎面碰上,点头,错身,你忽然想起一件想跟他说的事——话到嘴边,想起长谈在后日,又咽了回去。那件事到长谈那天果然说了,说得也很好。可你记得廊下咽回去的那半秒:完整的时间攒下来了,零碎的时刻却真的会过期。长谈那晚质量很高,高得值得;只是三日里那条安静的廊,也是真的安静。","next":"c7-04-intro"}, + {"id":"c7-04-intro","type":"dialogue","speaker":"阿棠","text":"(次日清晨,她醒了第一件事是问钟,听说还没误晚饭的备料,才把揉眼睛的手放下)哎,跟你说个事。你别笑,我练了一早上了。我妈那回不是不要我。是去另一座城试工,怕失败了白让我盼——这些我都跟你讲过。可小孩哪知道这些。我后来老说自己不需要等人,其实连频道安静太久都要乱想。(语速越来越快)我不是要你可怜我,我是要说办法。【若 cb_att_b_boundary = a_go:那天你来找我,我知道你担心。我关着频道,也确实是想自己待会儿。两件事都是真的——你的担心是真的,我想独处也是真的。】【若 cb_att_b_boundary = b_wait:那天你给我留了时间,我记着。以后我独处,会先说一句什么时候回来。这是我新学的,说得还不利索。】【若 cb_att_b_boundary = c_proxy:那天你让温简来问,我也知道是你的意思。下回咱们可以先约好,谁来问这一声——不然三个人都得猜。】【若 c4_04_signature = silent:那晚补药碗,你没说话,就陪我坐着。那也算数——所以今天换我先开口,扯平。】【若 c4_04_signature = reassured_action / patient_wait:那晚你讲的那个人的事,我记着呢。今天换我讲我的办法。】所以,我想跟你约一条分开工作时候的联络办法。丑话说前头——我学得慢,你可别当我一句说完就全改好了。(她终于抬头看你)约法三章这种事,对我得按年算。","next":"c7-04"}, + {"id":"c7-04","type":"choice","pointId":"C7-04","prompt":"阿棠把一张画了三个框的纸推过来:三种办法我都想过了,安全报到都一样——那是规程,不归咱们约。咱们约的是私人的那部分。你挑。挑完我也有得挑——这是商量,不是你批我的条子。","dimensions":["attachment","conflict_style"],"options":[{"id":"checkin","label":"安全报到外,再约一条收工消息。有事可以晚回,但别让我靠猜。","next":"c7-04-a"},{"id":"quiet","label":"工作时各自安静,收工再说。重要变化立即通知,其余不把未回复当作态度。","next":"c7-04-b"},{"id":"ask","label":"不固定频次,谁不安就直说想听一声;另一人忙时可以明确说晚点。","next":"c7-04-c"}]}, + {"id":"c7-04-a","type":"dialogue","speaker":"阿棠","text":"「行。一条就一条——不许发完又要我证明为什么晚了。」她笑了一下,认真把时辰抄好。头两天顺得很:收工,一声,完事。第三天她那边核访拖了堂,那声「收工了」迟了将近一个时辰。你发现自己做了一件事:盯着频道,数了四次。数到第四次你停住了——约好的安心,不知不觉变成了一次数数的焦虑。晚间她说了缘由,你没提数频道的事;可第二天你们把「晚回先递一声,一个字也行」补进了约定。补完她说:「你看,约定这玩意儿是活的,得喂。」收工一声的好处是真的——每天有一个确定的落点;代价也是真的——落点迟了的时候,它比没有约定更硌。","next":"c7-05"}, + {"id":"c7-04-b","type":"dialogue","speaker":"阿棠","text":"「行。我得练练。练不好会告诉你,不先发脾气装你欠我。」她把频道的工作与私人两栏分开,分得很认真,没有将安静那栏涂成断绝往来。安静的第二天,中午频道静了很久。她后来说:那阵子她乱想了——想你是不是生气了,想了约莫一刻钟,然后按约定,没说。收工时她只递了一句:「今天中午我想错了个方向,现在没事了,跟你说一声就算归档。」你才知道安静那一栏里,曾经刮过一场你不知道的小风暴。她说这话的时候有点得意,也有点不好意思——练成了的得意,承认风暴的不好意思。工作安静的好处是真的——两个人都保有一段不被打扰的完整下午;代价也是真的——那栏安静里装着什么,你只能信任,不能查验。","next":"c7-05"}, + {"id":"c7-04-c","type":"dialogue","speaker":"阿棠","text":"「那我可真会说。你别笑。」第四天她发来一句「今天有点烦,想听见活人」。你回:手头还有一刻钟。她只回「好」,没有把这一刻钟数成你不在意她的证据。晚上她才坦白:那一句「想听见活人」,她输入了两回,删了两回,第三回才发出去。直说听起来最自由,可「我不安」三个字的门票是难为情——它不是免费的天赋,是一次一次练出来的。她说第三回能发出去,是因为前两回删掉的时候,她想起你们约过「不安可以直说」——约定没替她开口,但给了她一个删掉之后还敢再写一遍的理由。","next":"c7-05"}, + {"id":"c7-05","type":"choice","pointId":"C7-05","prompt":"信使的快马到了:六户里已有三户核实,余下三户要等下一班回报。今晚无需你采取任何行动。沈铎(读完回报,抬头):今晚没事。没事的意思就是没事,不许自己找事。(顿)……但「没事」跟「不惦记」是两回事。那三个名字我也惦记着。所以——你想请谁怎么陪你等,自己开口。这也是一种工作安排。","dimensions":["emotional_stability","mate_preference"],"options":[{"id":"listen","label":"听我说一会儿,先别分析。有人听着,比现在得出结论更有用。","next":"c7-05-a"},{"id":"facts","label":"和我核对已知信息,不用保证会好;我想把事实与猜测分开,分开放了,心就不容易搅在一起。","next":"c7-05-b"},{"id":"ordinary","label":"陪我吃顿饭,暂时说些别的。有新消息再一起看。我想让惦记坐在桌边,而不是坐在主位。","next":"c7-05-c"}]}, + {"id":"c7-05-a","type":"dialogue","speaker":"旁白","text":"温简把笔收起来,听你讲。没有记录板的微光,你看见他也会不知道怎样回应——他两次想开口,两次忍住了,第三次只说:「我听着。」你说到后来自己笑了:其实也没有什么非说不可的。那三个尚未核实的名字仍在册上,没有因为被倾听就被写成平安。可你说完的时候,惦记还在,形状却变了——从一团变成了一堆,一堆就能码在墙角。他最后问:「够了吗?不够我再坐会儿。」你自己决定了结束的时刻。","next":"c7-06-intro"}, + {"id":"c7-05-b","type":"dialogue","speaker":"旁白","text":"沈铎和你把已知写在一边,猜测写在另一边。写到一半,他删掉自己写在「已知」栏里的一句——「回报明日必到」——改挪进「猜测」栏。你抬头看他,他说:「我也是人,也往已知里塞愿望。」(顿)不装作队长就从不害怕。你们合上纸,各自都还会担心,但至少知道:担心不是新增的一条证据。那张纸他没有收走,留在桌上——「明早你想再看一眼,就看。不想看,它也就是张纸。」","next":"c7-06-intro"}, + {"id":"c7-05-c","type":"dialogue","speaker":"旁白","text":"老鬼烧糊了半锅饭,阿棠非说锅底最香,两个人为锅底的成色认真争了一阵,沈铎被判当裁判,判得一塌糊涂。你笑得比想象中大声。笑到一半你想起那三个名字,有一瞬间觉得此刻笑是不应该的——可那锅糊饭的香味混着柴火气,也是真的。新消息没到,饭先吃完了。你没有忘记那三个名字,只是也没有忘记:眼前的人需要吃饭,你也需要。","next":"c7-06-intro"}, + {"id":"c7-06-intro","type":"dialogue","speaker":"温简","text":"(入夜,那条搬空的街。明日清晨这里正式交接给水署,此后无人居住。你们巡最后一遍——他的环境记录缺最后一页:这条街「今天的声音」。街面被扫过,门都虚掩,月亮很好。他在街口停下,翻开记录板最后一页,给你看)你看。这条街,我记了九天。门牌、朝向、灶的位置、谁家门框上有刻孩子的道道——都记了。(顿)就剩这一页,「今日之声」。我写了一个字:静。一个字太薄了。压不住一条住过几百人的街。(合上板子,看你)所以今晚我想请你帮我一个忙。规矩很简单——你此刻听见什么,说什么。这不是回忆,是现在。三种声音,远近不限,听见了什么就是什么。我记满三种,这条街就不算空着走。一时听不见,就站一会儿。站多久都行——今夜我们不赶。(顿)要是最后只想说一种,或者一种也不想说,也行。我自己会写:风声,以及一个人没说话的那一段。那种也算数。","next":"c7-06"}, + {"id":"c7-06","type":"narration","pointId":"C7-06","mechanism":"此刻采集 · 今日之声","prompt":"明天这条街就空了。说出你此刻听到的三种声音——远近不限,听见了什么就是什么。这不是回忆,是现在。说不出三种就说一种,一种也不想说,就一起站一会儿。","dimensions":["attachment","emotional_stability"],"followUp":{"maxQuestions":1,"strategy":"Jev 六维缺失检测,按幻境渲染价值取最高缺口,温简口吻模板追问一句;不往以前追,不追人名。「记不清了/听不见」为合法回答,温简回应:听不见的就不写。(他提笔,在页上留了一行空)空着也是这条街的一部分。"},"followUps":{"visual":"声音之外——街上还剩什么颜色?月光落到的地方就行,不用找特别的。","auditory":"三种里面,最远的那一种,是从哪儿过来的?猜的方向也算。","olfactory_gustatory":"风里有味道吗?这条街今天扫过,土腥气应该淡了——淡了也是一种说法。","person":"这些声音里,有没有一种是人弄出来的?没有也正常——人走了,这也是我想记的。","time_place":"它让你想起别的什么时候吗?不想联想也行,此刻就够了,我不往以前追。","emotion":"听到它的时候,你心里是松的,还是紧的?不方便讲人,就讲个物件。"},"variants":[{"signature":"安顿于静","variantId":"c7_still","label":"「静里听细」月光下的空街,声音被听出了层次:远处的更鼓、近处的风、脚底下自己的步子。温简边记边点头,记到第三种时停了笔:「这一种我也听见了。你耳朵比我灵。」基调:静不是空,静是声音终于不用抢。","tint":"#5d6e6a"},{"signature":"系于人声","variantId":"c7_voices","label":"「人声未散」空街其实没空透:邻街有妇人喊孩子乳名,更远处有车马,哪家的门轴吱呀了一声。温简记完,轻声说:「你听,人走干净了的地方,人声反而显得贵重。」基调:离别在即,人间的声音自带重量。","tint":"#8a7a5c"},{"signature":"沉默","variantId":"c7_silent","label":"「只写风声」你们并肩站了很久。风从街这头走到街那头。温简提笔写:「风声。以及一个人没说话的那一段。」写完把板子递给你看了一眼,没有解释,没有催。基调:沉默被原样记进档案。","tint":"#6b7280"}],"next":"c7-ending"}, + {"id":"c7-ending","type":"dialogue","speaker":"旁白","text":"第十七日将至,回程点的灯一盏一盏亮起来。设备将分批撤下。不替任何人决定要不要多留一天——这句话写在撤锚令的第一行,是沈铎亲手加上去的。【若 c3_06_confidant = shenduo:按沈铎提前一日的安排,第一批封存设备和已完成任务者今夜先行返回。他在廊下找到你,只说了一句:「安排照旧的旧,是你的旧。见证按新核定的方案,是你的新。」——提前撤离的那条路,他没有替你走掉。】城南传来试闸的钟声。一声,停了;又一声,又停了——像一个人学一门新乐器,按对了,自己也不敢信。王衡今天把印绶交给了公共库房,拿到一张与旁人同样的迁户牌。有人看见他在牌前站了很久,不是犹豫——是练字。第一行不再是王,只有他的名字。那一撇一捺写得慢极了,像一个人第一次用自己的脚,走自己的路。","next":"c7-end"}, {"id":"c7-end","type":"chapterEnd","nextChapter":"chapter8"} ] } diff --git a/content/chapters/chapter8.json b/content/chapters/chapter8.json index f7b3b02..7bae4df 100644 --- a/content/chapters/chapter8.json +++ b/content/chapters/chapter8.json @@ -1,32 +1,34 @@ { - "id":"chapter8","act":3,"title":"第 8 章 · 不以人殉城","estimatedMinutes":30,"startNodeId":"c8-opening", + "id":"chapter8","act":3,"title":"第 8 章 · 不以人殉城","estimatedMinutes":32,"startNodeId":"c8-opening", "nodes":[ - {"id":"c8-opening","type":"dialogue","speaker":"旁白","text":"第十七日,锚点逐个熄灭。没有轰然关上的天门,只有一台设备拔去电源之后,风声显得更清楚。阿棠坐接应车去北驿,老鬼陪同,沈铎核验回程;她的伤还需要继续静养。主绳在撤离交接表上结清,没被写成私人欠条。【若 flag_rope_holder = you:你将一路保管的绳包交回,阿棠朝你抬了抬手。】【若 c3_05_rope = b_protocol:她让你听了一声哨子,说这回不用来找我,只是说再见。】【若 c3_05_rope = c_decline:她说,你在下面接我的那次,我记得。不是托付,是你说过的分工。】","next":"c8-route"}, - {"id":"c8-route","type":"dialogue","speaker":"旁白","text":"【若 c6_03 = delegate:你按原定窗口返回北驿回程点,随后回到档案馆。当地记录员的纸本通过独立回程邮匣送达;以下苍梧现场均是标明来源的记录回放,不冒充你亲眼所见。】【若 c6_03 = observe:你撤去全部外来发射器,留在南岸安全观测所。温简也自愿留在此处;两位当地记录员各自落笔,不为你们的版本作陪衬。】【若 c6_03 = relay:你在白天完成两端名册交接,随设备返回。夜间部分由当地记录员接手,以下现场注明转录来源,你可以复核而不能补称自己在场。】","next":"c8-01"}, - {"id":"c8-01","type":"choice","pointId":"C8-01","prompt":"交接前,记录员问你:最后一段公开口述,哪一类声音由你重点整理?其他两类也由同伴收录,只是你不能同时细读全部。","dimensions":["values"],"options":[{"id":"ordinary","label":"普通住户谈将来的日子。把离城之后仍要吃饭、养家的人放在前面。","next":"c8-01-a"},{"id":"dissent","label":"不同意迁籍、选择投亲的人。保留决定之外那些不肯合拢的声音。","next":"c8-01-b"},{"id":"work","label":"水官、工役与记录员的工作交接。记下这件事究竟靠谁做成。","next":"c8-01-c"}]}, - {"id":"c8-01-a","type":"dialogue","speaker":"口述摘录·织席人","text":"到南边先借一间屋。席子潮,得晒两天;小的咳嗽,别靠水住。我没想过什么新天地,我想先把被子晒透。你整理这一段时,没有删掉她反复算晒席日子的停顿。宏大的迁徙于是有了一床潮被子的重量。","next":"c8-02-intro"}, - {"id":"c8-01-b","type":"dialogue","speaker":"口述摘录·离籍人","text":"我不是跟王走,我是去找姐姐。你要记,记清这个。我也不想进南营的新册,借宿和入籍不是一回事。记录员把两项拆开。他离开时回头看了半晌旧门,没因此改口说自己愿意一切安排。","next":"c8-02-intro"}, - {"id":"c8-01-c","type":"dialogue","speaker":"口述摘录·水官弥","text":"人过完了,才轮到我们。少一张到达牌,就问谁接的,不猜。我的师傅没留下名,只留下这把旧尺;以后你们写迁城,别只写一位王下了决心。你把说话人的名字与职掌一同写在这段前面。","next":"c8-02-intro"}, - {"id":"c8-02-intro","type":"dialogue","speaker":"旁白","text":"第十八日黄昏,最后三户的核验回报送到:两户已经到亲属处,一户在南营用了旧姓,补上对照后也已核实。最后一批工役仍在出发簿中,不能提前结清。大火星在暮色里露出,钟声没有因此自动响起,水官仍逐项核对水尺与到达牌。","next":"c8-02"}, - {"id":"c8-02","type":"choice","pointId":"C8-02","prompt":"你得到两页资料:南营到达簿已核齐此前六户,最后一班工役尚未抵达;北城交接单写着观测外锚已全撤、量水盘读数在本次预定区间。给这时的记录写哪两条注?","dimensions":["culture"],"puzzle":{"questions":[{"prompt":"此刻能否写全体已安全到达?","options":["能,星位已到","不能,最后一班尚待核验","不能,因为没有王的印"],"answer":1},{"prompt":"大火星在记录中最稳妥的作用是什么?","options":["直接控制水门的力量","提供当晚天象背景,须与日期和水工记录共同读","证明一切古代迁城都按同样方法进行"],"answer":1}],"hints":["记录必须区分已完成与尚未完成,不能用计划代替结果。","天象、历日、水尺各自提供不同证据;星出现不替代现场交接。","最后一班待核,不能先写全员到达;星位只能结合其他记录解释。"]},"options":[{"id":"submit","label":"提交两条注记","next":"c8-02-result"},{"id":"evidence-EXIT","label":"请记录员示范怎样注记","next":"c8-02-result"}]}, - {"id":"c8-02-result","type":"dialogue","speaker":"记录员·禾","text":"她在全体已至旁边划掉一个全字:先写已核到的人。空一处,不算丢脸。下一行注明星位、时刻、量水盘读数,谁测的各署姓名。她不是在给未来的人出谜,她只是不肯把自己没看见的事写成看见。","next":"c8-delay"}, - {"id":"c8-delay","type":"dialogue","speaker":"旁白","text":"最后一班迟了一刻钟。当地负责人传来确认:车轴故障,人员在指定等候处,已另派车辆接应,无需新增援手。工作面外的人只能等。没有倒数让你决定谁值得活,也没有暗藏的一条近路奖励莽撞。你面对的是更难写成英雄事迹的事:知道有人负责,仍然担心。","next":"c8-03"}, - {"id":"c8-03","type":"choice","pointId":"C8-03","prompt":"确切回报要再等一刻钟。你在安全位置,无法改善现场处置。你现在愿意做什么?","dimensions":["emotional_stability","risk"],"options":[{"id":"interval","label":"按约定时刻再确认,不反复催问;先做手边可完成的校对。","next":"c8-03-a"},{"id":"company","label":"请身边人陪着等一会儿,明说我不安,不要求他保证结果。","next":"c8-03-b"},{"id":"single","label":"经指定联络人问一次预期回报时间,之后离开消息台坐一会儿。","next":"c8-03-c"}]}, - {"id":"c8-03-a","type":"dialogue","speaker":"旁白","text":"你核完三处漏字,又把第二处看了一遍。钟声慢得有些不讲理,到约定时刻,你才翻开新的回报。担心没有被工作消灭,只是这一刻没有再替现场添一项回复任务。","next":"c8-arrival"}, - {"id":"c8-03-b","type":"dialogue","speaker":"旁白","text":"身边的人没有劝你想开,只挪近一把椅子。你们一起听了一会儿与这件事无关的风声。没有人因为害怕就失去记录员的资格,也没有人替另一人承包此后的全部平静。","next":"c8-arrival"}, - {"id":"c8-03-c","type":"dialogue","speaker":"旁白","text":"联络人给了新的回报时刻,提醒不必守在台前。你把它记下,走到有窗的地方。那不是撒手不管,而是一次问清之后,允许事情在你看不见的地方继续被别人处理。","next":"c8-arrival"}, - {"id":"c8-arrival","type":"dialogue","speaker":"旁白","text":"最后一班到了。记录员没有高喊,她数完人数,才把笔放下。那位走在末尾的工役抱着一只旧水壶,问还有没有热饭。北城的灯逐盏熄灭,先是水署,再是宫门,最后是守陵人的小屋。老人没有留在那里陪王号殉葬,他坐在渡车上,给孙儿让出靠外的位置。旧国留在北岸,人继续向前。","next":"c8-04-intro"}, - {"id":"c8-04-intro","type":"dialogue","speaker":"旁白","text":"第二日的回程交接后,小队在档案馆重聚。温简把口述整理稿念给大家,阿棠忽然摇头:你写众人释然离去,可那个妇人走前还在哭。温简说,他想给这一段一个收束。他们都看向你。原始材料保存完好,不会为文句改动;争的是首页怎样开头。","next":"c8-04"}, - {"id":"c8-04","type":"choice","pointId":"C8-04","prompt":"首页字数有限,三种写法都标明来源,并保留原始记录供复核。你怎样组织这次分歧?","dimensions":["conflict_style"],"options":[{"id":"parallel","label":"并列放上两个不同的离去者,让读者先看见分歧;首页少一点顺畅。","next":"c8-04-a"},{"id":"scene","label":"删掉总括,只写能证实的场景;情绪由各人原话承担,开头会更克制。","next":"c8-04-b"},{"id":"signed","label":"各写一段署名导语,分开标明解释与事实;读者需要多读一页。","next":"c8-04-c"}]}, - {"id":"c8-04-a","type":"dialogue","speaker":"旁白","text":"一段盼着新屋,一段舍不得旧门,并排放在第一页。阿棠没有赢过温简,温简也没有把阿棠的反对写成情绪化。你们失去一个漂亮整齐的开头,得到两个没有被互相代替的人。","next":"c8-05-intro"}, - {"id":"c8-04-b","type":"dialogue","speaker":"旁白","text":"第一页只写时辰、车数、核验过程,再接上那句有没有热饭。没有众人,也没有终于。温简删得很慢,最后把自己原来那段留在工作笔记里,承认那是他的感受,不是全城人的共同心声。","next":"c8-05-intro"}, - {"id":"c8-04-c","type":"dialogue","speaker":"旁白","text":"两段导语各有签名,读者可以看出谁把迁移看成结束,谁把它看成尚未结束的生活。稿子多了一页,也多了一处可以提出异议的位置。老鬼翻完,说这回连不服气都知道该去找谁。","next":"c8-05-intro"}, - {"id":"c8-05-intro","type":"dialogue","speaker":"馆长","text":"北城留下满府库与器物,是因为迁移优先给了人;灶火和未收完的席,是收尾仓促留下的日常。南营资料没有进入你们原先的勘探范围,于是史书只看见一个空城。你们带回的不是替古人选择的新历史,是可以修正我们旧判断的证据。档案馆是否继续受托保管公开资料,应由有资格的见证者与资料所有者共同决定。我不能再把自己的存在算作必要条件。","next":"c8-05"}, - {"id":"c8-05","type":"choice","pointId":"C8-05","prompt":"公开口述已取得古代侧讲述者的使用许可,私人记忆不在此列。经全体协商,三个保管方案都可执行并允许退出。你支持哪一种?这将改变终章的档案馆结局,不决定谁更值得被爱。","dimensions":["values","risk"],"options":[{"id":"shared","label":"保留档案馆,但由多方共同保管、复核权限。继续享用连接,也承担长期监督的工作。","next":"c8-05-a"},{"id":"local","label":"撤销馆长独占的调度权,改为各地分存和定期互核。少一些便捷,换不依赖单一中心。","next":"c8-05-b"},{"id":"pause","label":"先封存本次公共档案,暂停新任务,完成独立审查再议。保存成果,也接受下一次出发要等待。","next":"c8-05-c"}]}, - {"id":"c8-05-a","type":"dialogue","speaker":"旁白","text":"五把新的查验钥匙没有交给同一个人。馆长保留一把,不再是所有门都必须经过的那一把。你们约定下次复核的日子,知道制度不会因为写出来就自动长久。灯继续亮着,值夜的人也从此不能只留一个。","next":"c8-ending"}, - {"id":"c8-05-b","type":"dialogue","speaker":"旁白","text":"公共档案逐份核验分存,调度台熄了主灯,检索灯仍在。馆长学会回答我不知道这份现在归谁,需要询问。连接慢下来,偶尔要等一封回函;没有哪一次方便,能再让一处失误成为所有地方的失语。","next":"c8-ending"}, - {"id":"c8-05-c","type":"dialogue","speaker":"旁白","text":"任务日历往后翻了一页,新的出发日期没有填。公共资料仍可按原许可查阅,审查记录逐项开放。暂停没有退回那些已经活过的人,也没有许诺等得久就一定等来好答案。它只是让来不及再一次不成为催人交权的理由。","next":"c8-ending"}, - {"id":"c8-ending","type":"dialogue","speaker":"旁白","text":"苍梧没有复国。南营后来分成数处聚落,王衡的名字出现在一张修渠的工役簿上,与别人同列,没有谥号。守陵少年的来信说,他在学做船;祖父仍不习惯睡在没有陵丘的地方,但已经会嫌南边的菜咸。那座被你们叫了七年疑冢的遗址,原来不是一座把人关进去的墓。它是人们走后,留给一个国号的空屋。","next":"c8-end"}, + {"id":"c8-opening","type":"dialogue","speaker":"旁白","text":"第十七日,锚点逐个熄灭。锚点熄到第七台的时候,你发现了这件仪式的真相:它没有仪式。一台机器灭了,一台机器灭了,又一台机器灭了。风声一次比一次清楚,像屋子一件件搬空后,脚步声的回音越来越诚实。阿棠坐接应车来北驿,老鬼陪同,沈铎核验回程清单;她的腿好了大半,但固定没拆,上下车仍需人搭一把手——她只许老鬼搭。主绳在撤离交接表上结清了。它没被写成私人欠条——那一页纸上只有保管人、核验人、交接时辰,和所有人的签名。【若 flag_rope_holder = you:你把一路保管的绳包交回阿棠。她接过去,掂了掂,朝你抬了抬手——没道谢,也没说笑。有些东西结清了就结清了,多说一个字都像在翻新账。】【若 c3_05_rope = b_protocol:阿棠摸出那只哨子,吹了一声,很短。「这回不用来找我。」她说,「就是跟你说一声再见。」哨声散在搬空一半的街上,谁也没有应它——它本来也不是吹给谁应的。】【若 c3_05_rope = c_decline:阿棠把绳包抛还给沈铎,回头看你一眼:「你在下面接我的那次,我记得。不是托付——是你说过的,分工。」她把「分工」两个字咬得很稳,像验收一枚合格的钉子。】老鬼(清点完最后一箱,直起腰):撤锚这活儿,干到今天我才咂摸出味儿来——来的时候,件件东西都金贵,回去的时候,件件都是累赘。人呐,带走的最舍不得,留下的最放不下,中间那点日子,才是自己的。沈铎(核对清单,头也不抬):老鬼。感慨记工时吗?老鬼:记,记。哥哥我这句免费。","next":"c8-route"}, + {"id":"c8-route","type":"dialogue","speaker":"旁白","text":"【若 c6_03 = delegate:你按原定窗口撤回北驿回程点,不再回观测现场——「少留的一天」,少的是观测现场的一天,不是北驿。当地记录员的纸本通过独立回程邮匣送达北驿,牛皮纸封,封口盖着南营的泥印。你拆封读到的每一页都标明来源:禾记,弥核。你读到它的时候,水门之夜已经结束了——你读得很慢,像在补听一通没有接到的电话。有一处水尺读数旁,禾写了一行小字:「此处我犹豫过,问过弥,弥说照实写。」你把这行小字也读进了记录——你不在场的夜,连犹豫都是别人的。委托不是甩手:格式是你交的,并列分歧的写法是你留的位置,可那个夜里风往哪边吹,你永远是从纸上知道的。】【若 c6_03 = observe:你撤去全部外来发射器,留在南岸安全观测所。温简也自愿留下。观测所是一间高处的砖屋,窗对着北岸,桌上只有纸、笔、一盏油灯。两位当地记录员各自落笔,不为你们的版本作陪衬——禾的纸上甚至有一处与你们口径不同的时辰,她没改,你们也没要求她改。第一夜风大,窗纸响了一宿;第二夜水声变了调,弥推门进来报了个读数,又出去了。你在场,可在场不等于看见全部:水门转角后的一段,你只听见了声音。你记下「听见,未见」,那四个字比任何影像都诚实。】【若 c6_03 = relay:你在白天完成两端名册交接——北岸一份,南岸一份,各签一名见证人,签字的时候两边的日头都不是同一高度。随设备返回后,夜间部分由当地记录员接手:以下现场注明转录来源,你可以复核,不能补称自己在场。交接的路上你多走了一轮,鞋底磨薄了一层;没来得及再听一遍南市最后的叫卖。夜里你躺在北驿,知道三里外那场交接正在进行,而你手里握着的,是两半夜的接缝——它要齐,靠的不是任何一边多写一笔,是两边都肯少写一笔。】无论以哪种方式,第十八日黄昏,同一件事来到了你们面前:最后三户的核验回报。","next":"c8-01"}, + {"id":"c8-01","type":"choice","pointId":"C8-01","prompt":"交接前,记录员禾把三摞口述稿放在桌上:三摞都在这儿。你细读哪摞,首页就沾哪摞的口气。(顿)另外两摞有人收,不会丢——丢不了,但会隔着一层。隔着一层读别人读过的,跟自己读,是两回事。你知道的。","dimensions":["values"],"options":[{"id":"ordinary","label":"普通住户谈将来的日子。把离城之后仍要吃饭、养家的人放在前面。","next":"c8-01-a"},{"id":"dissent","label":"不同意迁籍、选择投亲的人。保留决定之外那些不肯合拢的声音。","next":"c8-01-b"},{"id":"work","label":"水官、工役与记录员的工作交接。记下这件事究竟靠谁做成。","next":"c8-01-c"}]}, + {"id":"c8-01-a","type":"dialogue","speaker":"口述摘录·织席人","text":"织席人的口述你读了四遍。「到南边先借一间屋。席子潮,得晒两天;小的咳嗽,别靠水住。我没想过什么新天地,我想先把被子晒透。」你整理这一段时,没有删掉她反复算晒席日子的停顿——宏大的迁徙于是有了一床潮被子的重量。代价在另外两摞:异议者那句「借宿和入籍不是一回事」,你是从温简的转述里读到的,转述忠实,可你没亲耳听见她说这句话时停顿在哪。","next":"c8-02-intro"}, + {"id":"c8-01-b","type":"dialogue","speaker":"口述摘录·离籍人","text":"离籍人的口述带着刺。「我不是跟王走,我是去找姐姐。你要记,记清这个。我也不想进南营的新册,借宿和入籍不是一回事。」他离开时回头看了半晌旧门——你记下了那半晌,没因此替他改口说自己愿意一切安排。代价在另外两摞:织席人晒被子的日子进了阿棠的本子,你往后引用时,那句「先把被子晒透」的口气,是第二手的。","next":"c8-02-intro"}, + {"id":"c8-01-c","type":"dialogue","speaker":"口述摘录·水官弥","text":"弥的口述像工单。「人过完了,才轮到我们。少一张到达牌,就问谁接的,不猜。我的师傅没留下名,只留下这把旧尺;以后你们写迁城,别只写一位王下了决心。」你把说话人的名字与职掌一同写在这段前面。代价在另外两摞:那个回头看了半晌旧门的离籍人,在你这里只剩一行转录——你知道他回头了,不知道他回头时脸上是什么。","next":"c8-02-intro"}, + {"id":"c8-02-intro","type":"dialogue","speaker":"旁白","text":"第十八日黄昏,核验回报送到的时候,没有人欢呼。禾把三条核验记录抄进总簿,抄完,笔搁下,说了一句今晚最长的话:「六户齐了。」齐了的意思是:这六户的缺页补上了。不是所有人的缺页都补上了。总簿里还有别处来的、别年的、别的缘由的空白,它们将继续空白着,直到下一个人来。最后一批工役仍在出发簿中,不能提前结清。大火星在暮色里露出——钟声没有因此自动响起。水官仍逐项核对水尺与到达牌。星星到了它的位置,人也得走到自己的位置,两件事谁也不替谁。温简(低声):一年了。从观星台那晚算起,我等这颗星等了——(他算了算,笑了)其实这趟一共才十八天。可我觉得等了一年。","next":"c8-02"}, + {"id":"c8-02","type":"choice","pointId":"C8-02","prompt":"堂屋灯下,你手边两页资料:南营到达簿抄页(六户已核齐,最后一班工役尚未抵达);北城交接单(观测外锚已全撤,量水盘读数在本次预定区间)。禾把笔推给你:两页纸,写两条注。(顿)写错不丢人——把没核完的写成核完的,才丢人。我们南营的簿子,宁可留白,不留谎。(苍梧世界内部文书,非现实史料。)","dimensions":["culture"],"puzzle":{"questions":[{"prompt":"此刻能否写「全体已安全到达」?","options":["能,大火星已至正位,转运窗口即此夜","不能,最后一班工役尚待核验","不能,因为没有王盖印"],"answer":1},{"prompt":"大火星在记录中最稳妥的作用是什么?","options":["直接控制水门开闸的力量","提供当晚天象背景,须与日期和水工记录共同读","证明一切古代迁城都按同样方法进行"],"answer":1}],"hints":["记录有两栏:已经发生的,和应当发生的。今晚这两页纸,各属于哪一栏?别让「应当」混进「已经」。","南营簿例:天象、历日、水尺是三种证据,各管各的。星出现不替代现场交接,水尺不替代名册,名册不替代亲眼。","最后一班待核,不能先写全员到达;星位只能作背景,与其他记录合读。"]},"options":[{"id":"submit","label":"提交两条注记","next":"c8-02-result"},{"id":"evidence-EXIT","label":"请记录员示范怎样注记","next":"c8-02-result"}]}, + {"id":"c8-02-result","type":"dialogue","speaker":"记录员·禾","text":"她看你写的两条注,拿起笔,在「全体已至」旁边划掉一个「全」字:「先写已核到的人。空一处,不算丢脸。」下一行注明星位、时刻、量水盘读数,谁测的各署姓名。「我师傅教我:记簿的人不是给未来的人出谜——是不肯把自己没看见的事写成看见。」","next":"c8-delay"}, + {"id":"c8-delay","type":"dialogue","speaker":"旁白","text":"最后一班迟了一刻钟。当地负责人传来确认:车轴故障,人员在指定等候处,已另派车辆接应,无需新增援手。工作面外的人,只能等。没有倒数让你决定谁值得活,也没有暗藏的一条近路奖励莽撞。你面对的是一件更难写成英雄事迹的事:知道有人负责,仍然担心。担心在这里没有用途。它没有用途,可它不走。它就坐在檐下,跟你一起看更漏一滴一滴地漏。沈铎(站在你旁边,忽然说):我带队这么多年,最难受的不是出事的时候。是出不了手的时候。(顿)规程里没写这种时候怎么办。我后来发现,规程不写,是因为它没办法写——各人有各人的熬法。","next":"c8-03"}, + {"id":"c8-03","type":"choice","pointId":"C8-03","prompt":"确切回报还要再等一刻钟。沈铎:一刻钟。你想怎么过,怎么过。没人给你记考勤——(他看你一眼)包括你自己。","dimensions":["emotional_stability","risk"],"options":[{"id":"interval","label":"按约定时刻再确认,不反复催问;先做手边可完成的校对,让这一刻钟有事可做。","next":"c8-03-a"},{"id":"company","label":"请身边人陪着等一会儿,明说我不安,不要求他保证结果。","next":"c8-03-b"},{"id":"single","label":"经指定联络人问一次预期回报时间,之后离开消息台坐一会儿。问清一次,然后允许事情在我看不见的地方继续被别人处理。","next":"c8-03-c"}]}, + {"id":"c8-03-a","type":"dialogue","speaker":"旁白","text":"你翻开手边的册页核漏字。核完三处,又把第二处看了一遍——第二遍什么也没看出来,你看的不是字了。催问的冲动起来了三次。第一次你想走到消息台边去问;第二次你想托经过的驿卒带一句;第三次你甚至连问的措辞都想好了:「就问问,不催。」——可「就问问」在这一刻钟里就是催。你把三次都按下去了。按下去的感觉不好受,像把一只扑棱的鸟摁进袖子里,袖子还在动。约定时刻到,你翻开新的回报。担心没有被工作消灭——只是这一刻钟,你没有替现场再添一项回复任务。纪律不是不担心,是担心也没处放,还是没乱放。","next":"c8-arrival"}, + {"id":"c8-03-b","type":"dialogue","speaker":"旁白","text":"你在廊下站了一会儿才开口。「我不安」三个字比想象中难说——它一出口,你的不安就从私物变成了公务,得有人签收。沈铎没有劝你想开,只挪近一把椅子。你们一起听了一会儿与这件事无关的风声。中途你发现一件更微妙的事:被人看见不安,本身也需要习惯——你两次差点补一句「其实也没那么担心」来找回体面,两次都咽了回去。没有人因为害怕就失去记录员的资格,也没有人替另一人承包此后的全部平静。回报到了的时候,他说:「成了。」你说:「嗯。」两个人都没提刚才那把人挪近的椅子。","next":"c8-arrival"}, + {"id":"c8-03-c","type":"dialogue","speaker":"旁白","text":"联络人给了新的回报时刻,提醒不必守在台前。你把它记下,走到有窗的地方。离开的那几步,负疚一路跟着你——走到窗口坐下时,心里有个声音说:「大家都在檐下熬着,你倒会享福。」你没有听它的,但你听见了它;听见它,就意味着它存在过。更漏滴到第九滴,你回头看了一眼消息台的方向——只一眼,然后转回来,看窗外。那不是撒手不管,是一次问清之后,允许事情在你看不见的地方继续被别人处理。回报到时,是驿卒来窗口找的你。你走回檐下,步子不快不慢。","next":"c8-arrival"}, + {"id":"c8-arrival","type":"dialogue","speaker":"旁白","text":"最后一班到了。禾没有高喊——她数完人数,才把笔放下。笔尖搁进笔山的声音,是今夜全城最响的一声。那位走在末尾的工役抱着一只旧水壶,进门先问:还有没有热饭。有。灶上一直温着。他捧着碗蹲在门槛上吃,吃得很急,吃到一半忽然停下来,回头望了一眼北城的方向——什么都没有说,继续吃。北城的灯,从这一刻起逐盏熄灭。先是水署——弥吹灯前最后看了一眼量水盘,玉片停在今夜的读数上。再是宫门——那座等了一千年国祭的台基,今夜没有任何仪式,灭灯的人甚至打了个哈欠。最后是守陵人的小屋——老人没有留在那里陪王号殉葬。他坐在渡车上,给孙儿让出靠外的位置,嘴里嫌着:「船都没学会,坐外头干什么,掉下去。」手却把孙儿的衣领拽住了。旧国留在北岸。人继续向前。","next":"c8-04-intro"}, + {"id":"c8-04-intro","type":"dialogue","speaker":"旁白","text":"次日,北驿临时档案室。回程交接完毕,小队聚在这里做口述整理稿的最后一轮。温简(念初稿):「……壬子之夜,众人释然离去——」阿棠(从访谈席上直起身):等等。释然?那个抱着门框哭的妇人,你写她释然?她走前还在哭!我录的,你听回放!温简(不恼,也不让):我听了。所以她哭完上了车,车走了,这算不算一种释然?(顿)我想给这一段一个收束。读者读到「众人释然离去」,才能合上书。阿棠:合上书?人家一辈子合不上,你替读者合上了!两个人都看向你。原始材料保存完好,不会为文句改动——争的是首页怎样开头。老鬼(低声,对你):别看我。哥哥我贩子出身,就知道一条:招牌怎么挂,货还是那批货。(顿)可招牌挂错了,识货的人也走不进来了。","next":"c8-04"}, + {"id":"c8-04","type":"choice","pointId":"C8-04","prompt":"首页字数有限。三种写法都标明来源,都保留原始记录供复核。争的不是事实,是第一句给读者的心情。你怎样组织这次分歧?","dimensions":["conflict_style"],"options":[{"id":"parallel","label":"并列放上两个不同的离去者,让读者先看见分歧;首页少一点顺畅。","next":"c8-04-a"},{"id":"scene","label":"删掉总括,只写能证实的场景;情绪由各人原话承担,开头会更克制。","next":"c8-04-b"},{"id":"signed","label":"各写一段署名导语,分开标明解释与事实;读者需要多读一页。","next":"c8-04-c"}]}, + {"id":"c8-04-a","type":"dialogue","speaker":"旁白","text":"一段盼着新屋,一段舍不得旧门,并排放在第一页。阿棠没有赢过温简,温简也没有把阿棠的反对写成「情绪化」——两个人的名字并排署在两段底下,像两根不交叉的线。你们失去一个漂亮整齐的开头,得到两个没有被互相代替的人。代价是真实的:初读的驿丞翻到第一页就皱眉:「到底是个啥情形?」——分歧的诚实,首先征税在读者身上。温简把这句话记进了工作笔记:「让读者皱眉,也是我们的一种失礼。只是我们决定,这种失礼比替人释然要小。」","next":"c8-05-intro"}, + {"id":"c8-04-b","type":"dialogue","speaker":"旁白","text":"第一页只写时辰、车数、核验过程,再接上那句「还有没有热饭」。没有「众人」,也没有「终于」。温简删得很慢——「释然离去」四个字他盯了足足一分钟才划掉——最后把自己原来那段留在工作笔记里,承认那是他的感受,不是全城人的共同心声。克制是美德,可克制也有它的价:阿棠翻完第一页,小声说:「好是好。就是……淡得有点像公牍。那妇人哭的事,读者要翻到第七页才碰上。」删掉修辞的同时,也删掉了一些读者走下去的绳子。你们接受了这个价。","next":"c8-05-intro"}, + {"id":"c8-04-c","type":"dialogue","speaker":"旁白","text":"两段导语各有签名,读者可以看出谁把迁移看成结束,谁把它看成尚未结束的生活。稿子多了一页,也多了一处可以提出异议的位置。老鬼翻完,说:「这回连不服气都知道该去找谁。」代价明摆着:多一页就是多一页——驿丞传抄的工时、以后每个引用者多翻的一次,都在这一页上。沈铎核完页码说:「多一页,以后每次付印都多一页的钱。咱们这是把分歧的成本永久化了。」没有人说这不值。但成本被说出了口,这就对了。","next":"c8-05-intro"}, + {"id":"c8-05-intro","type":"dialogue","speaker":"馆长","text":"北城留下满府库与器物,是因为迁移优先给了人;灶火和未收完的席,是收尾仓促留下的日常。南营资料没有进入你们原先的勘探范围,于是史书只看见一座空城。你们带回的,不是替古人选择的新历史,是可以修正我们旧判断的证据。接下来是档案馆的事,也是你们的事。这些公开口述资料的保管——我提一个方案,然后退到表决之外。(停顿)档案馆是否继续受托,应由有资格的见证者与资料所有者共同决定。我不能再把自己的存在,算作必要条件。三个方案,当地水署与南营都已预核过可行性,也都允许日后退出。你们讨论,你们定。我执行——(很轻的停顿)这次是真的执行。沈铎把三张方案纸排在桌上:规程没有这一条。所以这次不是规程,是商量。先说清三件事:公开口述已取得讲述者使用许可,私人记忆不在此列;三个方案都可执行、可退出;你的选择改变终章的档案馆结局,不决定谁更值得被爱。","next":"c8-05"}, + {"id":"c8-05","type":"choice","pointId":"C8-05","prompt":"三个保管方案都可执行并允许退出。你支持哪一种?","dimensions":["values","risk"],"options":[{"id":"shared","label":"保留档案馆,但由多方共同保管、复核权限。继续享用连接,也承担长期监督的工作。","next":"c8-05-a"},{"id":"local","label":"撤销馆长独占的调度权,改为各地分存和定期互核。少一些便捷,换不依赖单一中心。","next":"c8-05-b"},{"id":"pause","label":"先封存本次公共档案,暂停新任务,完成独立审查再议。保存成果,也接受下一次出发要等待。","next":"c8-05-c"}]}, + {"id":"c8-05-a","type":"dialogue","speaker":"旁白","text":"五把新的查验钥匙没有交给同一个人。馆长保留一把——不再是所有门都必须经过的那一把。你们约定下次复核的日子,都知道制度不会因为写出来就自动长久。灯继续亮着,值夜的人却从此不能只留一个。代价写进日历:复核日从此是你们每个人的 recurring 麻烦——第一次复核就退回了馆长的两项申请,退回、重写、再核,便利没有消失,便利从此有了嚼头。","next":"c8-06-intro"}, + {"id":"c8-05-b","type":"dialogue","speaker":"旁白","text":"公共档案逐份核验分存,调度台熄了主灯,检索灯仍在。馆长学会了回答一句话:「我不知道这份现在归谁,需要询问。」——它第一次说这句话的时候,频道里静了三秒,然后它自己补了一句:「这句话我应该早就会说。」连接慢下来,偶尔要等一封回函;第一批分存回函迟了两日,你们先查收件记录,再等复核。慢是有价格的,价格明码标在日历上。但没有哪一次方便,能再让一处失误成为所有地方的失语。","next":"c8-06-intro"}, + {"id":"c8-05-c","type":"dialogue","speaker":"旁白","text":"任务日历往后翻了一页,新的出发日期没有填。公共资料仍可按原许可查阅,审查记录逐项开放。暂停没有退回那些已经活过的人,也没有许诺等得久就一定等来好答案——它只是让「来不及」再一次不成为催人交权的理由。代价是沉默的成本:审查期里,下一个苍梧如果正在发生,没有人知道。这条后续里没有任何角色安慰你「等是值得的」。沈铎只在日历空白处写了一行小字:「等待也是一种选择。选择的账,认。」","next":"c8-06-intro"}, + {"id":"c8-06-intro","type":"dialogue","speaker":"馆长","text":"(最后离开苍梧前,北驿回程点。回程的「门」立在驿站空场上:不是木门,是一圈锚点亮起的光框,框内是档案馆的白光。行囊已清点,队友已在门侧等你。通讯频道里,馆长最后一次为这趟任务开口)C-2049。回程的门认得的是此刻——来的时候,它认你交出的一段过去;回去,它只认你现在站着的地方。这座城给你的最后一眼、最后一种气味、最后一下触感,说出来,当燃料。不必是漂亮的告别。不漂亮的最耐烧。","next":"c8-06"}, + {"id":"c8-06","type":"narration","pointId":"C8-06","mechanism":"记忆钥匙 · 回程","prompt":"回程的门认得的是此刻。这座城给你的最后一眼、最后一种气味、最后一下触感——说出来当燃料。不必是漂亮的告别。沉默也烧得着——门两头的规矩,你第一天就知道。","dimensions":["emotional_stability","values"],"followUp":{"maxQuestions":1,"strategy":"Jev 六维缺失检测,按幻境渲染价值取最高缺口,馆长口吻模板追问一句(克制、偶尔意味深长)。「记不清了」为合法回答,馆长回应:那就用此刻站在门口的这一秒。(停顿)它也够。"},"followUps":{"visual":"最后一眼——你落在哪儿了?不用是好的,是真的就行。","auditory":"此刻有什么声音?(停顿)苍梧的声音快没有了,所以这一声,算数。","olfactory_gustatory":"气味呢。这座城最后一天的气味,只有你闻得到。","person":"画面里有人吗?(停顿)没有,也是答案。","time_place":"是这一秒的东西,还是前几天的东西自己浮上来了?——浮上来的也行,此刻也包括它。","emotion":"说这些的时候,你是舍不得,还是松了口气?(停顿)两个都有的话,就都算。"},"variants":[{"signature":"安顿于收束","variantId":"c8_dusk","label":"「暮色回程」穿过光框是一段暮色甬道,两侧浮着苍梧最后一天的碎影:晾到半干的布、门边石台上的锅、逐盏熄灭的灯。光不刺眼,像有人替你把这一天叠好了。基调:告别不必盛大,叠好就行。","tint":"#7a6a5e"},{"signature":"安顿于向前","variantId":"c8_dawn","label":"「晨光回程」穿过光框是一段晨光甬道,碎影是出发的声音:渡车的辕、老人的笑骂、工役捧着的热碗。光从甬道尽头进来,先照到你的鞋尖。基调:这座城给你的最后一样东西,是早晨。","tint":"#8c8577"},{"signature":"沉默","variantId":"c8_silent","label":"「通用雾景回程」穿过光框是一片缓缓流动的雾——雾的出口处有一点确定的亮光,不走,也不催。基调:留白也能作燃料——你没说出口的告别,门也收。","tint":"#707a82"}],"next":"c8-ending"}, + {"id":"c8-ending","type":"dialogue","speaker":"旁白","text":"苍梧没有复国。南营后来分成数处聚落。王衡的名字出现在一张修渠的工役簿上,与别人同列,没有谥号——簿子上他的字还是最工整的,工整得有点扎眼,像一个人改不掉的老习惯。守陵少年的来信说,他在学做船。第一只漏了。祖父骂完,帮他晾木板。老人仍不习惯睡在没有陵丘的地方,但已经会嫌南边的菜咸——会嫌菜咸,就是在过日子了。那座被你们叫了七年疑冢的遗址,原来不是一座把人关进去的墓。它是人们走后,留给一个国号的空屋。空屋不闹鬼。空屋只是空着,等一个肯说实话的后来人,推开门,说一句:原来如此。","next":"c8-end"}, {"id":"c8-end","type":"chapterEnd","nextChapter":"chapter9"} ] } diff --git a/content/chapters/chapter9.json b/content/chapters/chapter9.json index 54fbfd9..555a84d 100644 --- a/content/chapters/chapter9.json +++ b/content/chapters/chapter9.json @@ -1,31 +1,31 @@ { - "id":"chapter9","act":3,"title":"第 9 章 · 人间有信","estimatedMinutes":25,"startNodeId":"c9-opening", + "id":"chapter9","act":3,"title":"第 9 章 · 人间有信","estimatedMinutes":30,"startNodeId":"c9-opening", "nodes":[ - {"id":"c9-opening","type":"dialogue","speaker":"旁白","text":"归来后的第七天,你在现实中的桌前醒来。雨已经停了,杯底有一圈茶渍,窗外的早点铺正开卷帘门。七年勘探报告里那句原因不明的大规模消失,被你划掉了原因不明四个字,又停笔补上:迁移过程已获新证,个体去向仍须持续核查。你没有因为终于听见一座城,就自以为听见了里面的每一个人。","next":"c9-institution"}, - {"id":"c9-institution","type":"dialogue","speaker":"旁白","text":"【若 c8_05 = shared:共同保管的第一次核验如期举行。馆长有两项申请被退回重写,它照单改了,没有再用任务紧急催促签字。】【若 c8_05 = local:第一批分存回函迟了两日。你们先查收件记录,再等各地复核;没有人因效率不如从前,就急着把全部钥匙送回中央。】【若 c8_05 = pause:空白的任务日历仍挂着。审查已完成第一批,另有问题未闭环,新的旅程没有为了结尾好看而仓促开放。】这不是奖杯上刻好的胜利。它是一周以后,大家仍在做的那些麻烦事。","next":"c9-people"}, - {"id":"c9-people","type":"dialogue","speaker":"旁白","text":"老鬼接受了违规处分,不再经手遗存,转做公开口述资料的索引。他女儿图录的半页以未完成原貌留存,没有拿归还文物抵销偷拿。沈铎补交隐瞒任务的说明,下一次带队资格待审。阿棠还在复查,小腿固定没拆,会议依旧来得最早。温简把第二本账交给共同核验者,第一本也留着,谁都不能拿诚实的后来替换不诚实的曾经。","next":"c9-01"}, - {"id":"c9-01","type":"choice","pointId":"C9-01","prompt":"阿棠约大家周末聚一聚,温简只能周六午后,沈铎周日有空,老鬼说哪天都能挪半天。你这一周也很累。你会怎样回应这次没有任务的邀约?","dimensions":["mate_preference","values"],"options":[{"id":"small","label":"先约能到的两三个人,其他人另约。难得的空闲,我想用来真正坐一会儿。","next":"c9-01-a"},{"id":"all","label":"再找一个大家都能来的日子,不急着这个周末。完整见一面值得多等。","next":"c9-01-b"},{"id":"rest","label":"这周先休息,下周给出我能守住的时间。我不想用勉强赴约表示在意。","next":"c9-01-c"}]}, - {"id":"c9-01-a","type":"dialogue","speaker":"旁白","text":"小桌只坐了三个人,没到的人没有被说成不合群。阿棠拍了茶杯,发的是杯子,不是偷拍谁的脸。你们又给另外两人留出一段时间,相聚没有因为不是全员就变成不算数。","next":"c9-02-intro"}, - {"id":"c9-01-b","type":"dialogue","speaker":"旁白","text":"日子往后挪了十天,终于凑齐。等的过程中有人发了一句最近忙,大家只回见面再说。那顿饭没有像任务复盘一样分秒不差,等上菜时的闲话却比报告更长。","next":"c9-02-intro"}, - {"id":"c9-01-c","type":"dialogue","speaker":"旁白","text":"你睡了一个没有闹钟的下午,下周如约发出时间。阿棠回:收到。没给你列缺席的账。再见面时,你能完整听完温简的一段话,不必一边困倦一边证明自己愿意留下。","next":"c9-02-intro"}, - {"id":"c9-02-intro","type":"dialogue","speaker":"沈铎","text":"(饭后,他把工作本合起来)这趟里我总以为,凡事安排妥当,就是对人好。回来才知道,有人想要的是先问他一句。以后再有人跟我一起生活,我得学会说:这是我的打算,你的呢?你们借住时争过那张桌子,我现在倒觉得,那比一起过险处还见真章。","next":"c9-02"}, - {"id":"c9-02","type":"choice","pointId":"C9-02","prompt":"话题说到平常的周末。假如你与亲近的人只有半天共同空闲,对方想出门,你想待着,双方没有特别纪念日或紧急需要,你更愿意先提出哪种安排?","dimensions":["mate_preference","conflict_style"],"options":[{"id":"alternate","label":"这次随你出门,下次按我的节奏待着。轮流让一天,别把一方的习惯当默认。","next":"c9-02-a"},{"id":"separate","label":"半天各过各的,晚饭再碰头。一起生活也不必把所有空闲绑在一起。","next":"c9-02-b"},{"id":"short","label":"一起出门一小会儿,再回家。我们都缩短原计划,也保留一段共同时间。","next":"c9-02-c"}]}, - {"id":"c9-02-a","type":"dialogue","speaker":"阿棠","text":"她点点头:那下次可得真轮到你。不能这回你让,下回你又嫌我不高兴。你们把那句下次说得具体了一点,才发现轮流不是谁特别大度,是两个人都肯记账,也都肯兑现。","next":"c9-03-intro"}, - {"id":"c9-02-b","type":"dialogue","speaker":"温简","text":"那晚饭见。他笑了笑,不把分开半天说成关系出了故障。老鬼问,那谁订桌?几个人又认真讨论起来。各过各的半天,仍需有人把相见的地点说清。","next":"c9-03-intro"}, - {"id":"c9-02-c","type":"dialogue","speaker":"沈铎","text":"那就先约回来时间。他说完自己也笑了:我又像在带队。不过这次,你可以改。半天的安排没有取悦所有愿望,却让双方都能指着其中一段说,这是我愿意的。","next":"c9-03-intro"}, - {"id":"c9-03-intro","type":"dialogue","speaker":"温简","text":"我想问一句,不是采集。以后日子不好过的时候,你盼望身边的人先怎么靠近?上次我一直听着,有人会觉得被接住,也有人会觉得我什么都不做。你可以说最近一件很小的事,也可以不说。你的回答不会交到任何相亲对象手上,除非将来你自己另作选择。","next":"c9-03"}, - {"id":"c9-03","type":"narration","pointId":"C9-03","mechanism":"人间来信 · 一件小事","prompt":"可以说说你希望怎样被陪伴,也可以只听这桌人的闲话。不必提供姓名、住址或他人的隐私。你愿意说的部分用于已告知的画像用途;不回答不影响结局。","dimensions":["mate_preference","self_disclosure"],"followUp":{"maxQuestions":0,"strategy":"终章不索取额外敏感经历。"},"followUps":{},"variants":[{"signature":"倾听与理解","variantId":"c9_listen","label":"茶又续了一次,没人急着把你的话归纳成一句。","tint":"#647f76"},{"signature":"行动与陪伴","variantId":"c9_act","label":"有人把空碗收走,又坐回来,桌边仍为你留着位置。","tint":"#7e778c"},{"signature":"空间与自主","variantId":"c9_space","label":"窗外有人经过,桌上的停顿不需要立刻填满。","tint":"#647d8c"},{"signature":"沉默","variantId":"c9_silent","label":"你没有补上一段故事。饭还热着,话题自然地走向明天的天气。","tint":"#708075"}],"next":"c9-04-intro"}, - {"id":"c9-04-intro","type":"dialogue","speaker":"旁白","text":"再访北驿的授权回信到了:那位想去南地的母亲,仍会去看暂住北边的女儿;她们见面还是争,争完各自回家。守陵少年学的第一只船漏了,祖父骂完帮他晾木板。没有哪份迁户记录能保证此后一生顺遂。你们记录的是有人终于可以继续活,不是替他们写好了幸福。","next":"c9-04"}, - {"id":"c9-04","type":"choice","pointId":"C9-04","prompt":"馆长邀请你写下一封给下一位采集员的公开欢迎信,只谈这趟公共任务,不含私人记忆。篇幅只够重点写一件。","dimensions":["values"],"options":[{"id":"questions","label":"写那些被允许问出口的问题。愿后来的人不用先猜权威想听什么。","next":"c9-04-a"},{"id":"ordinary","label":"写灶边、桌边和叫错的名字。愿后来的人看见宏大故事里具体的人。","next":"c9-04-b"},{"id":"limits","label":"写没能核完的事与我们不知道的部分。愿后来的人能接着查,而不是只赞叹。","next":"c9-04-c"}]}, - {"id":"c9-04-a","type":"dialogue","speaker":"旁白","text":"你写:门可以开,问题也可以留着。同行不是把不同意消灭,是不同意之后,仍知道下一步怎样一起做。馆长把信放在入馆桌上,没有删去里面关于馆长的那一句。","next":"c9-05-intro"}, - {"id":"c9-04-b","type":"dialogue","speaker":"旁白","text":"你写那锅没端走的羹,写妇人描下门框刻度,写工役下车先问热饭。没有一个例子能代表整座城。它们挨在一起,却让后来的人无法轻易把这座城再叫作一片没有人的遗址。","next":"c9-05-intro"}, - {"id":"c9-04-c","type":"dialogue","speaker":"旁白","text":"你把尚待查证的旧名、南营分册和后续授权一一写出。信不像传说的尾声,更像一张能接手的桌子。第一页末尾只有一句:这里还没有写完,笔放在你够得着的地方。","next":"c9-05-intro"}, - {"id":"c9-05-intro","type":"dialogue","speaker":"旁白","text":"离开档案馆前,你经过私人展厅。讲过的片段按原授权封存,未讲的仍是空页;同伴的笑谈、那张借住的桌子、苍梧的公共记录,另有各自的归处。门上没有出现任何陌生人的配对结果。一次旅程能留下相处的线索,不能替尚未相见的两个人答应爱情。","next":"c9-05"}, - {"id":"c9-05","type":"choice","pointId":"C9-05","prompt":"最后一页留给这趟旅程。你愿意带走哪一句?只改变尾声,不计入画像,也不等于开启真实匹配或授权别人查看记忆。","dimensions":[],"untimed":true,"options":[{"id":"together","label":"愿有人和我把普通的一天过好。","next":"c9-ending-together"},{"id":"room","label":"愿相爱的人,也各有一扇能关上的门。","next":"c9-ending-room"},{"id":"later","label":"愿我不必着急,仍不把明天关在门外。","next":"c9-ending-later"}]}, - {"id":"c9-ending-together","type":"dialogue","speaker":"旁白","text":"你走出门,街边有人为同伴端着两份早饭,袋口的热气在晨光里散开。你不认识他们,也不知道他们昨夜有没有争吵。红灯亮着,两人站在一起等。你忽然觉得,长久并不总有很大的声响。有时只是腾出一只手,接过另一人拿累了的东西。","next":"c9-final"}, - {"id":"c9-ending-room","type":"dialogue","speaker":"旁白","text":"你走出门,看见对面楼里一扇窗先亮,另一扇过了片刻才亮。两间屋子各有自己的清晨,楼下却有人并排停好了两辆车。你把钥匙握在掌心,想到一扇门的用处不只是让谁进来。它也让人可以安心回到自己,然后自愿再开一次。","next":"c9-final"}, + {"id":"c9-opening","type":"dialogue","speaker":"旁白","text":"归来后的第七天,你在现实中的桌前醒来。雨停了,杯底有一圈茶渍,窗外的早点铺正开卷帘门,铁叶哗啦一声,惊起两只麻雀。桌上摊着《苍梧遗址勘探报告(第七次)》——你离开前校到最后一页的那份。七年。它说:苍梧,原因不明的大规模消失。你提笔,划掉了「原因不明」四个字。笔尖停在纸上,洇出一小点墨。然后你补上一句,写得很慢,比删掉的那四个字慢得多:「迁移过程已获新证,个体去向仍须持续核查。」你没有因为终于听见一座城,就自以为听见了里面的每一个人。六户齐了,别处来的空白还在空白着。报告可以改,空白不许替你谦虚。早点铺的卷帘门哗啦一声,到底了。世界照常开业。你忽然发现:最难的章节不是写苍梧,是写完之后,回到这张桌前,把今天过完。","next":"c9-institution"}, + {"id":"c9-institution","type":"dialogue","speaker":"旁白","text":"【若 c8_05 = shared:共同保管的第一次核验如期举行。馆长有两项申请被退回重写——一项措辞越权,一项流程跳步。它照单改了,没有再用「任务紧急」催促签字。复核席上,温简把退回理由念了两遍,第二遍是念给馆长听的,也是念给在座所有人听的:制度运转的声音,就是退回的声音。散会时馆长说了一句「下周同一时间」,语气像学一门新课的学生。】【若 c8_05 = local:第一批分存回函迟了两日。你们先查收件记录,再等各地复核——没有人因效率不如从前,就急着把全部钥匙送回中央。第三日回函到了,附带一封短笺:「迟复为歉。本地核验比预想慢,慢的部分恰是以前从没人核过的部分。」沈铎读完,把短笺钉在墙上:「慢得有理,留着。」】【若 c8_05 = pause:空白的任务日历仍挂在墙上。审查已完成第一批,另有问题未闭环——新的旅程没有为了结尾好看而仓促开放。走廊里有人抱怨进度,抱怨得也有道理;审查组的答复贴在日历旁边,只有一行:「慢,就是这项审查的内容本身。」】这不是奖杯上刻好的胜利。它是一周以后,大家仍在做的那些麻烦事——麻烦得各不相同,麻烦得恰如其分。","next":"c9-people"}, + {"id":"c9-people","type":"dialogue","speaker":"旁白","text":"档案馆休息室,一张大桌,五个人又坐齐了——这是没有任务的第一张桌子。后果都落地了,一桩一桩,没有一桩带情绪勒索。老鬼接受了违规处分:不再经手遗存,转做公开口述资料的索引。他女儿的图录,那半页没画完的,以未完成的原貌留存——没有拿归还文物抵销偷拿,也没有拿偷拿涂改念想。两件事,两本账,他都认。他现在逢人就说索引的好处:「索引好哇,只指方向,不沾手。」【若 c4_02 = supervise:他见你来,把一册索引推过来,扉页上是你们两个人的名字——复核人一栏,你的名字在他前面。那是当初你少掉的那半天采集换来的位置。】【若 c4_02 = reassign:他如今的工位离库房最远,离口述稿最近。他说这距离是当初你们替他定的,「定得好——远得正好,够我天天走,不够我天天惦记」。】【若 c4_02 = pause:他提起驿站那一天:「说明写了又揉,揉了又写,最后留了三行。」他说那一天是这些天里他最怕回想、也最服气的一天。】【若 c6_04_signature = promise_kept:他把那半页图录给你看——纸角上还压着你那晚压出的折痕。「没补。守得住小约的人,不急着把空处填上。」】【若 c6_04_signature = promise_missed:他把那半页图录给你看:「空着的地方,我如今舍得让它空着了。那晚你讲的那件失守的,帮了我。」】【若 c6_04_signature = silent:他把那半页图录给你看:「那晚你没说话,就帮我压着纸角。压着也算搭手——我如今信了。」】沈铎补交了隐瞒任务的说明。下一次带队资格待审——他本人把「待审」两个字说得平平常常,像说「待雨」。休息室里他照旧来得最早,照旧先擦桌子。规程上没有这一条了;他还是擦。阿棠的腿在复查,固定没拆,会议照旧来得最早。她的拐靠在桌边,拐上挂了个小铃铛——她自己挂的,说是「防撞预警系统」。温简把第二本账交给了共同核验者。第一本也留着。两本并排放在档案架上,谁都不能拿诚实的后来,替换不诚实的曾经。他昨天在第二本的末页添了一行字,给你看了一眼——「记下来,就不算全丢」。后面空着半行。他说,下半句等他自己真懂了再写。","next":"c9-01"}, + {"id":"c9-01","type":"choice","pointId":"C9-01","prompt":"阿棠提议周末聚一聚——没有任务,没有理由,就是聚一聚:「咱们在苍梧天天一张桌,回来了反倒各吃各的?周末,我做东——我做不了东,我腿不行,我做东的家。」温简:我只能周六午后。沈铎:周日有空。老鬼:我哪天都能挪半天。四个人都说了,现在看你。而你这一周,真的很累。","dimensions":["mate_preference","values"],"options":[{"id":"small","label":"先约能到的两三个人,其他人另约。难得的空闲,我想用来真正坐一会儿,不想耗在凑齐上。","next":"c9-01-a"},{"id":"all","label":"再找一个大家都能来的日子,不急着这个周末。完整见一面,值得多等。","next":"c9-01-b"},{"id":"rest","label":"这周先休息,下周给出我能守住的时间。我不想用勉强赴约表示在意。","next":"c9-01-c"}]}, + {"id":"c9-01-a","type":"dialogue","speaker":"旁白","text":"小桌只坐了三个人。没到的人没有被说成不合群——阿棠拍了茶杯发群里,拍的是杯子,不是偷拍谁的脸,配文「给你们留了位置,位置没拍进来」。聚得很好,好到散场时你有一点点不真实的心虚:另外两个人不在场,而你们聊到了只有五个人才懂的笑话。事后你单独给沈铎发了一句「下次周日」,给老鬼带了半包他爱喝的茶。小聚的好处是真的——真正坐了两个小时;代价也是真的——「全员」这个词从此要靠两次兑现。","next":"c9-02-intro"}, + {"id":"c9-01-b","type":"dialogue","speaker":"旁白","text":"日子往后挪了十天,才凑齐。等的过程里有人发了一句「最近忙」,大家只回「见面再说」。那十天里有两次你差点改主意——一次是加班,一次是单纯提不起劲。第十天,人到齐了。那顿饭没有像任务复盘一样分秒不差,等上菜时的闲话却比报告更长。代价也记得清楚:十天里阿棠在群里发了三回倒计时,到第二回,已经能看出「全员」两个字开始变成一种温和的督促——没有人说破,但所有人都在为「齐」字付出一点点额外的在意。","next":"c9-02-intro"}, + {"id":"c9-01-c","type":"dialogue","speaker":"旁白","text":"你睡了一个没有闹钟的下午。醒来时天都斜了,心里那一下熟悉的自我审判准时到访:「人家都到了,就你。」——你在苍梧学过这一课:听见它,不必听它的。下周你如约发出时间,阿棠回:「收到。」没给你列缺席的账。再见面时你能完整听完温简的一段话,不必一边困倦一边证明自己愿意留下。代价也摆在那里:这一周的群里,那张小桌的照片没有你——你看了两遍才划过去,两遍都是真的。","next":"c9-02-intro"}, + {"id":"c9-02-intro","type":"dialogue","speaker":"沈铎","text":"(饭后,他把工作本合起来——他连聚餐都带了工作本,合上的时候有点不好意思)说个事。(顿)这趟里我总以为,凡事安排妥当,就是对人好。回程的船上我想了一夜——回来才知道,有人想要的,是先问他一句。以后再有人跟我一起生活,我得学会说:「这是我的打算。你的呢?」(他自嘲地笑了一下)这六个字,比规程难背。(看你)你们借住时争过那张桌子——灶旁、窗边、轮着来。我当时嫌你们墨迹。现在倒觉得,那比一起过险处,还见真章。险处用不着商量,规程都写好了。桌子没有规程。温简(轻声):所以才有得学。","next":"c9-02"}, + {"id":"c9-02","type":"choice","pointId":"C9-02","prompt":"阿棠:那考考你们——假如你跟亲近的人只有半天共同空闲,对方想出门,你想待着。没有纪念日,没有急事,就是普通的半天。你先提哪种?(看你)你先。","dimensions":["mate_preference","conflict_style"],"options":[{"id":"alternate","label":"这次随你出门,下次按我的节奏待着。轮流让一天,别把一方的习惯当默认。","next":"c9-02-a"},{"id":"separate","label":"半天各过各的,晚饭再碰头。一起生活,也不必把所有空闲绑在一起。","next":"c9-02-b"},{"id":"short","label":"一起出门一小会儿,再回家。我们都缩短原计划,也保留一段共同时间。","next":"c9-02-c"}]}, + {"id":"c9-02-a","type":"dialogue","speaker":"阿棠","text":"她点点头:「那下次可得真轮到你。不能这回你让,下回你又嫌我不高兴。」——她一句话戳破了轮流制没人愿意说的部分:轮流需要记账。你们把那句「下次」说得具体了一点,越具体越像账目;说到第三句,两人都有点不自在——亲密里掺进记账,哪怕记的是公平的账,也硌。可轮到兑现的那天,你不巧真的不想出门。你说出口,对方真的在家陪了你一下午。轮流不是谁特别大度,是两个人都肯记账,也都肯兑现——而「兑现」的重量,只有在不想兑现的那天才称得出来。","next":"c9-03-intro"}, + {"id":"c9-02-b","type":"dialogue","speaker":"温简","text":"「那晚饭见。」他笑了笑,不把分开半天说成关系出了故障。老鬼问:「那谁订桌?」几个人又认真讨论起来——各过各的半天,仍需有人把相见的地点说清,自由不是免单,是各付各的,再凑一桌。那天下午你在家看了一本旧书,看到一段极好笑的,下意识想转头说给他听——转头,屋里没人。那段笑话你攒到了晚饭,讲出来,他也笑了。可你知道,攒到晚饭的笑,和转身就有的笑,不是同一种笑。各过各的的好处是真的,这一小条时差也是真的。","next":"c9-03-intro"}, + {"id":"c9-02-c","type":"dialogue","speaker":"沈铎","text":"「那就先约回来时间。」他说完自己也笑了:「我又像在带队。不过这次——你可以改。」出门没逛到想逛的那家店(它再过一个路口就到了),回家也没歇够(离你想躺的时长差着一截)。两个计划都被砍了半,两半都像欠着原计划的债。可共同的那一段是实打实的:路上你们买了一袋栗子,回家分着吃,栗子很热。半天的安排没有取悦所有愿望,却让双方都能指着其中一段说:这是我愿意的。代价是另外两段:那是我们让出去的,记得,别赖。","next":"c9-03-intro"}, + {"id":"c9-03-intro","type":"dialogue","speaker":"温简","text":"(茶续了第二遍。他放下杯子,先看了一眼在座的每个人,才开口——他接下来的话,要先跟「采集」两个字划清界限)我想问一句。先说清楚:这不是采集。(顿)这趟活儿结束了,板子交了,灯也熄了。下面这句,是温简问的,不是记录员问的。以后日子不好过的时候,你盼望身边的人先怎么靠近?(顿)上次在苍梧,我一直听着——有人会觉得被接住,也有人会觉得我什么都不做。我不想猜了。我想听你亲口说。你可以说最近一件很小的事,也可以不说。你的回答不会交到任何相亲对象手上,除非将来你自己另作选择。(他难得地笑了一下)这句不是保证书,是常识。可我还是要说出来——常识不说出来,就容易被当成例外。","next":"c9-03"}, + {"id":"c9-03","type":"narration","pointId":"C9-03","mechanism":"人间来信 · 一件小事","prompt":"先说最近一件小事里的一个感官细节——那天的光线、那碗汤的温度——再说你希望难过时被怎样陪伴。也可以只听这桌人闲话。不必提供姓名、住址或他人的隐私;你说的部分用于已告知的画像用途,不回答不影响结局。","dimensions":["mate_preference","self_disclosure"],"followUp":{"maxQuestions":1,"strategy":"Jev 六维缺失检测,按幻境渲染价值取最高缺口,温简口吻模板追问一句(终章不索取额外敏感经历)。「记不清了」为合法回答,温简回应:记不清就不捞了。(他把茶杯往你那边推了推)桌上这些闲话,随便听。"},"followUps":{"visual":"那天的光是什么样?(顿)说不清的话,就说亮不亮。","auditory":"当时有什么声音吗?背景里的也算。","olfactory_gustatory":"那碗汤——烫不烫?(笑)我问这个,是因为温度比味道好记。","person":"不方便讲人,就讲个物件。","time_place":"是最近的事吗?不近也行,我不核对日期。","emotion":"现在讲它的时候,是轻的,还是沉的?"},"variants":[{"signature":"倾听与理解","variantId":"c9_listen","label":"「续茶」茶又续了一次,没人急着把你的话归纳成一句。温简听到一半轻轻点头,点头的幅度小到只有你能看见。基调:被听见,而不被整理。","tint":"#647f76"},{"signature":"行动与陪伴","variantId":"c9_act","label":"「收碗」有人把空碗收走,又坐回来,桌边仍为你留着位置。阿棠把最后一块点心推到你面前,什么都没说。基调:照顾是动作,不是语言。","tint":"#7e778c"},{"signature":"空间与自主","variantId":"c9_space","label":"「留白的停顿」窗外有人经过,桌上的停顿不需要立刻填满。你的话说完,安静了几秒,老鬼才接了一句闲话——接得不快,正好。基调:停顿也是陪伴的一种形状。","tint":"#647d8c"},{"signature":"沉默","variantId":"c9_silent","label":"「只听闲话」你没有补上一段故事。饭还热着,话题自然地走向明天的天气。温简朝你举了举杯,像完成了一次不必言明的交接。基调:沉默被原样收下。","tint":"#708075"}],"next":"c9-04-intro"}, + {"id":"c9-04-intro","type":"dialogue","speaker":"旁白","text":"桌上多了两封信——再访北驿的授权回信,和守陵少年从南边寄来的信。信纸薄,字大,有错别字。授权回信到了:那位想去南地的母亲,仍会去看暂住北边的女儿。她们见面还是争,争完各自回家——迁户簿没有许诺过让她们不争,只许诺了让她们还能争。守陵少年的信很短:第一只船,漏了。祖父骂完,帮他晾木板。「木板要晾三天,」他写,「爷爷说,木头跟人一样,急不得。」没有哪份迁户记录能保证此后一生顺遂。你们记录的是有人终于可以继续活——不是替他们写好了幸福。幸福这个词太大,你们只敢记录热饭、晾着的木板、和争完各自回家的路。","next":"c9-04"}, + {"id":"c9-04","type":"choice","pointId":"C9-04","prompt":"馆长请你写一封给下一位采集员的公开欢迎信,只谈这趟公共任务,不含私人记忆:这封信会放在入馆桌上,每一个新来的采集员都会读到。(停顿)写一件就够了。一封信装不下一场迁徙,能装下一件真事,就不算白写。篇幅只够重点写一件。","dimensions":["values"],"options":[{"id":"questions","label":"写那些被允许问出口的问题。愿后来的人不用先猜权威想听什么。","next":"c9-04-a"},{"id":"ordinary","label":"写灶边、桌边和叫错的名字。愿后来的人看见宏大故事里具体的人。","next":"c9-04-b"},{"id":"limits","label":"写没能核完的事与我们不知道的部分。愿后来的人能接着查,而不是只赞叹。","next":"c9-04-c"}]}, + {"id":"c9-04-a","type":"dialogue","speaker":"旁白","text":"你写:门可以开,问题也可以留着。同行不是把不同意消灭,是不同意之后,仍知道下一步怎样一起做。馆长把信放在入馆桌上,没有删去里面关于馆长的那一句——你写的时候捏了把汗,它读完只说:「该留。(停顿)这句是写给我的,也是写给下一个我的。」代价:那锅羹、那张桌子、那个哭着的妇人,都没进这封信——后来的人先遇见你递的尺子,要晚一点才遇见人。","next":"c9-05-intro"}, + {"id":"c9-04-b","type":"dialogue","speaker":"旁白","text":"你写那锅没端走的羹,写妇人描下门框刻度,写工役下车先问热饭。没有一个例子能代表整座城,它们挨在一起,却让后来的人无法轻易把这座城再叫作「一片没有人的遗址」。代价:信里没有一个字提到档案馆的权限教训——后来的采集员会遇见具体的人,却要在某个深夜自己撞上那句「你可以不信」,才会想起这封信没教过的事。","next":"c9-05-intro"}, + {"id":"c9-04-c","type":"dialogue","speaker":"旁白","text":"你把尚待查证的旧名、南营分册和后续授权一一写出。信不像传说的尾声,更像一张能接手的桌子。第一页末尾只有一句:「这里还没有写完。笔放在你够得着的地方。」代价:这封信读到最后没有一个让人心头一热的故事——它诚实,它有用,它不感人。后来的采集员读完,先是茫然,然后才是感激。你把「感激来得慢」也算进了成本。","next":"c9-05-intro"}, + {"id":"c9-05-intro","type":"dialogue","speaker":"旁白","text":"离开档案馆前,你经过私人展厅的长廊。你的展厅在尽头。你站在自己的展厅门前。讲过的,都在。没讲的,是空页——空页也装框,也编号,也被这座馆当作正式的藏品保管。这是它教会你的最后一件事:空白不是缺失,是一种你不欠任何人的形状。同伴的笑谈、那张借住的桌子、苍梧的公共记录,另有各自的归处。一次旅程能留下相处的线索——不能替尚未相见的两个人,答应爱情。门上没有倒计时,没有配对分数,没有「为你推荐」。只有一行小字,是这座馆唯一一次像个馆:「你的,你说了算。」","next":"c9-05"}, + {"id":"c9-05","type":"choice","pointId":"C9-05","prompt":"最后一页,留给这趟旅程。你愿意带走哪一句?这一页只改变你看到的尾声。不计入画像,不等于开启真实匹配,不授权任何人查看你的记忆。","dimensions":[],"untimed":true,"options":[{"id":"together","label":"愿有人和我把普通的一天过好。","next":"c9-ending-together"},{"id":"room","label":"愿相爱的人,也各有一扇能关上的门。","next":"c9-ending-room"},{"id":"later","label":"愿我不必着急,仍不把明天关在门外。","next":"c9-ending-later"}]}, + {"id":"c9-ending-together","type":"dialogue","speaker":"旁白","text":"你走出门,街边有人为同伴端着两份早饭,袋口的热气在晨光里散开。你不认识他们,也不知道他们昨夜有没有争吵。红灯亮着,两人站在一起等。你忽然觉得,长久并不总有很大的声响——有时只是腾出一只手,接过另一人拿累了的东西。","next":"c9-final"}, + {"id":"c9-ending-room","type":"dialogue","speaker":"旁白","text":"你走出门,看见对面楼里一扇窗先亮,另一扇过了片刻才亮。两间屋子各有自己的清晨,楼下却有人并排停好了两辆车。你把钥匙握在掌心,想到一扇门的用处不只是让谁进来——它也让人可以安心回到自己,然后自愿再开一次。","next":"c9-final"}, {"id":"c9-ending-later","type":"dialogue","speaker":"旁白","text":"你没有立刻安排下一次远行,也没有把空白日期填满。早点铺前的队伍往前挪了一步,你跟着走,想着今天还要浇花、改一段报告、给某个人回一句迟了的消息。日子没有因没有人等你就停止开始。风从街口吹来,你把外套拢好,走进这一日。","next":"c9-final"}, - {"id":"c9-final","type":"dialogue","speaker":"旁白","text":"后来,《苍梧遗址勘探报告》的新版本多了一段很短的结语:此地未见以民殉国之证。旧籍止,人未止。\n\n你在校样上签好名字。窗外有人叫另一个人的名字,那人应了一声,脚步停下来。\n\n这一次,你没有把声音留在纸上。你推开窗,听了一会儿。\n\n《苍梧疑冢》第一季终。","next":"c9-end"}, + {"id":"c9-final","type":"dialogue","speaker":"旁白","text":"后来,《苍梧遗址勘探报告》的新版本多了一段很短的结语:「此地未见以民殉国之证。旧籍止,人未止。」十二个字。七年。你盯着它看了很久,觉得它太短;又觉得,再长一个字都多。你在校样上签好名字。窗外有人叫另一个人的名字,那人应了一声,脚步停下来。这一次,你没有把声音留在纸上。你推开窗,听了一会儿。——《苍梧疑冢》第一季终。","next":"c9-end"}, {"id":"c9-end","type":"chapterEnd"} ] } diff --git a/scripts/verify-season.ts b/scripts/verify-season.ts index 53052fb..d502a4d 100644 --- a/scripts/verify-season.ts +++ b/scripts/verify-season.ts @@ -7,6 +7,7 @@ import { MemoryProgressStore } from '../src/engine/progress'; import { buildState } from '../src/engine/scoring'; import { MockJevClient } from '../src/services/jev'; import type { StoryNode } from '../src/engine/types'; +import { FOLLOW_UP_DIMENSIONS } from '../src/engine/types'; class MemoryStore implements EventStore { events: StoryEvent[] = []; @@ -61,9 +62,25 @@ for (const [i, chapter] of CHAPTERS.entries()) { if (n.type === 'narration') assert(n.variants.some((v) => v.signature.includes('沉默'))); } } -assert.equal(pointIds.size, 49); +assert.equal(pointIds.size, 51); console.log(`✓ 九章图结构、${pointIds.size} 个交互点、${optionCount} 条选项出口、谜题三档提示及沉默变体`); +// 新增/改造讲述点八件套:C4-04/C5-03/C6-04/C7-06/C8-06/C9-03 六键追问模板 + maxQuestions=1 +{ + const NEW_V = ['C4-04', 'C5-03', 'C6-04', 'C7-06', 'C8-06', 'C9-03']; + const narrations = CHAPTERS.flatMap((c) => c.nodes).filter((n) => n.type === 'narration'); + for (const pointId of NEW_V) { + const n = narrations.find((n) => n.pointId === pointId); + assert(n, `${pointId} 讲述点存在`); + assert.equal(n!.followUp.maxQuestions, 1, `${pointId} maxQuestions`); + for (const d of FOLLOW_UP_DIMENSIONS) { + assert(typeof n!.followUps[d] === 'string' && n!.followUps[d]!.length > 0, `${pointId} followUps.${d}`); + } + assert(n!.variants.some((v) => v.signature.includes('沉默')), `${pointId} 沉默档变体`); + } + console.log('✓ 六个新增/改造讲述点:六键追问模板齐全、maxQuestions=1、沉默档变体在位'); +} + function texts(node: StoryNode): string[] { if (node.type === 'dialogue') return [node.text]; if (node.type === 'cutscene') return [node.caption]; @@ -102,10 +119,14 @@ for (const mode of [0, 1, 2]) { } assert(engine.state.finished, `路线 ${mode} 必须结束`); assert.equal(visited.size, 9); - assert.equal(new Set(store.events.map((e) => e.pointId)).size, 49); + assert.equal(new Set(store.events.map((e) => e.pointId)).size, 51); assert.deepEqual(deriveFlags(store.events), engine.state.flags); const state = buildState(store.events); for (const privatePoint of ['C3-02', 'C7-02', 'C9-05']) assert(!state.includes(privatePoint)); + // 私密点事件本身也不带维度标签(仅叙事接续,不入画像) + for (const e of store.events.filter((e) => ['C7-02', 'C9-05'].includes(e.pointId))) { + assert.equal(e.dimensions.length, 0, `${e.pointId} 事件维度为空`); + } assert(state.includes('情境「')); assert.equal(store.events.filter((e) => /^C[4-9]/.test(e.pointId) && e.kind === 'choice').every((e) => !!e.choicePrompt), true); } @@ -139,7 +160,28 @@ for (const plan of ['delegate', 'observe', 'relay']) for (const ending of ['shar if (n.id === 'c9-institution' && n.type === 'dialogue') outcome = engine.renderText(n.text); await step(engine, 0, { 'C6-03': plan, 'C8-05': ending }); } - assert(route.includes(plan === 'observe' ? '留在南岸' : plan === 'delegate' ? '记录回放' : '转录来源')); + assert(route.includes(plan === 'observe' ? '留在南岸' : plan === 'delegate' ? '禾记,弥核' : '转录来源')); assert(outcome.includes(ending === 'shared' ? '共同保管' : ending === 'local' ? '分存回函' : '空白的任务日历')); } console.log('✓ 3×3 见证方式与治理结局交叉验证:亲历/转录不混写,结局正确兑现'); + +// 结局轴 3:c9_05 → c9-ending-* 三路尾声各自兑现且汇合于季终 +for (const [pick, node, marker] of [ + ['together', 'c9-ending-together', '腾出一只手'], + ['room', 'c9-ending-room', '自愿再开一次'], + ['later', 'c9-ending-later', '走进这一日'], +] as const) { + const store = new MemoryStore(); + const engine = new StoryEngine(CHAPTERS, store, new MockJevClient(), 'chapter9'); + const seen = new Set(); + for (let guard = 0; !engine.state.finished && guard < 300; guard++) { + seen.add(engine.state.nodeId); + await step(engine, 0, { 'C9-05': pick }); + } + assert(engine.state.finished); + assert(seen.has(node), `c9_05=${pick} 必须抵达 ${node}`); + const endingNode = CHAPTERS[8].nodes.find((n) => n.id === node); + assert(endingNode?.type === 'dialogue' && endingNode.text.includes(marker), `${node} 尾声文案`); + assert.equal(engine.state.flags.c9_05, pick, '结局轴 3 变量自动派生'); +} +console.log('✓ 结局轴 3:c9_05 三路私密尾声各自兑现并汇合季终'); diff --git a/src/engine/flags.ts b/src/engine/flags.ts index a99968d..611926e 100644 --- a/src/engine/flags.ts +++ b/src/engine/flags.ts @@ -27,6 +27,18 @@ const PUZZLE_ANSWERS: Record = { /** 选择事件 → 变量赋值(变量名与取值对齐附录 A;optionId 已与枚举值对齐) */ export function choiceFlags(pointId: string, optionId: string, behavior?: ChoiceBehavior): Flags { if (pointId.startsWith('CB-')) return branchChoiceFlags(pointId, optionId, behavior); + // 第 4–9 章谜题点:hints/solved 按行为记录聚合(EXIT 记 not_attempted),不走裸自动派生 + if (pointId === 'C4-03' || pointId === 'C6-01' || pointId === 'C8-02') { + const f: Flags = {}; + const prefix = pointId.toLowerCase().replace('-', '_'); + f[`${prefix}_hints_used`] = String(behavior?.hintsUsed ?? 0); + const correct = behavior?.answerCorrect?.filter(Boolean).length ?? 0; + f[`${prefix}_solved`] = optionId.endsWith('-EXIT') ? 'not_attempted' : correct === 2 ? 'true' : correct === 1 ? 'partial' : 'false'; + // 公共事实旗标(全路径必置,含 EXIT):历表核验成立 / 到达簿已许诺 + if (pointId === 'C4-03') f.flag_calendar_verified = 'true'; + if (pointId === 'C6-01') f.flag_arrival_book_promised = 'true'; + return f; + } if (/^C[4-9]-\d{2}$/.test(pointId)) return { [pointId.toLowerCase().replace('-', '_')]: optionId }; const f: Flags = {}; switch (pointId) { @@ -127,12 +139,34 @@ export function narrationFlags(pointId: string, variantId: string | undefined, t if (variantId === 'wenjian_close_late') f.flag_wenjian_secret = 'true'; break; } + case 'C4-04': + case 'C5-03': + case 'C6-04': + case 'C7-06': + case 'C8-06': + case 'C9-03': { + // 第 4–9 章讲述点:签名语义枚举经 SEASON_V_SIGNATURES 注册(蓝图 §5.1);沉默恒为 silent + const map = SEASON_V_SIGNATURES[pointId]; + f[`${pointId.toLowerCase().replace('-', '_')}_signature`] = + transcript === null ? 'silent' : map[variantId ?? ''] ?? 'silent'; + break; + } case 'C3-02': break; } return f; } +/** 第 4–9 章讲述点:variantId → 签名语义枚举(act2/act3 附录 A,蓝图 §5.1 登记) */ +const SEASON_V_SIGNATURES: Record> = { + 'C4-04': { c4_action: 'reassured_action', c4_wait: 'patient_wait', c4_silent: 'silent' }, + 'C5-03': { c5_company: 'accompanied', c5_space: 'at_ease', c5_silent: 'silent' }, + 'C6-04': { c6_kept: 'promise_kept', c6_missed: 'promise_missed', c6_silent: 'silent' }, + 'C7-06': { c7_still: 'still_detail', c7_voices: 'lingering_voices', c7_silent: 'silent' }, + 'C8-06': { c8_dusk: 'dusk', c8_dawn: 'dawn', c8_silent: 'silent' }, + 'C9-03': { c9_listen: 'listen', c9_act: 'action', c9_space: 'space', c9_silent: 'silent' }, +}; + /** 整条事件流 → 变量全集(后发生的事件覆盖先发生的,重玩新轨迹自然刷新) */ export function deriveFlags(events: StoryEvent[]): Flags { const flags: Flags = {};