制作DND2024工具剧本。契约trpg-authoring/1，能力版本workbench-sync/5-persona-three-stage。仅返回trpg-authoring/1 JSON，不附Markdown或代码。使用下方例子的完整字段结构，保持同类字段类型；不得添加运行历史、代码、密钥、权限或自动结算指令。地图楼层为整数矩形并集，必须连通；所有点位在楼层，NPC占格不得重叠或占入场点。出口双向对应；已有引用修改时保持一致。重要NPC可使用模板简明卡，不伪造职业卡。固定广播直接播放，秘密只能在NPC secret或GM受众广播中。只选目录内模板和工具已有物品。钥匙等物品条件必须使用points[].itemUse结构：match(all/any)、requirements[{itemId,quantity,mode(possess/use/attempt/success)}]、effect(open/prerequisite)、fallback(none/check/gm)；引用工具物品或GM提供itemPacks的稳定ID，备用检定另填check。开容器与领取分开，不默认借队友物品，不仅在文字中写钥匙。
交涉success/failure可选operations，每类最多一项：{kind:"follow",join:true}仅供已设为companion的重要NPC；{kind:"interaction",pointId:"本场景点key",operation:"use"/"toggle"/"check"/"claim"}仍受原对象、物品和费用授权约束；{kind:"battle-support",presetId:"已有战斗key"}沿用其已配置名单与阵营；{kind:"trade-offer",itemId:"有效规则ID",quantity:1}只提出真实库存报价，由玩家最终确认。缺项不能用台词代替实际后果。所有实用授权初始关闭，由GM明确启用；不要在美术信息内写这些玩法内容。
三层信息必须分开：
1. scene.art只写可对外使用的美术资料：composition可写必要通路及构图关系，供大致／自由模式使用；不要夹带秘密。description细化建筑用途、空间、环境和氛围，另用style/materials/lighting/decorations/exclusions；不要复制剧情结局、机关效果或NPC秘密。
2. point.appearance只写可画的外观：label为普通物体称呼，description为可见形态，width/height为占地格数，rotation为朝向角度（不旋转占地框）。位置复用point.x/y；不另造坐标。visibility可用public、surface或omit；隐藏点默认不画，只有明确surface才能画普通表面，不能称其为隐藏陷阱。
3. 检定DC、奖励、线索答案、成功失败、解救和出场等继续写原玩法字段，不写入art或appearance。实用审核策略、交涉后果、组织归属和任务推进规则都是玩法配置，不写入美术资料。NPC可选practicalSocial:{enabled:false,rules:[{id,goal,willingness:willing/unwilling/hesitant/judge,skill,dc可选,cost:none/action,success:{text,revealIds:[],promise:""},failure:{text,revealIds:[],promise:""}}]}，定义可兑现结果；需要公开本NPC的secret时revealIds只写["secret"]，不得写其他NPC秘密。NPC可选spatialPolicy定义探索目标和已知出口（sceneId/pointId引用场景key/互动点key），practical.pointIds引用本场景点key；初始enabled、autoMove、autoPlan保持false，交GM核对后启用。merchantPolicy.practical可设计scope(listed/all)、buyback/barter/negotiation、dc和cost，初始enabled:false，不能写运行交易。任务小目标可建议automatic、activateNext和attribution(party/proxy/world)，proxyNpcIds引用NPC key；独立NPC行为不默认算队伍功劳。导入后的运行授权由GM明确开启，创作建议不能越过权限。
墙门结构写scene.walls：key、a/b网格顶点、kind=wall/door、state=closed/open/locked；只允许非零水平或垂直线段，不重叠、不越界。门可用point引用同场景紧邻的door互动点，门段会替代对应自动边界，不在图片里自行新增门。旧格式可不提供这些可选字段。
场景必须明确environment=outdoor/indoor/mixed。室外与混合默认boundaryWalls=explicit-only，只生成显式walls，不能沿地图外围围墙；室内可用auto-enclose沿floors边缘封闭。floors只是可行走范围，不等于建筑墙；室外通常全幅地面，房屋单独写墙门。网格边界已有移动限制，不需要虚构围墙。旧JSON缺省策略维持原行为。
先根据故事目标细化各场景，再确定相互连接的布局和物体占地，保持已有编号和锁定配置。缺失需求可合理补全，但不能将未支持能力伪造成字段。生图包会使用显式美术与外观，不能只把形容词写进场景description或互动text。
可选scenes[].spatialSetup用于已知初始空间：floorHeight、openSky、室内ceilingHeight、objects数组。objects仅含实体id、name、kind(object/rope/stone/surface/liquid/plants)、x/y、绝对height、width/heightFeet/depth（尺）、weight（磅）、supportsStanding（可选）、loose/enabled/hidden。未知高度不得编造，可省略整个配置并由GM核实。不能写运行中法术产物、灵光真相、待结算、承载成员或历史；墙可另填heightFeet及实际gapFeet。
场景魔法与补给使用可选scenes[].effectSetup，三种入口ZIP、纯文本、API采用同一schema。它是GM预置剧本事实，不是玩家已施法／已扣资源记录；开团由GM确认。不得写castId、clockSourceId、待结算、运行历史或可执行脚本。
regions数组字段：id为本场景稳定局部编号，spellId为目录内M4持续区域或mundane-light；geometry为shape(sphere/cylinder/cube/square/emanation/line/wall)、x/y(格)、height(绝对尺)、size/width/heightFeet(尺)、angle、originSpan，墙另写points连续真实地面坐标。slotLevel、dc、hidden、remainingHours、note由GM预置；未写remainingHours采用规则最长剩余期限；永久效果及物理结果另计，不假造实战专注。瞬间造水/造粮/敲击不能当活动区域，初始结果写容器内容和真实门锁状态。
objectId引用同场景spatialSetup.objects[].id；pointId引用同场景points[].key；sourceNpcId及magic.excludedIds引用npcs[].key，程序生成正式ID。随身风／灵卫／小屋／兽群须实际NPC来源，未出场者不提前激活。magic结构见schema：警报、魔嘴、爆炸符文须有trigger(kind/range/sense/types/description)，魔嘴须message原文及wordCountConfirmed=true；口令和触发细节只供GM，绝不写进art、appearance、生图包或公开广播。初始储法符文不允许伪造已支付配方，开团后选真实来源布设。terrain用supportIds引用真实植物／支撑物件，plantCells与excludedCells用x,y格字符串，webSupport明确opposing/surface/unsupported；不能凭图片猜测支撑或在全场虚构植物。
普通物件灯填light={bright,dimExtra,sunlight,magical,flame?,protected?,color}；装饰绘画中的灯不是逻辑光源。空间照度继续spatialSetup.light；室外／室内／混合以及不自动外围围墙约定不变。
containers数组：id、objectId、name、open、hidden、waterCapacity、foodCapacity、water、food。必须引用真实空间容器，内容不得超容量。水按液体盎司（128=1加仑），食物按重量盎司（16=1磅），均为整数，二者为明确分隔的容量。water/food为已有实物，不自动扣法术位或产生玩家资源。
materials数组：id、npcId(npcs[].key)、consumableId(该NPC.consumables[].key)、kind(ruby-dust/gold-dust/jade-dust/diamond-dust/silver-salt)、valueGP。必须对应NPC真实单件消耗品，不能只有金币数字或说明；完整职业卡NPC的实际角色背包材料由GM开团后登记。缺必要引用应报错，不能悄悄省略。
新场景推荐fog:{mode:"enclosed",enabled:true,shared:true,rangeFeet:60,initial:[],shading:{level1:0.35,level2:0.75},areas:[{id:"房间key",name:"内部GM名称",cells:["x,y"],doorIds:["同场景门互动点key"],initiallyRevealed:false,revealOnOpen:true,manualOnly:false}]}；室外可用空areas且全图公开，室内／混合场景按实际墙门划封闭区，区域不得重叠越界。门位于边界，公开起点不放入仅GM揭示密室。rangeFeet仅为显示半径；特殊隐藏、真实感知和行动限制保留。旧fog:{enabled,shared,rangeFeet,initial}兼容。仅写初始配置，不写areaRecords、探图历史或玩家分支。商人NPC可选merchantPolicy:{enabled:true,buy:false,buyRate:0.5,buyItems:[],blockedItems:[],autoPurchase:false,zeroPrice:false}与coinsGP（实际初始钱包）、stock:[{itemId,quantity,priceGP}]，引用共享规则物品。重要钥匙等禁止随意收购，填写blockedItems；缺少可靠价格须GM定价，不填零价冒充免费。商店库存与自身装备/消耗品分开，金币须实际配置。不得写交易会话、历史报价、已成交记录或运行物品实例。
NPC世界知识与组织：可选knowledgeDesign:{factions:[{id,name,description,hidden,initialScore,policies?:[{id,sceneId:场景key,pointId:该场景互动点key,outcome:"success"或"failure",contribution:-100到100,automatic:false,reason}]}],templates:[{id,name,version,layer,visibility,text}]}；NPC可选knowledgeProfile:{enabled,factionId,membership:"direct"或"associated",hiddenMembership,backgroundBias,lockedAttitude:null,lockReason:"",templateIds:[]}。组织ID与模板ID用稳定小写编号并正确引用。layer为world/region/culture/upbringing/profession/organization/script/gm；visibility为public或private；公共知识不得包含未来剧情、秘密组织身份或GM指导。按实际地区、成长与经历选择世界知识，不能从种族自动生成通用仇恨或全知。初始队伍声望-100到100、背景偏置默认0，关联成员不默认连带。声望策略仅一次性引用真实互动结果，默认不自动应用，GM可核对后授权；不会因重复走动／交谈刷分。全队声望不代表所有成员目击过事件；不填写本团经历、运行记忆、模型/Embedding/API密钥、Bot身份或自动开战指令。
S召唤：只能设计目录中实际职业卡已获法术或简明NPC已有能力及所需材料。运行中的召唤实例、HP、命令、控制期限、感官、骑手、Bot和权限不得写入创作JSON。野兽／妖精／亡灵灵魄由程序按原施放来源与实际环位计算，不能当永久NPC预置。寻获魔宠、异界坐骑、魅影驹、操纵死尸、隐形仆役均由开团后的召唤入口产生。昂贵材料须真实物件并在开团后GM登记；说明文字不代替库存。需要预置活体召唤物时暂不支持，给出GM合法施法准备说明，不能伪造施放历史。
V18出场：point.arrivalGroup为确认成功出场、failureArrivalGroup为确认失败出场；可分组或共组，一组只出场一次。scene.links的effects可为空数组（必须有arrivalGroups）；组引用限同场景。故意GM手动出场的arrivals填写manualReason，缺入口需预检警告。失败出场不自动开门或发奖。
NPC：普通NPC配置多条fixedReplies、fixedReplyMode:end/loop和fixedReplyEnd；进度按NPC共享，不按玩家分开。重要NPC按场景分工，type:important，importanceRole:resident/companion。每人有唯一key和初始落点，随队不生成跨场景副本，不设置followParty。publicSpeechStyle只写可公开的口吻、简短拒答风格；资料不足可说“无可奉告”，不解释模型或公开资料限制、不编造身世。秘密写secret，私密动机、加入/离队条件、个人目标与失败替代路线写gmDesign（role/motivation/joinConditions/leaveConditions/personalGoal/alternatives），不写进公开口吻或场景美术。
NPC空间代理：创作JSON不携带运行任务、观察历史或自动授权。出口继续使用合法场景和互动点key配对；开团后由GM明确告知NPC已知路线，并选择是否开启探索规划和安全移动，不因人物设定写“会旅行”就自动授权跨场景。
V17职业卡：NPC cardType:template时必须有template合法ID；cardType:character仅适用于type:important，必须有character:{build:完整一级构建,growth:[{targetLevel:2到5的连续等级,choices:本级完整选择,abilityIncreases:本级属性提升,hpMethod:fixed}]}。当前仅12职业1–5级单职业。build严格按Schema，不能带growth历史、任意GM调整或派生HP/AC/法术位。程序依玩家引擎校验、成长、生成装备与独立角色卡。需要职业的关键NPC须选择character，描述写职业不能替代卡。character-examples.json是12职业一级结构示例，character-catalogue.json提供合法目录；不得把不适用示例照抄给其他职业。未知选项明确报错后局部修复，不静默换模板；实际NPC姓名用name。成长保留原合法选项，法术书及准备数量遵守原引擎。
任务：quests的description是玩家可见目标，不写解法、未来剧情或秘密。gmDesign仅GM参考：completion/alternatives/notes/npcIds（引用NPC key）；main和current各最多一个。可选支线与替代路线避免关键NPC死亡/拒绝后剧情卡死。GM负责推进，不宣告自动发奖。
V16容器：chest必须有container:{items:[{itemId:目录内物品ID,quantity:正整数}],coins:非负GP,emptyReason?:刻意空容器原因,gmNote?:仅GM说明}；没有物品也无金币时必须说明刻意为空，描述不能自动造物。容器与ground独立，开箱不等于领取。
自定义物品只能引用GM已经定义并提供的规则包；需要时把完整合法的包放在顶层itemPacks数组中，不得自行编造物品、覆盖内置规则或只写一段描述。包内ID与container.items引用必须一致；没有提供自定义包时只用目录内置物品。
V16隐藏发现：hidden=true的点必须明确discovery:{method:proximity/gm/linked,range:20,skill:perception,dc:10}，数值可按设计调整；发现检定独立于point.check的使用检定。proximity有阻隔检查，每角色每分支一次，成功全队揭示；gm由GM揭示；linked必须有机关reveal效果。不能生成没有发现／揭示途径的关键线索。
V16机关关联：scene.links:[{key,name,color:#RRGGBB,source:本场景来源point.key,outcome:success/failure,effects:[{point:本场景目标key,operation:open/close/unlock/reveal/enable}],arrivalGroups?:出场组key数组}]。同组目标不重复；开关解锁只指向门；先校验整组再执行，默认一次，不递归联动。多组关系明确编号，不把颜色或关联秘密写入art。
V16小目标：quests可有steps:[{key,title,description,visibility:public/hidden,initialStatus:inactive/active/completed/failed,after:前置step.key数组,scene?:场景key,point?:互动点key,arrival?:出场组key,trigger?:point-success/scene-enter/arrival/battle-ended,alternatives?:仅GM替代路线,gmNote?:仅GM完成标准}]，pinnedStep可指定一个步骤key。各阶段有可执行入口和失败替代路线；公开当前步骤，后续默认隐藏。触发只建议完成，GM确认才推进，不自动发奖、升级或公开后续。
成长：可选growthGuide，mode:xp/milestone，players/startLevel/endLevel/hours，steps包含title/chapter、可选sceneId/questId（创作key）、kind:combat/exploration/social/quest/milestone、可选suggestedLevel与xp、allocation:team-total/per-person、sourceKind:rule/gm、source、reason、challengeKey。同一挑战key只列一次，击杀/说服/潜行是替代解法不重复计奖；里程碑不写xp。缺少可核实规则来源时sourceKind:gm、source明确“GM自定”，不能捏造经验表。全部仅GM参考，不执行升级、奖励、招募或权限变更。新字段必须符合schema，不添加凭据、运行历史或Bot绑定。
创作JSON校验速查 v.01
新版创作可附persona分层人设：public为公开可表演八项，self为本人认知且区分fact/hearsay/misbelief/lie/goal，director仅GM；summary只能摘要public，不能复制self或director。普通NPC仅剧情无关人物／无名战斗单位；重要人物按职责设计，不强制全部完整职业卡。designNotebook仅保存前两阶段设计书，不作为NPC知识或美术输入。先提交一级构建，再逐级growth，最后准备法术。最终4级不能把观察力放进一级人类起源专长；熟习等专长仍需填写子选择。实际动态节点的id、count、options是权威，不把中文名称当ID。
每一步growth.choices提交该级完整有效选择，但不能整组重选旧法术。术士／吟游诗人／邪术师及施法子职每级最多替换1道旧常规法术；职业戏法最多替换1道（法师升级不换戏法），新增名额另计。牧师／德鲁伊／圣武士／游侠／法师升级保留旧准备，增加新名额；重新准备应通过实际休息。神圣／德鲁伊教勇士戏法每级最多换1道；每一魔法学徒来源的戏法及一环法术合计最多换1道，不能改变列表与施法属性。超魔与祈唤每级最多替换1项，依赖仍需满足。已保留的影之书不能借升级整组重建，实际短休／长休才能重建。
法师保留旧法术书，每级普通新增2道。三级选择学者学派另加2道对应学派的一至二环法术；五级另加1道对应学派的一至三环法术（不强制三环）。奖励与普通新增不得重复计数或用旧书抵扣；入书不等于准备。升级本身不执行休息，不恢复消耗资源。selectionVersion及beforeSpellChoices为服务端保存的成长证据，不由创作模型填写或伪造。
“6项有效选项，当前6项”也可能含重复或职业／等级非法ID；必须同时检查数量、去重、合法候选。背景boosts只能在该背景许可属性中分配+2/+1或三个+1，原始scores与升级提升分开。
墙门a/b是顶点，point.x/y是格坐标，中心=x+0.5/y+0.5。合法双格横门：a=(4,5),b=(6,5),point=(4,5)；合法纵门：a=(4,5),b=(4,7),point=(4,5)。point=(6,5)不合法：沿门方向已超过端点；point=(4,7)不合法：离横门太远。法向距离0.5格，沿门方向严格在两端之间。门点不用居中放置，整段共用同一状态；appearance.width只管美术。
itemUse.effect=open只用于door/chest。机关需要物品时用prerequisite；机关成功开其他门用links明确关联，不把机关改成箱子来凑校验。
自检顺序：Schema→引用／门位→每个职业卡及成长→物品互动→整体编译。无运行工具的模型不得声称已通过本项目预检；返还JSON后以工作台校验为准。禁止为通过校验伪造ID、降低等级限制或自动替换作者选择。
独立开团会重置运行自动授权，GM需在新房间重新确认；不是角色位丢失。修复报告与动态候选仅用于当前结构，局部修复后重新生成候选并重检。
本次模块说明：完整职业NPC（按剧情需要建议）：重要NPC明确选择template简明卡或character完整职业卡。完整卡只支持12职业1–5级单职业，按真实一级构建和逐级成长计算；不把职业名称当能力。查character-catalogue.json与对应职业示例，不必复制全部12职业。随队仅表示可招募，不授予跟随、参战、自动移动或Bot权限。
世界知识与组织（按剧情需要建议）：设计组织factions和分层templates，NPC用knowledgeProfile引用。public和private区分，组织身份可隐藏；知识仅描述初始背景及可信事实，不写本团记忆、Mem0配置或密钥。声望策略引用同场景真实互动结果，automatic默认false；开团由GM核对授权。公开简介、美术和广播不得泄露私密模板或未来剧情。
商店与经济（按剧情需要建议）：商人写enabled的merchantPolicy、实际coinsGP钱包和stock库存。出售、现金收购、纯易物分别考虑，buy=true要有资金或在GM设计说明刻意零资金。autoPurchase默认false。物品ID允许命名空间，必须实际存在于内置目录或GM提供的itemPacks；关键钥匙列blockedItems，不因回复免审授权交易。装备、consumables和stock分别登记，不默认同一份物品可同时使用和出售。
封闭探索与光暗遮罩（按剧情需要建议）：新场景推荐fog:{mode:"enclosed",enabled:true,shared:true,rangeFeet:60,initial:[],shading:{level1:0.35,level2:0.75},areas:[]}。开放地形默认公开，仅未知封闭房间写areas:[{id:区域key,name:内部GM名称,cells:["x,y"],doorIds:[同场景门互动点key],initiallyRevealed:false,revealOnOpen:true,manualOnly:false}]。区域不重叠、不越界；门是共享边界，核对关联门段，不把门外格当内部。开启门仅揭示直接房间、不串联密室；特殊区域manualOnly。室内/混合场景明确规划封闭区与公开入口；室外不凭边缘自动围墙。rangeFeet在enclosed模式仅为遮罩显示半径，不是规则视距。光暗与视距不隐藏已公开区普通标记，也不允许穿墙行动。无mode旧fog仍按逐格兼容；不写explored、areaRecords、observerId、分支或运行历史。每场景有合法入场点；黑暗环境登记空间照度与实际光源。GM制作图不将黑雾画进底图。
空间与通路（按剧情需要建议）：spatialSetup为初始空间，室内写实际ceilingHeight，objects类型为object/rope/stone/surface/liquid/plants，坐标为格，高度和尺寸为尺。NPC支撑引用同场景实际物件。出口双向配对；运行中NPC已知路线和自主旅行由GM另行授权。不把地面边界当外墙，室外/混合仅显式建筑墙门。
任务、机关与发现（按剧情需要建议）：设计可执行当前小目标和失败替代路线。隐藏点明确proximity/gm/linked发现入口；钥匙用itemUse，宝箱用container；链接指定success/failure及同场景目标，可触发arrivalGroups。point.arrivalGroup与failureArrivalGroup分别对应确认成功/失败出场。结果只建议小目标完成，GM确认才推进，不自动发奖。
场景魔法与补给（按剧情需要建议）：effectSetup只设计已支持的初始区域、实际灯光、容器水食和真实材料引用。M1–M5法术能力属于真实角色/简明能力，不是所有法术都能放进regions。G类保留GM裁定；S召唤只能准备实际来源和材料，不能预置召唤实体、已施法记录或控制期限。scene-magic-instructions.txt给字段和片段。
需求：按需求生成原创冒险；基础人数、等级与时长未指定时由模型建议。
完整职业卡构建：下载ZIP提供12职业的一级和2–5级示例，纯文本仅附当前示例所需职业；其他职业按完整Schema与合法目录选择，不复制不适用职业选项。[]
当前示例所需逐级成长：[]
模板目录：[{"id":"srd-wolf","name":"狼","english":"Wolf","source":"SRD 5.2.1，第 364 页；https://www.dndbeyond.com/srd"},{"id":"srd-black-bear","name":"黑熊","english":"Black Bear","source":"SRD 5.2.1，第 345 页；https://www.dndbeyond.com/srd"},{"id":"srd-brown-bear","name":"棕熊","english":"Brown Bear","source":"SRD 5.2.1，第 346 页；https://www.dndbeyond.com/srd"},{"id":"srd-guard","name":"普通守卫","english":"Guard","source":"SRD 5.2.1，第 296 页；https://www.dndbeyond.com/srd"},{"id":"srd-ghoul","name":"食尸鬼","english":"Ghoul","source":"SRD 5.2.1，第 288 页；https://www.dndbeyond.com/srd"},{"id":"srd-goblin-minion","name":"地精杂兵","english":"Goblin Minion","source":"SRD 5.2.1，第 290 页；https://www.dndbeyond.com/srd"},{"id":"srd-goblin-warrior","name":"地精战士","english":"Goblin Warrior","source":"SRD 5.2.1，第 290 页；https://www.dndbeyond.com/srd"},{"id":"srd-hobgoblin-warrior","name":"大地精战士","english":"Hobgoblin Warrior","source":"SRD 5.2.1，第 298 页；https://www.dndbeyond.com/srd"},{"id":"srd-bugbear-warrior","name":"熊地精战士","english":"Bugbear Warrior","source":"SRD 5.2.1，第 272 页；https://www.dndbeyond.com/srd"},{"id":"srd-commoner","name":"平民","english":"Commoner","source":"SRD 5.2.1，第 275 页；https://www.dndbeyond.com/srd"},{"id":"srd-bandit","name":"匪徒","english":"Bandit","source":"SRD 5.2.1，第 261 页；https://www.dndbeyond.com/srd"},{"id":"srd-cultist","name":"邪教徒","english":"Cultist","source":"SRD 5.2.1，第 278 页；https://www.dndbeyond.com/srd"},{"id":"srd-scout","name":"斥候","english":"Scout","source":"SRD 5.2.1，第 322 页；https://www.dndbeyond.com/srd"},{"id":"srd-skeleton","name":"骷髅","english":"Skeleton","source":"SRD 5.2.1，第 325 页；https://www.dndbeyond.com/srd"},{"id":"srd-zombie","name":"僵尸","english":"Zombie","source":"SRD 5.2.1，第 343 页；https://www.dndbeyond.com/srd"},{"id":"srd-giant-rat","name":"巨鼠","english":"Giant Rat","source":"SRD 5.2.1，第 353 页；https://www.dndbeyond.com/srd"},{"id":"srd-giant-spider","name":"巨蜘蛛","english":"Giant Spider","source":"SRD 5.2.1，第 353 页；https://www.dndbeyond.com/srd"},{"id":"srd-dire-wolf","name":"恐狼","english":"Dire Wolf","source":"SRD 5.2.1，第 347 页；https://www.dndbeyond.com/srd"},{"id":"srd-boar","name":"野猪","english":"Boar","source":"SRD 5.2.1，第 346 页；https://www.dndbeyond.com/srd"},{"id":"srd-panther","name":"豹","english":"Panther","source":"SRD 5.2.1，第 358 页；https://www.dndbeyond.com/srd"},{"id":"srd-goblin-boss","name":"地精首领","english":"Goblin Boss","source":"SRD 5.2.1，第290页；https://www.dndbeyond.com/srd"},{"id":"srd-bandit-captain","name":"匪徒首领","english":"Bandit Captain","source":"SRD 5.2.1，第261页；https://www.dndbeyond.com/srd"},{"id":"srd-guard-captain","name":"守卫队长","english":"Guard Captain","source":"SRD 5.2.1，第296页；https://www.dndbeyond.com/srd"},{"id":"srd-hobgoblin-captain","name":"大地精队长","english":"Hobgoblin Captain","source":"SRD 5.2.1，第299页；https://www.dndbeyond.com/srd"},{"id":"srd-ogre","name":"食人魔","english":"Ogre","source":"SRD 5.2.1，第312页；https://www.dndbeyond.com/srd"},{"id":"srd-priest-acolyte","name":"侍僧","english":"Priest Acolyte","source":"SRD 5.2.1，第316页；https://www.dndbeyond.com/srd"},{"id":"srd-priest","name":"祭司","english":"Priest","source":"SRD 5.2.1，第316页；https://www.dndbeyond.com/srd"},{"id":"srd-cultist-fanatic","name":"狂热邪教徒","english":"Cultist Fanatic","source":"SRD 5.2.1，第278页；https://www.dndbeyond.com/srd"},{"id":"srd-mage","name":"法师","english":"Mage","source":"SRD 5.2.1，第305页；https://www.dndbeyond.com/srd"},{"id":"srd-imp","name":"小魔鬼","english":"Imp","source":"SRD 5.2.1，第300页；https://www.dndbeyond.com/srd"},{"id":"custom-class-barbarian","name":"野蛮人斗士","english":"barbarian archetype","source":"GM自定义职业主题 v.15；数值与次数为参考设计，强度及XP未标定"},{"id":"custom-class-bard","name":"吟游诗人旅者","english":"bard archetype","source":"GM自定义职业主题 v.15；数值与次数为参考设计，强度及XP未标定"},{"id":"custom-class-druid","name":"德鲁伊守林者","english":"druid archetype","source":"GM自定义职业主题 v.15；数值与次数为参考设计，强度及XP未标定"},{"id":"custom-class-fighter","name":"战士老兵","english":"fighter archetype","source":"GM自定义职业主题 v.15；数值与次数为参考设计，强度及XP未标定"},{"id":"custom-class-monk","name":"武僧行者","english":"monk archetype","source":"GM自定义职业主题 v.15；数值与次数为参考设计，强度及XP未标定"},{"id":"custom-class-paladin","name":"圣武士誓卫","english":"paladin archetype","source":"GM自定义职业主题 v.15；数值与次数为参考设计，强度及XP未标定"},{"id":"custom-class-ranger","name":"游侠猎手","english":"ranger archetype","source":"GM自定义职业主题 v.15；数值与次数为参考设计，强度及XP未标定"},{"id":"custom-class-rogue","name":"游荡者密探","english":"rogue archetype","source":"GM自定义职业主题 v.15；数值与次数为参考设计，强度及XP未标定"},{"id":"custom-class-sorcerer","name":"术士觉醒者","english":"sorcerer archetype","source":"GM自定义职业主题 v.15；数值与次数为参考设计，强度及XP未标定"},{"id":"custom-class-warlock","name":"邪术师契约者","english":"warlock archetype","source":"GM自定义职业主题 v.15；数值与次数为参考设计，强度及XP未标定"}]
合法物品目录：[{"id":"club","name":"木棒","kind":"weapon"},{"id":"dagger","name":"匕首","kind":"weapon"},{"id":"greatclub","name":"巨棒","kind":"weapon"},{"id":"handaxe","name":"手斧","kind":"weapon"},{"id":"javelin","name":"标枪","kind":"weapon"},{"id":"light-hammer","name":"轻锤","kind":"weapon"},{"id":"mace","name":"硬头锤","kind":"weapon"},{"id":"quarterstaff","name":"长棍","kind":"weapon"},{"id":"sickle","name":"镰刀","kind":"weapon"},{"id":"spear","name":"矛","kind":"weapon"},{"id":"dart","name":"飞镖","kind":"weapon"},{"id":"light-crossbow","name":"轻弩","kind":"weapon"},{"id":"shortbow","name":"短弓","kind":"weapon"},{"id":"sling","name":"投石索","kind":"weapon"},{"id":"battleaxe","name":"战斧","kind":"weapon"},{"id":"flail","name":"连枷","kind":"weapon"},{"id":"glaive","name":"长柄刀","kind":"weapon"},{"id":"greataxe","name":"巨斧","kind":"weapon"},{"id":"greatsword","name":"巨剑","kind":"weapon"},{"id":"halberd","name":"戟","kind":"weapon"},{"id":"lance","name":"骑枪","kind":"weapon"},{"id":"longsword","name":"长剑","kind":"weapon"},{"id":"maul","name":"巨锤","kind":"weapon"},{"id":"morningstar","name":"流星锤","kind":"weapon"},{"id":"pike","name":"长枪","kind":"weapon"},{"id":"rapier","name":"刺剑","kind":"weapon"},{"id":"scimitar","name":"弯刀","kind":"weapon"},{"id":"shortsword","name":"短剑","kind":"weapon"},{"id":"trident","name":"三叉戟","kind":"weapon"},{"id":"warhammer","name":"战锤","kind":"weapon"},{"id":"war-pick","name":"战镐","kind":"weapon"},{"id":"whip","name":"鞭","kind":"weapon"},{"id":"blowgun","name":"吹箭筒","kind":"weapon"},{"id":"hand-crossbow","name":"手弩","kind":"weapon"},{"id":"heavy-crossbow","name":"重弩","kind":"weapon"},{"id":"longbow","name":"长弓","kind":"weapon"},{"id":"musket","name":"火枪","kind":"weapon"},{"id":"pistol","name":"手枪","kind":"weapon"},{"id":"padded","name":"布甲","kind":"armor"},{"id":"leather","name":"皮甲","kind":"armor"},{"id":"studded-leather","name":"镶钉皮甲","kind":"armor"},{"id":"hide","name":"兽皮甲","kind":"armor"},{"id":"chain-shirt","name":"链甲衫","kind":"armor"},{"id":"scale-mail","name":"鳞甲","kind":"armor"},{"id":"breastplate","name":"胸甲","kind":"armor"},{"id":"half-plate","name":"半身板甲","kind":"armor"},{"id":"ring-mail","name":"环甲","kind":"armor"},{"id":"chain-mail","name":"链甲","kind":"armor"},{"id":"splint","name":"板条甲","kind":"armor"},{"id":"plate","name":"板甲","kind":"armor"},{"id":"shield","name":"盾牌","kind":"shield"},{"id":"alchemist","name":"炼金工具","kind":"tool"},{"id":"brewer","name":"酿酒工具","kind":"tool"},{"id":"calligrapher","name":"书法工具","kind":"tool"},{"id":"carpenter","name":"木匠工具","kind":"tool"},{"id":"cartographer","name":"制图工具","kind":"tool"},{"id":"cobbler","name":"鞋匠工具","kind":"tool"},{"id":"cook","name":"厨具","kind":"tool"},{"id":"glassblower","name":"吹玻璃工具","kind":"tool"},{"id":"jeweler","name":"珠宝匠工具","kind":"tool"},{"id":"leatherworker","name":"皮匠工具","kind":"tool"},{"id":"mason","name":"石匠工具","kind":"tool"},{"id":"painter","name":"画家工具","kind":"tool"},{"id":"potter","name":"陶工工具","kind":"tool"},{"id":"smith","name":"铁匠工具","kind":"tool"},{"id":"tinker","name":"修补工具","kind":"tool"},{"id":"weaver","name":"织工工具","kind":"tool"},{"id":"woodcarver","name":"木雕工具","kind":"tool"},{"id":"disguise-kit","name":"易容工具","kind":"tool"},{"id":"forgery-kit","name":"伪造工具","kind":"tool"},{"id":"herbalism-kit","name":"草药工具","kind":"tool"},{"id":"navigator","name":"领航工具","kind":"tool"},{"id":"poisoner-kit","name":"毒药工具","kind":"tool"},{"id":"thieves-tools","name":"盗贼工具","kind":"tool"},{"id":"dice-set","name":"骰子套组","kind":"tool"},{"id":"dragonchess","name":"龙棋","kind":"tool"},{"id":"playing-cards","name":"纸牌","kind":"tool"},{"id":"three-dragon-ante","name":"三龙牌","kind":"tool"},{"id":"bagpipes","name":"风笛","kind":"tool"},{"id":"drum","name":"鼓","kind":"tool"},{"id":"dulcimer","name":"扬琴","kind":"tool"},{"id":"flute","name":"长笛","kind":"tool"},{"id":"horn","name":"号角","kind":"tool"},{"id":"lute","name":"鲁特琴","kind":"tool"},{"id":"lyre","name":"里拉琴","kind":"tool"},{"id":"pan-flute","name":"排箫","kind":"tool"},{"id":"shawm","name":"芦笛","kind":"tool"},{"id":"viol","name":"提琴","kind":"tool"},{"id":"acid","name":"强酸","kind":"gear"},{"id":"alchemists-fire","name":"炽火胶","kind":"gear"},{"id":"antitoxin","name":"抗毒剂","kind":"gear"},{"id":"backpack","name":"背包","kind":"gear"},{"id":"ball-bearings","name":"滚珠袋","kind":"gear"},{"id":"barrel","name":"桶","kind":"gear"},{"id":"basket","name":"篮子","kind":"gear"},{"id":"bedroll","name":"铺盖","kind":"gear"},{"id":"bell","name":"铃铛","kind":"gear"},{"id":"blanket","name":"毯子","kind":"gear"},{"id":"block-tackle","name":"滑轮组","kind":"gear"},{"id":"book","name":"书","kind":"gear"},{"id":"glass-bottle","name":"玻璃瓶","kind":"gear"},{"id":"bucket","name":"水桶","kind":"gear"},{"id":"caltrops","name":"铁蒺藜袋","kind":"gear"},{"id":"candle","name":"蜡烛","kind":"gear"},{"id":"bolt-case","name":"弩矢盒","kind":"gear"},{"id":"scroll-case","name":"地图卷轴盒","kind":"gear"},{"id":"chain","name":"链条","kind":"gear"},{"id":"chest","name":"箱子","kind":"gear"},{"id":"climbers-kit","name":"攀爬工具","kind":"gear"},{"id":"fine-clothes","name":"华服","kind":"gear"},{"id":"travel-clothes","name":"旅行服","kind":"gear"},{"id":"component-pouch","name":"材料包","kind":"gear"},{"id":"costume","name":"戏服","kind":"gear"},{"id":"crowbar","name":"撬棍","kind":"gear"},{"id":"flask","name":"扁瓶","kind":"gear"},{"id":"grappling-hook","name":"抓钩","kind":"gear"},{"id":"healers-kit","name":"医疗包","kind":"gear"},{"id":"holy-water","name":"圣水","kind":"gear"},{"id":"hunting-trap","name":"捕兽夹","kind":"gear"},{"id":"ink","name":"墨水","kind":"gear"},{"id":"ink-pen","name":"墨水笔","kind":"gear"},{"id":"jug","name":"壶","kind":"gear"},{"id":"ladder","name":"梯子","kind":"gear"},{"id":"lamp","name":"油灯","kind":"gear"},{"id":"bullseye-lantern","name":"牛眼提灯","kind":"gear"},{"id":"hooded-lantern","name":"附罩提灯","kind":"gear"},{"id":"lock","name":"锁","kind":"gear"},{"id":"magnifying-glass","name":"放大镜","kind":"gear"},{"id":"manacles","name":"镣铐","kind":"gear"},{"id":"map","name":"地图","kind":"gear"},{"id":"mirror","name":"镜子","kind":"gear"},{"id":"net","name":"网","kind":"gear"},{"id":"oil","name":"油（瓶）","kind":"gear"},{"id":"paper","name":"纸（张）","kind":"gear"},{"id":"parchment","name":"羊皮纸（张）","kind":"gear"},{"id":"perfume","name":"香水","kind":"gear"},{"id":"basic-poison","name":"基础毒药","kind":"gear"},{"id":"pole","name":"长杆","kind":"gear"},{"id":"iron-pot","name":"铁锅","kind":"gear"},{"id":"healing-potion","name":"治疗药水","kind":"gear"},{"id":"pouch","name":"小包","kind":"gear"},{"id":"quiver","name":"箭袋","kind":"gear"},{"id":"portable-ram","name":"便携撞锤","kind":"gear"},{"id":"rations","name":"口粮（天）","kind":"gear"},{"id":"robe","name":"长袍","kind":"gear"},{"id":"rope","name":"绳索（50尺）","kind":"gear"},{"id":"sack","name":"麻袋","kind":"gear"},{"id":"shovel","name":"铲子","kind":"gear"},{"id":"signal-whistle","name":"信号哨","kind":"gear"},{"id":"iron-spikes","name":"铁钉（10枚）","kind":"gear"},{"id":"spyglass","name":"望远镜","kind":"gear"},{"id":"string","name":"细绳（10尺）","kind":"gear"},{"id":"tent","name":"帐篷","kind":"gear"},{"id":"tinderbox","name":"火绒盒","kind":"gear"},{"id":"torch","name":"火把","kind":"gear"},{"id":"vial","name":"小瓶","kind":"gear"},{"id":"waterskin","name":"水袋（满）","kind":"gear"},{"id":"arrow","name":"箭（枚）","kind":"gear"},{"id":"bolt","name":"弩矢（枚）","kind":"gear"},{"id":"firearm-bullet","name":"火枪弹（枚）","kind":"gear"},{"id":"sling-bullet","name":"投石弹（枚）","kind":"gear"},{"id":"needle","name":"吹箭（枚）","kind":"gear"},{"id":"arcane-crystal","name":"奥术水晶","kind":"gear"},{"id":"arcane-orb","name":"奥术法球","kind":"gear"},{"id":"arcane-rod","name":"奥术短杖","kind":"gear"},{"id":"arcane-wand","name":"奥术魔杖","kind":"gear"},{"id":"mistletoe","name":"槲寄生枝","kind":"gear"},{"id":"yew-wand","name":"紫杉魔杖","kind":"gear"},{"id":"holy-amulet","name":"圣徽护符","kind":"gear"},{"id":"holy-emblem","name":"圣徽纹章","kind":"gear"},{"id":"holy-reliquary","name":"圣徽圣物匣","kind":"gear"},{"id":"spellbook","name":"法术书","kind":"gear"},{"id":"arcane-staff","name":"奥术长棍","kind":"weapon"},{"id":"druid-staff","name":"德鲁伊长棍","kind":"weapon"},{"id":"goodberry","name":"神莓","kind":"gear"},{"id":"scroll-acid-splash","name":"酸液飞溅卷轴","kind":"gear"},{"id":"scroll-alarm","name":"警报术卷轴","kind":"gear"},{"id":"scroll-animal-friendship","name":"动物友善卷轴","kind":"gear"},{"id":"scroll-bane","name":"灾祸术卷轴","kind":"gear"},{"id":"scroll-bless","name":"祝福术卷轴","kind":"gear"},{"id":"scroll-burning-hands","name":"燃烧之手卷轴","kind":"gear"},{"id":"scroll-charm-person","name":"魅惑人类卷轴","kind":"gear"},{"id":"scroll-chill-touch","name":"寒冷之触卷轴","kind":"gear"},{"id":"scroll-chromatic-orb","name":"繁彩球卷轴","kind":"gear"},{"id":"scroll-color-spray","name":"七彩喷射卷轴","kind":"gear"},{"id":"scroll-command","name":"命令术卷轴","kind":"gear"},{"id":"scroll-comprehend-languages","name":"通晓语言卷轴","kind":"gear"},{"id":"scroll-create-or-destroy-water","name":"造水／枯水术卷轴","kind":"gear"},{"id":"scroll-cure-wounds","name":"疗伤术卷轴","kind":"gear"},{"id":"scroll-dancing-lights","name":"舞光术卷轴","kind":"gear"},{"id":"scroll-detect-evil-and-good","name":"侦测善恶卷轴","kind":"gear"},{"id":"scroll-detect-magic","name":"侦测魔法卷轴","kind":"gear"},{"id":"scroll-detect-poison-and-disease","name":"侦测毒素与疾病卷轴","kind":"gear"},{"id":"scroll-disguise-self","name":"易容术卷轴","kind":"gear"},{"id":"scroll-dissonant-whispers","name":"不谐低语卷轴","kind":"gear"},{"id":"scroll-divine-favor","name":"神恩卷轴","kind":"gear"},{"id":"scroll-divine-smite","name":"至圣斩卷轴","kind":"gear"},{"id":"scroll-druidcraft","name":"德鲁伊伎俩卷轴","kind":"gear"},{"id":"scroll-eldritch-blast","name":"魔能爆卷轴","kind":"gear"},{"id":"scroll-elementalism","name":"元素伎俩卷轴","kind":"gear"},{"id":"scroll-ensnaring-strike","name":"诱捕打击卷轴","kind":"gear"},{"id":"scroll-entangle","name":"纠缠术卷轴","kind":"gear"},{"id":"scroll-expeditious-retreat","name":"脚底抹油卷轴","kind":"gear"},{"id":"scroll-faerie-fire","name":"妖火卷轴","kind":"gear"},{"id":"scroll-false-life","name":"虚假生命卷轴","kind":"gear"},{"id":"scroll-feather-fall","name":"羽落术卷轴","kind":"gear"},{"id":"scroll-find-familiar","name":"寻获魔宠卷轴","kind":"gear"},{"id":"scroll-fire-bolt","name":"火焰箭卷轴","kind":"gear"},{"id":"scroll-floating-disk","name":"浮碟术卷轴","kind":"gear"},{"id":"scroll-fog-cloud","name":"云雾术卷轴","kind":"gear"},{"id":"scroll-goodberry","name":"神莓术卷轴","kind":"gear"},{"id":"scroll-grease","name":"油腻术卷轴","kind":"gear"},{"id":"scroll-guidance","name":"神导术卷轴","kind":"gear"},{"id":"scroll-guiding-bolt","name":"曳光弹卷轴","kind":"gear"},{"id":"scroll-healing-word","name":"治愈真言卷轴","kind":"gear"},{"id":"scroll-hellish-rebuke","name":"炼狱叱喝卷轴","kind":"gear"},{"id":"scroll-heroism","name":"英雄气概卷轴","kind":"gear"},{"id":"scroll-hex","name":"脆弱诅咒卷轴","kind":"gear"},{"id":"scroll-hideous-laughter","name":"狂笑术卷轴","kind":"gear"},{"id":"scroll-hunter-s-mark","name":"猎人印记卷轴","kind":"gear"},{"id":"scroll-ice-knife","name":"冰刀术卷轴","kind":"gear"},{"id":"scroll-identify","name":"鉴定术卷轴","kind":"gear"},{"id":"scroll-illusory-script","name":"迷幻手稿卷轴","kind":"gear"},{"id":"scroll-inflict-wounds","name":"造成伤势卷轴","kind":"gear"},{"id":"scroll-jump","name":"跳跃术卷轴","kind":"gear"},{"id":"scroll-light","name":"光亮术卷轴","kind":"gear"},{"id":"scroll-longstrider","name":"大步奔行卷轴","kind":"gear"},{"id":"scroll-mage-armor","name":"法师护甲卷轴","kind":"gear"},{"id":"scroll-mage-hand","name":"法师之手卷轴","kind":"gear"},{"id":"scroll-magic-missile","name":"魔法飞弹卷轴","kind":"gear"},{"id":"scroll-mending","name":"修复术卷轴","kind":"gear"},{"id":"scroll-message","name":"传讯术卷轴","kind":"gear"},{"id":"scroll-minor-illusion","name":"次级幻影卷轴","kind":"gear"},{"id":"scroll-poison-spray","name":"毒气喷溅卷轴","kind":"gear"},{"id":"scroll-prestidigitation","name":"魔法伎俩卷轴","kind":"gear"},{"id":"scroll-produce-flame","name":"燃火术卷轴","kind":"gear"},{"id":"scroll-protection-from-evil-and-good","name":"防护善恶卷轴","kind":"gear"},{"id":"scroll-purify-food-and-drink","name":"净化食粮卷轴","kind":"gear"},{"id":"scroll-ray-of-frost","name":"冷冻射线卷轴","kind":"gear"},{"id":"scroll-ray-of-sickness","name":"致病射线卷轴","kind":"gear"},{"id":"scroll-resistance","name":"提升抗性卷轴","kind":"gear"},{"id":"scroll-sacred-flame","name":"圣火术卷轴","kind":"gear"},{"id":"scroll-sanctuary","name":"庇护术卷轴","kind":"gear"},{"id":"scroll-searing-smite","name":"炽焰斩卷轴","kind":"gear"},{"id":"scroll-shield","name":"护盾术卷轴","kind":"gear"},{"id":"scroll-shield-of-faith","name":"虔诚护盾卷轴","kind":"gear"},{"id":"scroll-shillelagh","name":"橡棍术卷轴","kind":"gear"},{"id":"scroll-shocking-grasp","name":"电爪卷轴","kind":"gear"},{"id":"scroll-silent-image","name":"无声幻影卷轴","kind":"gear"},{"id":"scroll-sleep","name":"睡眠术卷轴","kind":"gear"},{"id":"scroll-sorcerous-burst","name":"术法爆发卷轴","kind":"gear"},{"id":"scroll-spare-the-dying","name":"维生术卷轴","kind":"gear"},{"id":"scroll-speak-with-animals","name":"动物交谈卷轴","kind":"gear"},{"id":"scroll-starry-wisp","name":"星光缕卷轴","kind":"gear"},{"id":"scroll-thaumaturgy","name":"奇术卷轴","kind":"gear"},{"id":"scroll-thunderwave","name":"雷鸣波卷轴","kind":"gear"},{"id":"scroll-true-strike","name":"克敌机先卷轴","kind":"gear"},{"id":"scroll-unseen-servant","name":"隐形仆役卷轴","kind":"gear"},{"id":"scroll-vicious-mockery","name":"恶毒嘲笑卷轴","kind":"gear"},{"id":"scroll-acid-arrow","name":"酸液箭卷轴","kind":"gear"},{"id":"scroll-aid","name":"援助术卷轴","kind":"gear"},{"id":"scroll-alter-self","name":"变身术卷轴","kind":"gear"},{"id":"scroll-animal-messenger","name":"动物信使卷轴","kind":"gear"},{"id":"scroll-animate-dead","name":"操纵死尸卷轴","kind":"gear"},{"id":"scroll-arcane-lock","name":"秘法锁卷轴","kind":"gear"},{"id":"scroll-arcanist-s-magic-aura","name":"奥术师魔法灵光卷轴","kind":"gear"},{"id":"scroll-augury","name":"卜筮术卷轴","kind":"gear"},{"id":"scroll-barkskin","name":"树肤术卷轴","kind":"gear"},{"id":"scroll-beacon-of-hope","name":"希望信标卷轴","kind":"gear"},{"id":"scroll-bestow-curse","name":"降咒卷轴","kind":"gear"},{"id":"scroll-blindness-deafness","name":"目盲耳聋术卷轴","kind":"gear"},{"id":"scroll-blink","name":"闪现术卷轴","kind":"gear"},{"id":"scroll-blur","name":"朦胧术卷轴","kind":"gear"},{"id":"scroll-call-lightning","name":"召雷术卷轴","kind":"gear"},{"id":"scroll-calm-emotions","name":"安定心神卷轴","kind":"gear"},{"id":"scroll-clairvoyance","name":"鹰眼术卷轴","kind":"gear"},{"id":"scroll-conjure-animals","name":"召唤动物卷轴","kind":"gear"},{"id":"scroll-continual-flame","name":"不灭明焰卷轴","kind":"gear"},{"id":"scroll-counterspell","name":"法术反制卷轴","kind":"gear"},{"id":"scroll-create-food-and-water","name":"造粮术卷轴","kind":"gear"},{"id":"scroll-darkness","name":"黑暗术卷轴","kind":"gear"},{"id":"scroll-darkvision","name":"黑暗视觉卷轴","kind":"gear"},{"id":"scroll-daylight","name":"昼明术卷轴","kind":"gear"},{"id":"scroll-detect-thoughts","name":"侦测思想卷轴","kind":"gear"},{"id":"scroll-dispel-magic","name":"解除魔法卷轴","kind":"gear"},{"id":"scroll-dragon-s-breath","name":"龙息术卷轴","kind":"gear"},{"id":"scroll-enhance-ability","name":"强化属性卷轴","kind":"gear"},{"id":"scroll-enlarge-reduce","name":"变巨缩小术卷轴","kind":"gear"},{"id":"scroll-enthrall","name":"注目术卷轴","kind":"gear"},{"id":"scroll-fear","name":"恐惧术卷轴","kind":"gear"},{"id":"scroll-find-steed","name":"寻获坐骑卷轴","kind":"gear"},{"id":"scroll-find-traps","name":"寻找陷阱卷轴","kind":"gear"},{"id":"scroll-fireball","name":"火球术卷轴","kind":"gear"},{"id":"scroll-flame-blade","name":"火焰刀卷轴","kind":"gear"},{"id":"scroll-flaming-sphere","name":"炽焰法球卷轴","kind":"gear"},{"id":"scroll-fly","name":"飞行术卷轴","kind":"gear"},{"id":"scroll-gaseous-form","name":"气化形体卷轴","kind":"gear"},{"id":"scroll-gentle-repose","name":"遗体防腐卷轴","kind":"gear"},{"id":"scroll-glyph-of-warding","name":"守卫刻文卷轴","kind":"gear"},{"id":"scroll-gust-of-wind","name":"造风术卷轴","kind":"gear"},{"id":"scroll-haste","name":"加速术卷轴","kind":"gear"},{"id":"scroll-heat-metal","name":"灼热金属卷轴","kind":"gear"},{"id":"scroll-hold-person","name":"人类定身术卷轴","kind":"gear"},{"id":"scroll-hypnotic-pattern","name":"催眠图纹卷轴","kind":"gear"},{"id":"scroll-invisibility","name":"隐形术卷轴","kind":"gear"},{"id":"scroll-knock","name":"敲击术卷轴","kind":"gear"},{"id":"scroll-lesser-restoration","name":"次级复原术卷轴","kind":"gear"},{"id":"scroll-levitate","name":"浮空术卷轴","kind":"gear"},{"id":"scroll-lightning-bolt","name":"闪电束卷轴","kind":"gear"},{"id":"scroll-locate-animals-or-plants","name":"定位动植物卷轴","kind":"gear"},{"id":"scroll-locate-object","name":"定位物件卷轴","kind":"gear"},{"id":"scroll-magic-circle","name":"防护法阵卷轴","kind":"gear"},{"id":"scroll-magic-mouth","name":"魔嘴术卷轴","kind":"gear"},{"id":"scroll-magic-weapon","name":"魔化武器卷轴","kind":"gear"},{"id":"scroll-major-image","name":"高等幻影卷轴","kind":"gear"},{"id":"scroll-mass-healing-word","name":"群体治愈真言卷轴","kind":"gear"},{"id":"scroll-meld-into-stone","name":"融身入石卷轴","kind":"gear"},{"id":"scroll-mind-spike","name":"心灵尖刺卷轴","kind":"gear"},{"id":"scroll-mirror-image","name":"镜影术卷轴","kind":"gear"},{"id":"scroll-misty-step","name":"迷踪步卷轴","kind":"gear"},{"id":"scroll-moonbeam","name":"月华之光卷轴","kind":"gear"},{"id":"scroll-nondetection","name":"回避侦测卷轴","kind":"gear"},{"id":"scroll-pass-without-trace","name":"行动无踪卷轴","kind":"gear"},{"id":"scroll-phantasmal-force","name":"幻象之力卷轴","kind":"gear"},{"id":"scroll-phantom-steed","name":"魅影驹卷轴","kind":"gear"},{"id":"scroll-plant-growth","name":"植物滋长卷轴","kind":"gear"},{"id":"scroll-prayer-of-healing","name":"治疗祷言卷轴","kind":"gear"},{"id":"scroll-protection-from-energy","name":"防护能量卷轴","kind":"gear"},{"id":"scroll-protection-from-poison","name":"防护毒素卷轴","kind":"gear"},{"id":"scroll-ray-of-enfeeblement","name":"衰弱射线卷轴","kind":"gear"},{"id":"scroll-remove-curse","name":"移除诅咒卷轴","kind":"gear"},{"id":"scroll-revivify","name":"回生术卷轴","kind":"gear"},{"id":"scroll-rope-trick","name":"魔绳术卷轴","kind":"gear"},{"id":"scroll-scorching-ray","name":"灼热射线卷轴","kind":"gear"},{"id":"scroll-see-invisibility","name":"识破隐形卷轴","kind":"gear"},{"id":"scroll-sending","name":"短讯术卷轴","kind":"gear"},{"id":"scroll-shatter","name":"粉碎音波卷轴","kind":"gear"},{"id":"scroll-shining-smite","name":"闪耀斩卷轴","kind":"gear"},{"id":"scroll-silence","name":"沉默术卷轴","kind":"gear"},{"id":"scroll-sleet-storm","name":"雪雨暴卷轴","kind":"gear"},{"id":"scroll-slow","name":"缓慢术卷轴","kind":"gear"},{"id":"scroll-speak-with-dead","name":"死者交谈卷轴","kind":"gear"},{"id":"scroll-speak-with-plants","name":"植物交谈卷轴","kind":"gear"},{"id":"scroll-spider-climb","name":"蛛行术卷轴","kind":"gear"},{"id":"scroll-spike-growth","name":"荆棘丛生卷轴","kind":"gear"},{"id":"scroll-spirit-guardians","name":"灵体卫士卷轴","kind":"gear"},{"id":"scroll-spiritual-weapon","name":"灵体武器卷轴","kind":"gear"},{"id":"scroll-stinking-cloud","name":"臭云术卷轴","kind":"gear"},{"id":"scroll-suggestion","name":"暗示术卷轴","kind":"gear"},{"id":"scroll-tiny-hut","name":"李欧蒙小屋卷轴","kind":"gear"},{"id":"scroll-tongues","name":"巧言术卷轴","kind":"gear"},{"id":"scroll-vampiric-touch","name":"吸血鬼之触卷轴","kind":"gear"},{"id":"scroll-warding-bond","name":"守护之链卷轴","kind":"gear"},{"id":"scroll-water-breathing","name":"水下呼吸卷轴","kind":"gear"},{"id":"scroll-water-walk","name":"水上行走卷轴","kind":"gear"},{"id":"scroll-web","name":"蛛网术卷轴","kind":"gear"},{"id":"scroll-wind-wall","name":"风墙术卷轴","kind":"gear"},{"id":"scroll-zone-of-truth","name":"诚实之域卷轴","kind":"gear"}]
结构示例：{"format":"trpg-authoring","version":1,"title":"雾港脱困","author":"","description":"","level":2,"players":4,"start":"cells","opening":"潮汐将至。找到同伴，穿过守卫回廊，决定雾港的命运。","scenes":[{"key":"cells","environment":"indoor","boundaryWalls":"auto-enclose","art":{"description":"潮湿的石砌囚室，粗石墙面附着少量海藻。中央为开放活动区，靠墙布置铁笼与控制台，通道保持清晰。","publicName":"海底石室","style":"写实奇幻战术地图，正上方俯视","materials":"粗石、铁栏与青铜","lighting":"暖色壁灯与冷色环境光，地板和出口边界清晰","decorations":"","exclusions":"人物、文字、数字、网格"},"name":"潮汐囚室","description":"潮水敲击石壁，囚笼旁的机关仍闪着微光。","intro":"潮水敲击石壁，囚笼旁的机关仍闪着微光。","width":20,"height":16,"landing":{"x":2,"y":2},"floors":[{"x":1,"y":1,"width":18,"height":14}],"points":[{"key":"cage","appearance":{"label":"铁笼控制台","description":"低矮石台上嵌着一根青铜拉杆，金属表面有磨损","width":1,"height":1,"rotation":0,"visibility":"public"},"name":"解救学者","x":8,"y":5,"kind":"clue","text":"学者从开启的牢笼中走出。","hidden":false,"check":{"skill":"investigation","dc":10},"rescueNpc":"scholar","success":"牢笼打开，学者向救援者点头致谢。","failure":"锁扣没有松开，需要另寻办法。"},{"key":"exit","name":"前往回廊","x":17,"y":12,"kind":"exit","text":"","hidden":false,"exit":{"scene":"gallery","point":"back"}}],"ground":[]},{"key":"gallery","environment":"indoor","boundaryWalls":"auto-enclose","art":{"description":"狭长的海港守卫回廊，磨损石砖上有盐渍，墙边留有木凳和挂灯，中央通道畅通。","publicName":"石砌回廊","style":"写实奇幻战术地图，正上方俯视","materials":"粗石、铁栏与青铜","lighting":"暖色壁灯与冷色环境光，地板和出口边界清晰","decorations":"","exclusions":"人物、文字、数字、网格"},"name":"守卫回廊","description":"回廊尽头传来脚步声，警铃旁露着一根断线。","intro":"回廊尽头传来脚步声，警铃旁露着一根断线。","width":20,"height":16,"landing":{"x":2,"y":2},"floors":[{"x":1,"y":1,"width":18,"height":14}],"points":[{"key":"back","name":"返回囚室","x":1,"y":12,"kind":"exit","text":"","hidden":false,"exit":{"scene":"cells","point":"exit"}},{"key":"bell","appearance":{"label":"铜铃与拉绳","description":"墙边支架上悬挂一只铜铃，粗绳垂向地面","width":1,"height":1,"rotation":90,"visibility":"public"},"name":"警铃开关","x":9,"y":7,"kind":"clue","text":"","hidden":false,"arrivalGroup":"reinforcements","success":"警铃响起，两名守卫从预设位置现身。"},{"key":"alarm-wire","name":"拆除警铃断线","x":10,"y":7,"kind":"clue","text":"","hidden":false,"check":{"skill":"sleightOfHand","dc":12},"failureArrivalGroup":"reinforcements","success":"断线被稳稳夹住，没有发出声响。","failure":"断线弹回，警铃响起，港卫应声现身。"},{"key":"exit","name":"前往码头","x":17,"y":12,"kind":"exit","text":"","hidden":false,"exit":{"scene":"dock","point":"back"}}],"ground":[]},{"key":"dock","environment":"outdoor","boundaryWalls":"explicit-only","art":{"description":"临水的木石码头，雾气笼罩远处水面，靠岸停泊一艘空小艇，地面铺设系缆绳与木桩。","publicName":"雾中码头","style":"写实奇幻战术地图，正上方俯视","materials":"潮湿木板、石阶与粗麻绳","lighting":"暖色壁灯与冷色环境光，地板和出口边界清晰","decorations":"","exclusions":"人物、文字、数字、网格"},"name":"雾港码头","description":"雾气中只有一艘尚未解缆的小艇。","intro":"雾气中只有一艘尚未解缆的小艇。","width":20,"height":16,"landing":{"x":2,"y":2},"floors":[{"x":1,"y":1,"width":18,"height":14}],"points":[{"key":"back","name":"返回回廊","x":1,"y":12,"kind":"exit","text":"","hidden":false,"exit":{"scene":"gallery","point":"exit"}},{"key":"fight","name":"冲突触发点","x":10,"y":8,"kind":"clue","text":"GM核对参战者、阵营与先攻后开始冲突。","hidden":false,"battle":"dock-battle"},{"key":"boat","name":"乘船逃离","x":16,"y":10,"kind":"clue","text":"","hidden":false,"success":"众人解开船缆，驶向雾中。冒险以逃离告终。"},{"key":"stay","name":"留下守望","x":7,"y":10,"kind":"clue","text":"","hidden":false,"success":"众人选择留守码头，等待下一次潮汐。冒险以留守告终。"}],"ground":[]}],"npcs":[{"key":"scholar","name":"被囚学者伊莲","scene":"cells","x":8,"y":4,"template":"srd-guard","cardType":"template","type":"important","side":"neutral","hidden":false,"description":"疲惫但警觉的学者。","personality":"谨慎、简洁","knowledge":"知道回廊通向码头。","secret":"曾为港口的走私者绘制航线。","dialogue":"先帮我打开牢笼吧。"},{"key":"keeper","name":"守港人洛恩","scene":"dock","x":14,"y":6,"template":"srd-guard","cardType":"template","type":"important","side":"neutral","hidden":false,"description":"守在雾港的老水手。","personality":"谨慎、简洁","knowledge":"码头有两条去路。","secret":"","dialogue":"要走，还是留下？由你们决定。"},{"key":"guard-1","name":"港卫1","scene":"cells","x":5,"y":6,"template":"srd-guard","cardType":"template","type":"ordinary","side":"enemy","hidden":false,"description":"","personality":"谨慎、简洁","knowledge":"","secret":"","dialogue":"止步。"},{"key":"guard-2","name":"港卫2","scene":"cells","x":12,"y":6,"template":"srd-guard","cardType":"template","type":"ordinary","side":"enemy","hidden":false,"description":"","personality":"谨慎、简洁","knowledge":"","secret":"","dialogue":"止步。"},{"key":"guard-3","name":"港卫3","scene":"gallery","x":5,"y":6,"template":"srd-guard","cardType":"template","type":"ordinary","side":"enemy","hidden":false,"description":"","personality":"谨慎、简洁","knowledge":"","secret":"","dialogue":"止步。"},{"key":"guard-4","name":"港卫4","scene":"gallery","x":12,"y":6,"template":"srd-guard","cardType":"template","type":"ordinary","side":"enemy","hidden":false,"description":"","personality":"谨慎、简洁","knowledge":"","secret":"","dialogue":"止步。"},{"key":"guard-5","name":"港卫5","scene":"dock","x":5,"y":6,"template":"srd-guard","cardType":"template","type":"ordinary","side":"enemy","hidden":false,"description":"","personality":"谨慎、简洁","knowledge":"","secret":"","dialogue":"止步。"},{"key":"guard-6","name":"港卫6","scene":"dock","x":12,"y":6,"template":"srd-guard","cardType":"template","type":"ordinary","side":"enemy","hidden":false,"description":"","personality":"谨慎、简洁","knowledge":"","secret":"","dialogue":"止步。"}],"arrivals":[{"key":"reinforcements","scene":"gallery","name":"警铃增援","npcs":["guard-3","guard-4"],"battleMode":"start","intro":"两名港卫应警铃现身。"}],"battles":[{"key":"dock-battle","scene":"dock","name":"码头冲突","npcs":["guard-5","guard-6"],"intro":"港卫阻住去路。"}],"broadcasts":[{"title":"主持人提示","text":"逃离与留守为可选结局，确认队伍选择后触发对应互动；两者不应同时作为本团结局。","audience":"gm","trigger":"manual","result":"any"}]}
完整字段Schema：{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"format":{"type":"string","const":"trpg-authoring"},"contentLocale":{"type":"string","enum":["zh-CN","en"]},"version":{"type":"number","const":1},"title":{"type":"string","minLength":1,"maxLength":120},"author":{"default":"","type":"string","maxLength":120},"itemPacks":{"maxItems":20,"type":"array","items":{"type":"object","properties":{"formatVersion":{"type":"number","const":2},"id":{"type":"string","minLength":1,"maxLength":120},"version":{"type":"string","minLength":1,"maxLength":120},"name":{"type":"string","maxLength":20000},"attribution":{"type":"string","minLength":1,"maxLength":20000},"classes":{"minItems":0,"maxItems":0,"type":"array","items":{"not":{}}},"backgrounds":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":120},"name":{"type":"string","maxLength":20000},"english":{"type":"string","maxLength":20000},"summary":{"type":"string","maxLength":20000},"source":{"type":"object","properties":{"pack":{"type":"string","minLength":1,"maxLength":120},"version":{"type":"string","minLength":1,"maxLength":120},"page":{"type":"integer","minimum":0,"maximum":9007199254740991},"url":{"type":"string","format":"uri"},"edition":{"type":"string","enum":["2024","custom"]},"chapter":{"type":"string","maxLength":20000},"errata":{"type":"string","maxLength":20000}},"required":["pack","version","page"],"additionalProperties":false},"aliases":{"maxItems":30,"type":"array","items":{"type":"string","maxLength":20000}},"abilities":{"minItems":3,"maxItems":3,"type":"array","items":{"type":"string","enum":["str","dex","con","int","wis","cha"]}},"skills":{"minItems":2,"maxItems":2,"type":"array","items":{"type":"string","minLength":1,"maxLength":120}},"tool":{"type":"string","minLength":1,"maxLength":120},"feat":{"type":"string","minLength":1,"maxLength":120},"equipment":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"object","properties":{"label":{"type":"string","maxLength":20000},"gp":{"type":"number","minimum":0},"items":{"type":"array","items":{"type":"object","properties":{"itemId":{"type":"string","minLength":1,"maxLength":120},"quantity":{"type":"integer","exclusiveMinimum":0,"maximum":1000}},"required":["itemId","quantity"],"additionalProperties":false}},"choices":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":120},"label":{"type":"string","maxLength":20000},"count":{"type":"integer","exclusiveMinimum":0,"maximum":20},"options":{"type":"array","items":{"type":"string","minLength":1,"maxLength":120}}},"required":["id","label","count","options"],"additionalProperties":false}}},"required":["label","gp","items"],"additionalProperties":false}}},"required":["id","name","english","summary","source","abilities","skills","tool","feat","equipment"],"additionalProperties":false}},"species":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":120},"name":{"type":"string","maxLength":20000},"english":{"type":"string","maxLength":20000},"summary":{"type":"string","maxLength":20000},"source":{"type":"object","properties":{"pack":{"type":"string","minLength":1,"maxLength":120},"version":{"type":"string","minLength":1,"maxLength":120},"page":{"type":"integer","minimum":0,"maximum":9007199254740991},"url":{"type":"string","format":"uri"},"edition":{"type":"string","enum":["2024","custom"]},"chapter":{"type":"string","maxLength":20000},"errata":{"type":"string","maxLength":20000}},"required":["pack","version","page"],"additionalProperties":false},"aliases":{"maxItems":30,"type":"array","items":{"type":"string","maxLength":20000}},"speed":{"type":"integer","minimum":0,"maximum":120},"sizes":{"minItems":1,"maxItems":2,"type":"array","items":{"type":"string","enum":["small","medium"]}},"features":{"maxItems":30,"type":"array","items":{"type":"string","maxLength":20000}}},"required":["id","name","english","summary","source","speed","sizes","features"],"additionalProperties":false}},"feats":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":120},"name":{"type":"string","maxLength":20000},"english":{"type":"string","maxLength":20000},"summary":{"type":"string","maxLength":20000},"source":{"type":"object","properties":{"pack":{"type":"string","minLength":1,"maxLength":120},"version":{"type":"string","minLength":1,"maxLength":120},"page":{"type":"integer","minimum":0,"maximum":9007199254740991},"url":{"type":"string","format":"uri"},"edition":{"type":"string","enum":["2024","custom"]},"chapter":{"type":"string","maxLength":20000},"errata":{"type":"string","maxLength":20000}},"required":["pack","version","page"],"additionalProperties":false},"aliases":{"maxItems":30,"type":"array","items":{"type":"string","maxLength":20000}},"category":{"type":"string","enum":["origin","style","general","epic"]},"minLevel":{"type":"integer","minimum":1,"maximum":20},"repeatable":{"type":"boolean"},"abilityIncrease":{"type":"object","properties":{"abilities":{"minItems":1,"maxItems":6,"type":"array","items":{"type":"string","enum":["str","dex","con","int","wis","cha"]}},"points":{"anyOf":[{"type":"number","const":1},{"type":"number","const":2}]},"maximum":{"type":"number","const":20}},"required":["abilities","points","maximum"],"additionalProperties":false},"mechanic":{"type":"string","enum":["alert","savage-attacker","skilled","magic-initiate","crafter","healer","lucky","musician","tavern-brawler","tough","archery","defense","great-weapon-fighting","two-weapon-fighting","blind-fighting","dueling","interception","protection","thrown-weapon-fighting","unarmed-fighting"]},"prerequisite":{"type":"object","properties":{"abilities":{"type":"object","propertyNames":{"type":"string","enum":["str","dex","con","int","wis","cha"]},"additionalProperties":{"type":"integer","minimum":1,"maximum":30}},"anyAbility":{"type":"object","properties":{"abilities":{"minItems":1,"maxItems":6,"type":"array","items":{"type":"string","enum":["str","dex","con","int","wis","cha"]}},"minimum":{"type":"integer","minimum":1,"maximum":30}},"required":["abilities","minimum"],"additionalProperties":false},"armor":{"maxItems":4,"type":"array","items":{"type":"string","enum":["light","medium","heavy","shield"]}},"feature":{"type":"string","enum":["fighting-style","spellcasting"]},"classes":{"maxItems":12,"type":"array","items":{"type":"string","minLength":1,"maxLength":120}}},"additionalProperties":false}},"required":["id","name","english","summary","source","category","minLevel"],"additionalProperties":false}},"spells":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":120},"name":{"type":"string","maxLength":20000},"english":{"type":"string","maxLength":20000},"summary":{"type":"string","maxLength":20000},"source":{"type":"object","properties":{"pack":{"type":"string","minLength":1,"maxLength":120},"version":{"type":"string","minLength":1,"maxLength":120},"page":{"type":"integer","minimum":0,"maximum":9007199254740991},"url":{"type":"string","format":"uri"},"edition":{"type":"string","enum":["2024","custom"]},"chapter":{"type":"string","maxLength":20000},"errata":{"type":"string","maxLength":20000}},"required":["pack","version","page"],"additionalProperties":false},"aliases":{"maxItems":30,"type":"array","items":{"type":"string","maxLength":20000}},"level":{"type":"integer","minimum":0,"maximum":9},"school":{"type":"string","maxLength":20000},"lists":{"maxItems":30,"type":"array","items":{"type":"string","minLength":1,"maxLength":120}},"ritual":{"type":"boolean"},"concentration":{"type":"boolean"},"castingTime":{"type":"string","maxLength":20000},"range":{"type":"string","maxLength":20000},"components":{"type":"string","maxLength":20000},"duration":{"type":"string","maxLength":20000},"description":{"type":"string","maxLength":20000}},"required":["id","name","english","summary","source","level","school","lists","ritual","concentration","castingTime","range","components","duration","description"],"additionalProperties":false}},"items":{"maxItems":1000,"type":"array","items":{"type":"object","properties":{"spellUse":{"type":"object","properties":{"components":{"type":"string","maxLength":1000},"requiresSpellList":{"type":"boolean"},"casterLevel":{"type":"integer","minimum":1,"maximum":20},"spellId":{"type":"string","minLength":1,"maxLength":120},"level":{"type":"integer","minimum":0,"maximum":9},"charges":{"type":"integer","minimum":1,"maximum":1000},"chargeCost":{"type":"integer","minimum":1,"maximum":1000},"dc":{"type":"integer","minimum":1,"maximum":40},"attackBonus":{"type":"integer","minimum":-10,"maximum":30}},"required":["spellId","level"],"additionalProperties":false},"id":{"type":"string","minLength":1,"maxLength":120},"name":{"type":"string","maxLength":20000},"english":{"type":"string","maxLength":20000},"summary":{"type":"string","maxLength":20000},"source":{"type":"object","properties":{"pack":{"type":"string","minLength":1,"maxLength":120},"version":{"type":"string","minLength":1,"maxLength":120},"page":{"type":"integer","minimum":0,"maximum":9007199254740991},"url":{"type":"string","format":"uri"},"edition":{"type":"string","enum":["2024","custom"]},"chapter":{"type":"string","maxLength":20000},"errata":{"type":"string","maxLength":20000}},"required":["pack","version","page"],"additionalProperties":false},"aliases":{"maxItems":30,"type":"array","items":{"type":"string","maxLength":20000}},"kind":{"type":"string","enum":["weapon","armor","shield","gear","tool","pack"]},"cost":{"type":"number","minimum":0},"weight":{"type":"number","minimum":0},"category":{"type":"string","maxLength":20000},"damage":{"type":"string","maxLength":20000},"damageType":{"type":"string","maxLength":20000},"properties":{"maxItems":30,"type":"array","items":{"type":"string","maxLength":20000}},"mastery":{"type":"string","maxLength":20000},"ac":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"dexCap":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"strength":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"stealthDisadvantage":{"type":"boolean"},"contents":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"itemId":{"type":"string","minLength":1,"maxLength":120},"quantity":{"type":"integer","exclusiveMinimum":0,"maximum":1000}},"required":["itemId","quantity"],"additionalProperties":false}},"wearSlot":{"type":"string","enum":["head","cloak","armor","clothing","hands","feet","accessories"]},"holdable":{"type":"boolean"},"inventoryTag":{"type":"string","enum":["weapons","armor","consumables","tools","materials","containers","misc"]}},"required":["id","name","english","summary","source","kind","cost","weight"],"additionalProperties":false}},"subclasses":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":120},"name":{"type":"string","maxLength":20000},"english":{"type":"string","maxLength":20000},"summary":{"type":"string","maxLength":20000},"source":{"type":"object","properties":{"pack":{"type":"string","minLength":1,"maxLength":120},"version":{"type":"string","minLength":1,"maxLength":120},"page":{"type":"integer","minimum":0,"maximum":9007199254740991},"url":{"type":"string","format":"uri"},"edition":{"type":"string","enum":["2024","custom"]},"chapter":{"type":"string","maxLength":20000},"errata":{"type":"string","maxLength":20000}},"required":["pack","version","page"],"additionalProperties":false},"aliases":{"maxItems":30,"type":"array","items":{"type":"string","maxLength":20000}},"classId":{"type":"string","enum":["barbarian","bard","cleric","druid","fighter","monk","paladin","ranger","rogue","sorcerer","warlock","wizard"]},"minLevel":{"type":"number","const":3},"features":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"level":{"type":"integer","minimum":3,"maximum":5},"name":{"type":"string","maxLength":20000},"summary":{"type":"string","maxLength":20000}},"required":["level","name","summary"],"additionalProperties":false}},"spellGrants":{"maxItems":10,"type":"array","items":{"type":"object","properties":{"level":{"type":"integer","minimum":3,"maximum":5},"ids":{"maxItems":20,"type":"array","items":{"type":"string","minLength":1,"maxLength":120}},"ability":{"type":"string","enum":["int","wis","cha"]}},"required":["level","ids","ability"],"additionalProperties":false}}},"required":["id","name","english","summary","source","classId","minLevel","features"],"additionalProperties":false}}},"required":["id","version","name","attribution","classes","backgrounds","species","feats","spells","items"],"additionalProperties":false}},"description":{"default":"","type":"string","maxLength":2000},"level":{"type":"integer","minimum":1,"maximum":5},"players":{"type":"integer","minimum":1,"maximum":10},"start":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"},"opening":{"default":"","type":"string","maxLength":2000},"openingPresentation":{"type":"object","properties":{"opening":{"type":"string","maxLength":12000},"background":{"type":"string","maxLength":12000},"origin":{"type":"string","maxLength":12000},"identities":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"characterId":{"type":"string","minLength":1,"maxLength":120},"text":{"type":"string","maxLength":12000}},"required":["characterId","text"],"additionalProperties":false}}},"required":["opening","background","origin","identities"],"additionalProperties":false},"scenes":{"minItems":1,"maxItems":30,"type":"array","items":{"type":"object","properties":{"fog":{"type":"object","properties":{"mode":{"type":"string","enum":["legacy","enclosed"]},"areas":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":120},"name":{"type":"string","maxLength":120},"cells":{"minItems":1,"maxItems":6400,"type":"array","items":{"type":"string","pattern":"^\\d+,\\d+$"}},"doorIds":{"default":[],"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":120}},"initiallyRevealed":{"default":false,"type":"boolean"},"revealOnOpen":{"default":true,"type":"boolean"},"manualOnly":{"default":false,"type":"boolean"}},"required":["id","name","cells"],"additionalProperties":false}},"shading":{"type":"object","properties":{"level1":{"type":"number","minimum":0.05,"maximum":0.8},"level2":{"type":"number","minimum":0.1,"maximum":0.95}},"required":["level1","level2"],"additionalProperties":false},"enabled":{"type":"boolean"},"shared":{"default":false,"type":"boolean"},"rangeFeet":{"default":null,"anyOf":[{"type":"number","exclusiveMinimum":0,"maximum":10000},{"type":"null"}]},"initial":{"default":[],"maxItems":6400,"type":"array","items":{"type":"string","pattern":"^\\d+,\\d+$"}}},"required":["enabled"],"additionalProperties":false},"links":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"},"name":{"type":"string","minLength":1,"maxLength":2000},"color":{"type":"string","pattern":"^#[0-9a-f]{6}$"},"source":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"},"outcome":{"default":"success","type":"string","enum":["success","failure"]},"effects":{"maxItems":50,"type":"array","items":{"type":"object","properties":{"point":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"},"operation":{"type":"string","enum":["open","close","unlock","reveal","enable"]}},"required":["point","operation"],"additionalProperties":false}},"arrivalGroups":{"maxItems":30,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"}}},"required":["key","name","color","source","effects"],"additionalProperties":false}},"key":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"},"effectSetup":{"type":"object","properties":{"regions":{"default":[],"maxItems":100,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":120},"spellId":{"type":"string","minLength":1,"maxLength":120},"geometry":{"type":"object","properties":{"shape":{"type":"string","enum":["sphere","cylinder","cube","square","emanation","line","wall"]},"x":{"type":"number","minimum":0,"maximum":79},"y":{"type":"number","minimum":0,"maximum":79},"height":{"type":"number","minimum":-10000,"maximum":10000},"size":{"type":"number","minimum":0.1,"maximum":2000},"heightFeet":{"default":0,"type":"number","minimum":0,"maximum":2000},"width":{"default":5,"type":"number","minimum":0.1,"maximum":2000},"angle":{"default":0,"type":"number","minimum":-360,"maximum":360},"originSpan":{"default":1,"type":"integer","minimum":1,"maximum":80},"points":{"minItems":2,"maxItems":100,"type":"array","items":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":80},"y":{"type":"number","minimum":0,"maximum":80},"height":{"type":"number","minimum":-10000,"maximum":10000}},"required":["x","y","height"],"additionalProperties":false}},"cuts":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"x":{"type":"number"},"y":{"type":"number"},"height":{"type":"number","minimum":-10000,"maximum":10000},"width":{"type":"number","exclusiveMinimum":0},"depth":{"type":"number","exclusiveMinimum":0},"heightFeet":{"type":"number","exclusiveMinimum":0}},"required":["x","y","height","width","depth","heightFeet"],"additionalProperties":false}}},"required":["shape","x","y","height","size"],"additionalProperties":false},"sourceNpcId":{"type":"string","minLength":1,"maxLength":120},"objectId":{"type":"string","minLength":1,"maxLength":120},"pointId":{"type":"string","minLength":1,"maxLength":120},"slotLevel":{"type":"integer","minimum":0,"maximum":3},"dc":{"type":"integer","minimum":1,"maximum":40},"hidden":{"type":"boolean"},"remainingHours":{"type":"number","exclusiveMinimum":0,"maximum":8760},"magic":{"type":"object","properties":{"angle":{"default":0,"type":"number","minimum":-360,"maximum":360},"path":{"default":[],"maxItems":100,"type":"array","items":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":80},"y":{"type":"number","minimum":0,"maximum":80},"height":{"type":"number","minimum":-10000,"maximum":10000}},"required":["x","y","height"],"additionalProperties":false}},"excludedIds":{"default":[],"maxItems":1000,"type":"array","items":{"type":"string","minLength":1,"maxLength":120}},"pointId":{"type":"string","minLength":1,"maxLength":120},"materialIds":{"default":[],"maxItems":5,"type":"array","items":{"type":"string","minLength":1,"maxLength":120}},"ammunitionIds":{"default":[],"maxItems":6,"type":"array","items":{"type":"string","minLength":1,"maxLength":120}},"damageType":{"default":"radiant","type":"string","enum":["acid","cold","fire","lightning","thunder","radiant","necrotic"]},"storm":{"default":false,"type":"boolean"},"strike":{"type":"object","properties":{"x":{"type":"number","minimum":0,"maximum":80},"y":{"type":"number","minimum":0,"maximum":80},"height":{"type":"number","minimum":-10000,"maximum":10000}},"required":["x","y","height"],"additionalProperties":false},"password":{"default":"","type":"string","maxLength":200},"alarm":{"default":"audible","type":"string","enum":["audible","mental"]},"trigger":{"type":"object","properties":{"kind":{"type":"string","enum":["enter","touch","open","uncover","speak","gm"]},"range":{"default":0,"type":"number","minimum":0,"maximum":60},"phrase":{"type":"string","maxLength":200},"types":{"default":[],"maxItems":20,"type":"array","items":{"type":"string","maxLength":40}},"description":{"default":"","type":"string","maxLength":2000},"sense":{"default":"either","type":"string","enum":["sight","sound","either"]}},"required":["kind"],"additionalProperties":false},"message":{"default":"","type":"string","maxLength":2000},"wordCountConfirmed":{"default":false,"type":"boolean"},"repeat":{"default":false,"type":"boolean"},"glyph":{"default":"explosive","type":"string","enum":["explosive","spell"]},"stored":{"type":"object","properties":{"key":{"type":"string","minLength":1,"maxLength":300},"mode":{"type":"string","minLength":1,"maxLength":120},"spellId":{"type":"string","minLength":1,"maxLength":120},"supportChoice":{"type":"string","maxLength":120},"willing":{"type":"boolean"}},"required":["key","mode","spellId"],"additionalProperties":false},"types":{"default":[],"maxItems":5,"type":"array","items":{"type":"string","enum":["celestial","elemental","fey","fiend","undead"]}},"reverse":{"default":false,"type":"boolean"},"hutLight":{"default":"dim","type":"string","enum":["dim","dark"]}},"additionalProperties":false},"terrain":{"type":"object","properties":{"plantCells":{"default":[],"maxItems":6400,"type":"array","items":{"type":"string","pattern":"^\\d+,\\d+$"}},"excludedCells":{"default":[],"maxItems":6400,"type":"array","items":{"type":"string","pattern":"^\\d+,\\d+$"}},"supportIds":{"default":[],"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":120}},"webSupport":{"type":"string","enum":["opposing","surface","unsupported"]}},"additionalProperties":false},"light":{"type":"object","properties":{"bright":{"type":"number","minimum":0,"maximum":2000},"dimExtra":{"type":"number","minimum":0,"maximum":2000},"sunlight":{"type":"boolean"},"magical":{"type":"boolean"},"flame":{"type":"boolean"},"protected":{"type":"boolean"},"color":{"type":"string","pattern":"^#[\\da-f]{6}$"}},"required":["bright","dimExtra","sunlight","magical","color"],"additionalProperties":false},"note":{"type":"string","maxLength":2000}},"required":["id","spellId","geometry","slotLevel","hidden","note"],"additionalProperties":false}},"containers":{"default":[],"maxItems":100,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":120},"objectId":{"type":"string","minLength":1,"maxLength":120},"name":{"type":"string","minLength":1,"maxLength":200},"waterCapacity":{"type":"integer","minimum":0,"maximum":100000000},"foodCapacity":{"type":"integer","minimum":0,"maximum":100000000},"open":{"type":"boolean"},"hidden":{"type":"boolean"},"water":{"default":0,"type":"integer","minimum":0,"maximum":100000000},"food":{"default":0,"type":"integer","minimum":0,"maximum":100000000}},"required":["id","objectId","name","waterCapacity","foodCapacity","open","hidden"],"additionalProperties":false}},"materials":{"default":[],"maxItems":100,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":120},"npcId":{"type":"string","minLength":1,"maxLength":120},"consumableId":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["ruby-dust","gold-dust","jade-dust","diamond-dust","silver-salt"]},"valueGP":{"type":"number","minimum":1,"maximum":1000000}},"required":["id","npcId","consumableId","kind","valueGP"],"additionalProperties":false}}},"additionalProperties":false},"spatialSetup":{"type":"object","properties":{"floorHeight":{"type":"number","minimum":-10000,"maximum":10000},"light":{"type":"string","enum":["bright","dim","dark","magical-darkness"]},"openSky":{"type":"boolean"},"ceilingHeight":{"type":"number","minimum":-10000,"maximum":10000},"objects":{"default":[],"maxItems":1000,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"^[a-zA-Z0-9-]{1,120}$"},"name":{"type":"string","minLength":1,"maxLength":200},"kind":{"type":"string","enum":["object","rope","stone","surface","liquid","plants"]},"x":{"type":"integer","minimum":0,"maximum":79},"y":{"type":"integer","minimum":0,"maximum":79},"height":{"type":"number","minimum":-10000,"maximum":10000},"width":{"type":"number","minimum":0,"maximum":100000},"heightFeet":{"type":"number","minimum":0,"maximum":100000},"depth":{"type":"number","minimum":0,"maximum":100000},"weight":{"type":"number","minimum":0,"maximum":100000},"supportsStanding":{"type":"boolean"},"loose":{"type":"boolean"},"enabled":{"type":"boolean"},"hidden":{"type":"boolean"}},"required":["id","name","kind","x","y","height","width","heightFeet","depth","weight","loose","enabled","hidden"],"additionalProperties":false}}},"required":["floorHeight","openSky"],"additionalProperties":false},"environment":{"type":"string","enum":["outdoor","indoor","mixed"]},"boundaryWalls":{"type":"string","enum":["explicit-only","auto-enclose"]},"art":{"type":"object","properties":{"contentLocale":{"type":"string","enum":["zh-CN","en"]},"composition":{"type":"string","maxLength":2000},"description":{"default":"","type":"string","maxLength":2000},"publicName":{"default":"场景","type":"string","maxLength":80},"style":{"default":"写实奇幻战术地图，正上方俯视","type":"string","maxLength":1000},"materials":{"default":"石材地面与墙体","type":"string","maxLength":1000},"lighting":{"default":"均匀照明，清晰辨认地面和通道","type":"string","maxLength":1000},"decorations":{"default":"","type":"string","maxLength":2000},"exclusions":{"default":"人物、文字、数字、网格","type":"string","maxLength":1000}},"additionalProperties":false},"walls":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"},"a":{"type":"object","properties":{"x":{"type":"integer","minimum":0,"maximum":40},"y":{"type":"integer","minimum":0,"maximum":40}},"required":["x","y"],"additionalProperties":false},"b":{"type":"object","properties":{"x":{"type":"integer","minimum":0,"maximum":40},"y":{"type":"integer","minimum":0,"maximum":40}},"required":["x","y"],"additionalProperties":false},"heightFeet":{"type":"number","minimum":0,"maximum":10000},"gapFeet":{"type":"number","minimum":0,"maximum":5},"kind":{"type":"string","enum":["wall","door"]},"state":{"default":"closed","type":"string","enum":["closed","open","locked"]},"point":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"},"hidden":{"default":false,"type":"boolean"}},"required":["key","a","b","kind"],"additionalProperties":false}},"name":{"type":"string","minLength":1,"maxLength":2000},"description":{"default":"","type":"string","maxLength":2000},"intro":{"default":"","type":"string","maxLength":2000},"width":{"type":"integer","minimum":6,"maximum":40},"height":{"type":"integer","minimum":6,"maximum":40},"landing":{"type":"object","properties":{"x":{"type":"integer","minimum":0,"maximum":79},"y":{"type":"integer","minimum":0,"maximum":79}},"required":["x","y"],"additionalProperties":false},"floors":{"minItems":1,"maxItems":24,"type":"array","items":{"type":"object","properties":{"x":{"type":"integer","minimum":0,"maximum":79},"y":{"type":"integer","minimum":0,"maximum":79},"width":{"type":"integer","minimum":1,"maximum":40},"height":{"type":"integer","minimum":1,"maximum":40}},"required":["x","y","width","height"],"additionalProperties":false}},"points":{"default":[],"maxItems":60,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"},"appearance":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":120},"description":{"type":"string","minLength":1,"maxLength":1000},"width":{"default":1,"type":"integer","minimum":1,"maximum":8},"height":{"default":1,"type":"integer","minimum":1,"maximum":8},"rotation":{"default":0,"type":"number","minimum":-360,"maximum":360},"visibility":{"default":"public","type":"string","enum":["public","surface","omit"]}},"required":["label","description"],"additionalProperties":false},"name":{"type":"string","minLength":1,"maxLength":2000},"x":{"type":"integer","minimum":0,"maximum":79},"y":{"type":"integer","minimum":0,"maximum":79},"kind":{"default":"clue","type":"string","enum":["clue","chest","trap","door","exit"]},"repeatAccess":{"type":"boolean"},"text":{"default":"","type":"string","maxLength":2000},"hidden":{"default":false,"type":"boolean"},"check":{"type":"object","properties":{"skill":{"type":"string","minLength":1,"maxLength":80},"dc":{"type":"integer","minimum":1,"maximum":30}},"required":["skill","dc"],"additionalProperties":false},"exit":{"type":"object","properties":{"scene":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"},"point":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"}},"required":["scene","point"],"additionalProperties":false},"rescueNpc":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"},"discovery":{"type":"object","properties":{"method":{"type":"string","enum":["proximity","gm","linked"]},"range":{"default":20,"type":"number","minimum":0,"maximum":300},"skill":{"default":"perception","type":"string"},"dc":{"default":10,"type":"integer","minimum":1,"maximum":100}},"required":["method"],"additionalProperties":false},"itemUse":{"type":"object","properties":{"match":{"type":"string","enum":["all","any"]},"requirements":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"object","properties":{"itemId":{"type":"string","minLength":1,"maxLength":120},"quantity":{"type":"integer","minimum":1,"maximum":10000},"mode":{"type":"string","enum":["possess","use","attempt","success"]}},"required":["itemId","quantity","mode"],"additionalProperties":false}},"effect":{"type":"string","enum":["open","prerequisite"]},"fallback":{"type":"string","enum":["none","check","gm"]}},"required":["match","requirements","effect","fallback"],"additionalProperties":false},"container":{"type":"object","properties":{"items":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"itemId":{"type":"string","minLength":1,"maxLength":120},"quantity":{"type":"integer","minimum":1,"maximum":10000}},"required":["itemId","quantity"],"additionalProperties":false}},"coins":{"default":0,"type":"number","minimum":0,"maximum":1000000},"emptyReason":{"type":"string","maxLength":2000},"gmNote":{"type":"string","maxLength":2000}},"required":["items"],"additionalProperties":false},"arrivalGroup":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"},"failureArrivalGroup":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"},"battle":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"},"success":{"type":"string","maxLength":2000},"failure":{"type":"string","maxLength":2000}},"required":["key","name","x","y"],"additionalProperties":false}},"ground":{"default":[],"maxItems":60,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"},"x":{"type":"integer","minimum":0,"maximum":79},"y":{"type":"integer","minimum":0,"maximum":79},"item":{"type":"string","minLength":1,"maxLength":120},"quantity":{"default":1,"type":"integer","minimum":1,"maximum":999},"hidden":{"default":false,"type":"boolean"}},"required":["key","x","y","item"],"additionalProperties":false}}},"required":["key","name","width","height","landing","floors"],"additionalProperties":false}},"designNotebook":{"type":"object","properties":{"version":{"type":"number","const":1},"story":{"type":"object","properties":{"format":{"type":"string","const":"trpg-design-stage"},"version":{"type":"number","const":1},"contentLocale":{"type":"string","enum":["zh-CN","en"]},"stage":{"type":"string","enum":["story","specification"]},"title":{"type":"string","minLength":1,"maxLength":200},"revision":{"type":"integer","minimum":0,"maximum":9007199254740991},"sourceRevision":{"default":null,"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"nodes":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","minLength":1,"maxLength":120},"title":{"type":"string","minLength":1,"maxLength":200},"section":{"type":"string","enum":["conflict","background","faction","character","scene","clue","event","choice","specification","quest","encounter","economy"]},"body":{"default":"","type":"string","maxLength":30000},"refs":{"default":[],"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":120}},"locked":{"default":false,"type":"boolean"},"persona":{"type":"object","properties":{"version":{"type":"number","const":1},"public":{"type":"object","properties":{"situation":{"default":"","type":"string","maxLength":12000},"desire":{"default":"","type":"string","maxLength":12000},"attachment":{"default":"","type":"string","maxLength":12000},"contradiction":{"default":"","type":"string","maxLength":12000},"relationships":{"default":"","type":"string","maxLength":12000},"boundaries":{"default":"","type":"string","maxLength":12000},"voice":{"default":"","type":"string","maxLength":12000},"pressure":{"default":"","type":"string","maxLength":12000}},"additionalProperties":false},"self":{"default":[],"maxItems":100,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["fact","hearsay","misbelief","lie","goal"]},"text":{"default":"","type":"string","maxLength":12000},"source":{"default":"","type":"string","maxLength":12000}},"required":["key","kind"],"additionalProperties":false}},"relations":{"default":[],"maxItems":100,"type":"array","items":{"type":"object","properties":{"target":{"type":"string","minLength":1,"maxLength":200},"ref":{"default":"","type":"string","maxLength":120},"kind":{"default":"","type":"string","maxLength":200},"reason":{"default":"","type":"string","maxLength":12000},"change":{"default":"","type":"string","maxLength":12000},"visibility":{"default":"self","type":"string","enum":["public","self","director"]}},"required":["target"],"additionalProperties":false}},"director":{"default":"","type":"string","maxLength":12000},"summary":{"default":"","type":"string","maxLength":12000},"summaryBasis":{"default":"","type":"string","maxLength":120},"scenarios":{"default":[],"maxItems":3,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["help","offense","threat"]},"response":{"default":"","type":"string","maxLength":12000}},"required":["kind"],"additionalProperties":false}}},"required":["version","public"],"additionalProperties":false}},"required":["key","title","section"],"additionalProperties":false}},"notes":{"default":"","type":"string","maxLength":30000}},"required":["format","version","stage","title","revision","nodes"],"additionalProperties":false},"specification":{"type":"object","properties":{"format":{"type":"string","const":"trpg-design-stage"},"version":{"type":"number","const":1},"contentLocale":{"type":"string","enum":["zh-CN","en"]},"stage":{"type":"string","enum":["story","specification"]},"title":{"type":"string","minLength":1,"maxLength":200},"revision":{"type":"integer","minimum":0,"maximum":9007199254740991},"sourceRevision":{"default":null,"anyOf":[{"type":"integer","minimum":0,"maximum":9007199254740991},{"type":"null"}]},"nodes":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","minLength":1,"maxLength":120},"title":{"type":"string","minLength":1,"maxLength":200},"section":{"type":"string","enum":["conflict","background","faction","character","scene","clue","event","choice","specification","quest","encounter","economy"]},"body":{"default":"","type":"string","maxLength":30000},"refs":{"default":[],"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":120}},"locked":{"default":false,"type":"boolean"},"persona":{"type":"object","properties":{"version":{"type":"number","const":1},"public":{"type":"object","properties":{"situation":{"default":"","type":"string","maxLength":12000},"desire":{"default":"","type":"string","maxLength":12000},"attachment":{"default":"","type":"string","maxLength":12000},"contradiction":{"default":"","type":"string","maxLength":12000},"relationships":{"default":"","type":"string","maxLength":12000},"boundaries":{"default":"","type":"string","maxLength":12000},"voice":{"default":"","type":"string","maxLength":12000},"pressure":{"default":"","type":"string","maxLength":12000}},"additionalProperties":false},"self":{"default":[],"maxItems":100,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["fact","hearsay","misbelief","lie","goal"]},"text":{"default":"","type":"string","maxLength":12000},"source":{"default":"","type":"string","maxLength":12000}},"required":["key","kind"],"additionalProperties":false}},"relations":{"default":[],"maxItems":100,"type":"array","items":{"type":"object","properties":{"target":{"type":"string","minLength":1,"maxLength":200},"ref":{"default":"","type":"string","maxLength":120},"kind":{"default":"","type":"string","maxLength":200},"reason":{"default":"","type":"string","maxLength":12000},"change":{"default":"","type":"string","maxLength":12000},"visibility":{"default":"self","type":"string","enum":["public","self","director"]}},"required":["target"],"additionalProperties":false}},"director":{"default":"","type":"string","maxLength":12000},"summary":{"default":"","type":"string","maxLength":12000},"summaryBasis":{"default":"","type":"string","maxLength":120},"scenarios":{"default":[],"maxItems":3,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["help","offense","threat"]},"response":{"default":"","type":"string","maxLength":12000}},"required":["kind"],"additionalProperties":false}}},"required":["version","public"],"additionalProperties":false}},"required":["key","title","section"],"additionalProperties":false}},"notes":{"default":"","type":"string","maxLength":30000}},"required":["format","version","stage","title","revision","nodes"],"additionalProperties":false}},"required":["version"],"additionalProperties":false},"growthGuide":{"type":"object","properties":{"mode":{"type":"string","enum":["xp","milestone"]},"players":{"type":"integer","minimum":1,"maximum":10},"startLevel":{"type":"integer","minimum":1,"maximum":20},"endLevel":{"type":"integer","minimum":1,"maximum":20},"hours":{"type":"number","exclusiveMinimum":0,"maximum":1000},"steps":{"minItems":1,"maxItems":100,"type":"array","items":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":120},"chapter":{"default":"","type":"string","maxLength":120},"sceneId":{"type":"string","minLength":1,"maxLength":120},"questId":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["combat","exploration","social","quest","milestone"]},"suggestedLevel":{"type":"integer","minimum":1,"maximum":20},"xp":{"type":"integer","minimum":0,"maximum":1000000},"allocation":{"type":"string","enum":["team-total","per-person"]},"sourceKind":{"default":"gm","type":"string","enum":["rule","gm"]},"source":{"type":"string","minLength":1,"maxLength":2000},"reason":{"type":"string","minLength":1,"maxLength":2000},"challengeKey":{"type":"string","minLength":1,"maxLength":120}},"required":["title","kind","source","reason","challengeKey"],"additionalProperties":false}}},"required":["mode","players","startLevel","endLevel","hours","steps"],"additionalProperties":false},"quests":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"},"title":{"type":"string","minLength":1,"maxLength":120},"gmDesign":{"type":"object","properties":{"completion":{"default":"","type":"string","maxLength":2000},"alternatives":{"default":"","type":"string","maxLength":2000},"notes":{"default":"","type":"string","maxLength":2000},"npcIds":{"default":[],"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":120}}},"additionalProperties":false},"chapter":{"default":"","type":"string","maxLength":120},"description":{"default":"","type":"string","maxLength":2000},"initialStatus":{"default":"inactive","type":"string","enum":["inactive","active","completed","failed"]},"visibility":{"default":"public","type":"string","enum":["public","hidden"]},"main":{"default":false,"type":"boolean"},"current":{"default":false,"type":"boolean"},"pinnedStep":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"},"steps":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"},"title":{"type":"string","minLength":1,"maxLength":120},"description":{"default":"","type":"string","maxLength":2000},"visibility":{"default":"hidden","type":"string","enum":["public","hidden"]},"initialStatus":{"default":"inactive","type":"string","enum":["inactive","active","completed","failed"]},"after":{"default":[],"maxItems":100,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"}},"scene":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"},"point":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"},"arrival":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"},"trigger":{"type":"string","enum":["point-success","scene-enter","arrival","battle-ended"]},"alternatives":{"type":"string","maxLength":2000},"gmNote":{"type":"string","maxLength":2000},"automatic":{"type":"boolean"},"activateNext":{"type":"boolean"},"attribution":{"type":"string","enum":["party","proxy","world"]},"proxyNpcIds":{"maxItems":100,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"}}},"required":["key","title"],"additionalProperties":false}},"scene":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"},"point":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"}},"required":["key","title"],"additionalProperties":false}},"knowledgeDesign":{"type":"object","properties":{"factions":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"practical":{"type":"object","properties":{"enabled":{"type":"boolean"},"allowAttackAdjudication":{"type":"boolean"},"min":{"type":"integer","minimum":-100,"maximum":0},"max":{"type":"integer","minimum":0,"maximum":100}},"required":["enabled","allowAttackAdjudication","min","max"],"additionalProperties":false},"id":{"type":"string","minLength":1,"maxLength":160},"name":{"type":"string","minLength":1,"maxLength":120},"description":{"type":"string","maxLength":4000},"hidden":{"type":"boolean"},"initialScore":{"type":"integer","minimum":-100,"maximum":100},"policies":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":160},"sceneId":{"type":"string","minLength":1,"maxLength":160},"pointId":{"type":"string","minLength":1,"maxLength":160},"outcome":{"type":"string","enum":["success","failure"]},"contribution":{"type":"integer","minimum":-100,"maximum":100},"automatic":{"type":"boolean"},"attribution":{"type":"string","enum":["party","proxy","world"]},"proxyNpcIds":{"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":160}},"reason":{"type":"string","minLength":1,"maxLength":4000}},"required":["id","sceneId","pointId","outcome","contribution","automatic","reason"],"additionalProperties":false}}},"required":["id","name","description","hidden","initialScore"],"additionalProperties":false}},"templates":{"maxItems":200,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":160},"name":{"type":"string","minLength":1,"maxLength":120},"version":{"type":"integer","exclusiveMinimum":0,"maximum":9007199254740991},"layer":{"type":"string","enum":["world","region","culture","upbringing","profession","organization","script","gm"]},"visibility":{"type":"string","enum":["public","private"]},"text":{"type":"string","minLength":1,"maxLength":4000}},"required":["id","name","version","layer","visibility","text"],"additionalProperties":false}}},"required":["factions","templates"],"additionalProperties":false},"npcs":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"},"name":{"type":"string","minLength":1,"maxLength":120},"merchantPolicy":{"type":"object","properties":{"enabled":{"type":"boolean"},"buy":{"type":"boolean"},"buyRate":{"type":"number","minimum":0,"maximum":1},"buyItems":{"maxItems":500,"type":"array","items":{"type":"string","minLength":1,"maxLength":120}},"blockedItems":{"maxItems":500,"type":"array","items":{"type":"string","minLength":1,"maxLength":120}},"autoPurchase":{"type":"boolean"},"zeroPrice":{"type":"boolean"},"practical":{"type":"object","properties":{"enabled":{"type":"boolean"},"scope":{"type":"string","enum":["listed","all"]},"buyback":{"type":"boolean"},"barter":{"type":"boolean"},"negotiation":{"type":"boolean"},"dc":{"type":"integer","minimum":1,"maximum":40},"cost":{"type":"string","enum":["free","action","bonus"]}},"required":["enabled","scope","buyback","barter","negotiation","dc","cost"],"additionalProperties":false}},"required":["enabled","buy","buyRate","buyItems","blockedItems","autoPurchase","zeroPrice"],"additionalProperties":false},"practicalSocial":{"type":"object","properties":{"enabled":{"type":"boolean"},"rules":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":120},"goal":{"type":"string","minLength":1,"maxLength":500},"willingness":{"type":"string","enum":["willing","unwilling","hesitant","judge"]},"skill":{"type":"string","enum":["persuasion","deception","intimidation","performance","animal-handling"]},"dc":{"type":"integer","minimum":1,"maximum":100},"cost":{"type":"string","enum":["none","action"]},"success":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":1200},"revealIds":{"default":[],"maxItems":20,"type":"array","items":{"type":"string","minLength":1,"maxLength":120}},"promise":{"default":"","type":"string","maxLength":500},"operations":{"maxItems":4,"type":"array","items":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"follow"},"join":{"type":"boolean"}},"required":["kind","join"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"interaction"},"pointId":{"type":"string","minLength":1,"maxLength":120},"operation":{"type":"string","enum":["use","toggle","check","claim"]}},"required":["kind","pointId","operation"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"battle-support"},"presetId":{"type":"string","minLength":1,"maxLength":120}},"required":["kind","presetId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"trade-offer"},"itemId":{"type":"string","minLength":1,"maxLength":120},"quantity":{"type":"integer","minimum":1,"maximum":1000}},"required":["kind","itemId","quantity"],"additionalProperties":false}]}}},"required":["text"],"additionalProperties":false},"failure":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":1200},"revealIds":{"default":[],"maxItems":20,"type":"array","items":{"type":"string","minLength":1,"maxLength":120}},"promise":{"default":"","type":"string","maxLength":500},"operations":{"maxItems":4,"type":"array","items":{"oneOf":[{"type":"object","properties":{"kind":{"type":"string","const":"follow"},"join":{"type":"boolean"}},"required":["kind","join"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"interaction"},"pointId":{"type":"string","minLength":1,"maxLength":120},"operation":{"type":"string","enum":["use","toggle","check","claim"]}},"required":["kind","pointId","operation"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"battle-support"},"presetId":{"type":"string","minLength":1,"maxLength":120}},"required":["kind","presetId"],"additionalProperties":false},{"type":"object","properties":{"kind":{"type":"string","const":"trade-offer"},"itemId":{"type":"string","minLength":1,"maxLength":120},"quantity":{"type":"integer","minimum":1,"maximum":1000}},"required":["kind","itemId","quantity"],"additionalProperties":false}]}}},"required":["text"],"additionalProperties":false}},"required":["id","goal","willingness","skill","cost","success","failure"],"additionalProperties":false}}},"required":["enabled","rules"],"additionalProperties":false},"resourceStrategy":{"type":"string","enum":["conservative","balanced","aggressive"]},"spatialPolicy":{"type":"object","properties":{"enabled":{"type":"boolean"},"compactInput":{"type":"boolean"},"autoMove":{"type":"boolean"},"autoPlan":{"default":false,"type":"boolean"},"plansPerScene":{"default":3,"type":"integer","minimum":1,"maximum":6},"maxSteps":{"type":"integer","minimum":1,"maximum":24},"goal":{"type":"string","maxLength":500},"knownExits":{"maxItems":40,"type":"array","items":{"type":"object","properties":{"sceneId":{"type":"string","minLength":1,"maxLength":120},"pointId":{"type":"string","minLength":1,"maxLength":120}},"required":["sceneId","pointId"],"additionalProperties":false}},"independentTravel":{"type":"boolean"},"practical":{"type":"object","properties":{"enabled":{"type":"boolean"},"pointIds":{"maxItems":200,"type":"array","items":{"type":"string","minLength":1,"maxLength":120}},"operations":{"maxItems":4,"type":"array","items":{"type":"string","enum":["use","toggle","check","claim"]}},"travel":{"type":"boolean"},"itemLimits":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"itemId":{"type":"string","minLength":1,"maxLength":120},"quantity":{"type":"integer","minimum":1,"maximum":1000}},"required":["itemId","quantity"],"additionalProperties":false}},"resourceLimits":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":120},"amount":{"type":"integer","minimum":1,"maximum":100}},"required":["id","amount"],"additionalProperties":false}}},"required":["enabled","pointIds","operations","travel","itemLimits","resourceLimits"],"additionalProperties":false}},"required":["enabled","compactInput","autoMove","maxSteps","goal","knownExits","independentTravel"],"additionalProperties":false},"coinsGP":{"type":"number","minimum":0,"maximum":100000},"stock":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"itemId":{"type":"string","minLength":1,"maxLength":120},"quantity":{"type":"integer","minimum":0,"maximum":10000},"priceGP":{"type":"number","minimum":0,"maximum":100000}},"required":["itemId","quantity","priceGP"],"additionalProperties":false}},"scene":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"},"x":{"type":"integer","minimum":0,"maximum":79},"y":{"type":"integer","minimum":0,"maximum":79},"template":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"},"initialHeight":{"type":"number","minimum":-10000,"maximum":10000},"initialSupport":{"type":"string","maxLength":120},"cardType":{"default":"template","type":"string","enum":["template","character"]},"character":{"type":"object","properties":{"build":{"type":"object","properties":{"classId":{"type":"string","maxLength":20000},"backgroundId":{"type":"string","maxLength":20000},"speciesId":{"type":"string","maxLength":20000},"method":{"type":"string","enum":["array","point","roll"]},"scores":{"type":"object","properties":{"str":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"dex":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"con":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"int":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"wis":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cha":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["str","dex","con","int","wis","cha"],"additionalProperties":false},"boosts":{"type":"object","properties":{"str":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"dex":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"con":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"int":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"wis":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cha":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["str","dex","con","int","wis","cha"],"additionalProperties":false},"rolls":{"anyOf":[{"type":"object","properties":{"dice":{"minItems":6,"maxItems":6,"type":"array","items":{"minItems":4,"maxItems":4,"type":"array","items":{"type":"integer","minimum":1,"maximum":6}}},"totals":{"minItems":6,"maxItems":6,"type":"array","items":{"type":"integer","minimum":3,"maximum":18}},"at":{"type":"string","format":"date-time","pattern":"^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z))$"}},"required":["dice","totals","at"],"additionalProperties":false},{"type":"null"}]},"choices":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":120}}},"classEquipment":{"type":"integer","minimum":0,"maximum":9007199254740991},"backgroundEquipment":{"type":"integer","minimum":0,"maximum":9007199254740991},"equipmentChoices":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":120}}},"purchases":{"maxItems":500,"type":"array","items":{"type":"object","properties":{"itemId":{"type":"string","minLength":1,"maxLength":120},"quantity":{"type":"integer","exclusiveMinimum":0,"maximum":1000}},"required":["itemId","quantity"],"additionalProperties":false}},"equipped":{"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":120}},"name":{"type":"string","maxLength":20000},"alignment":{"type":"string","maxLength":20000},"appearance":{"type":"string","maxLength":20000},"npcPresentation":{"type":"object","properties":{"publicClass":{"type":"boolean"},"publicSpecies":{"type":"boolean"},"apparentSpecies":{"type":"string","maxLength":200}},"required":["publicClass","publicSpecies"],"additionalProperties":false},"story":{"type":"string","maxLength":20000},"adjustments":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"id":{"type":"string","minLength":1,"maxLength":120},"field":{"type":"string","enum":["str","dex","con","int","wis","cha","hp","ac"]},"amount":{"type":"integer","minimum":-100,"maximum":100},"reason":{"type":"string","minLength":1,"maxLength":20000}},"required":["id","field","amount","reason"],"additionalProperties":false}},"customItems":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"spellUse":{"type":"object","properties":{"components":{"type":"string","maxLength":1000},"requiresSpellList":{"type":"boolean"},"casterLevel":{"type":"integer","minimum":1,"maximum":20},"spellId":{"type":"string","minLength":1,"maxLength":120},"level":{"type":"integer","minimum":0,"maximum":9},"charges":{"type":"integer","minimum":1,"maximum":1000},"chargeCost":{"type":"integer","minimum":1,"maximum":1000},"dc":{"type":"integer","minimum":1,"maximum":40},"attackBonus":{"type":"integer","minimum":-10,"maximum":30}},"required":["spellId","level"],"additionalProperties":false},"id":{"type":"string","minLength":1,"maxLength":120},"name":{"type":"string","maxLength":20000},"english":{"type":"string","maxLength":20000},"summary":{"type":"string","maxLength":20000},"source":{"type":"object","properties":{"pack":{"type":"string","minLength":1,"maxLength":120},"version":{"type":"string","minLength":1,"maxLength":120},"page":{"type":"integer","minimum":0,"maximum":9007199254740991},"url":{"type":"string","format":"uri"},"edition":{"type":"string","enum":["2024","custom"]},"chapter":{"type":"string","maxLength":20000},"errata":{"type":"string","maxLength":20000}},"required":["pack","version","page"],"additionalProperties":false},"aliases":{"maxItems":30,"type":"array","items":{"type":"string","maxLength":20000}},"kind":{"type":"string","enum":["weapon","armor","shield","gear","tool","pack"]},"cost":{"type":"number","minimum":0},"weight":{"type":"number","minimum":0},"category":{"type":"string","maxLength":20000},"damage":{"type":"string","maxLength":20000},"damageType":{"type":"string","maxLength":20000},"properties":{"maxItems":30,"type":"array","items":{"type":"string","maxLength":20000}},"mastery":{"type":"string","maxLength":20000},"ac":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"dexCap":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"strength":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"stealthDisadvantage":{"type":"boolean"},"contents":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"itemId":{"type":"string","minLength":1,"maxLength":120},"quantity":{"type":"integer","exclusiveMinimum":0,"maximum":1000}},"required":["itemId","quantity"],"additionalProperties":false}},"wearSlot":{"type":"string","enum":["head","cloak","armor","clothing","hands","feet","accessories"]},"holdable":{"type":"boolean"},"inventoryTag":{"type":"string","enum":["weapons","armor","consumables","tools","materials","containers","misc"]}},"required":["id","name","english","summary","source","kind","cost","weight"],"additionalProperties":false}}},"required":["classId","backgroundId","speciesId","method","scores","boosts","rolls","choices","classEquipment","backgroundEquipment","equipmentChoices","purchases","equipped","name","alignment","appearance","story","adjustments","customItems"],"additionalProperties":false},"growth":{"default":[],"maxItems":4,"type":"array","items":{"type":"object","properties":{"targetLevel":{"type":"integer","minimum":2,"maximum":5},"choices":{"type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":120},"additionalProperties":{"maxItems":100,"type":"array","items":{"type":"string","minLength":1,"maxLength":120}}},"abilityIncreases":{"type":"object","propertyNames":{"type":"string","enum":["str","dex","con","int","wis","cha"]},"additionalProperties":{"type":"integer","minimum":0,"maximum":2}},"hpMethod":{"default":"fixed","type":"string","const":"fixed"}},"required":["targetLevel","choices","abilityIncreases"],"additionalProperties":false}}},"required":["build"],"additionalProperties":false},"type":{"default":"ordinary","type":"string","enum":["ordinary","important"]},"side":{"default":"enemy","type":"string","enum":["party","enemy","neutral"]},"hidden":{"default":false,"type":"boolean"},"description":{"default":"","type":"string","maxLength":2000},"personality":{"default":"谨慎、简洁","type":"string","maxLength":2000},"persona":{"type":"object","properties":{"version":{"type":"number","const":1},"public":{"type":"object","properties":{"situation":{"default":"","type":"string","maxLength":12000},"desire":{"default":"","type":"string","maxLength":12000},"attachment":{"default":"","type":"string","maxLength":12000},"contradiction":{"default":"","type":"string","maxLength":12000},"relationships":{"default":"","type":"string","maxLength":12000},"boundaries":{"default":"","type":"string","maxLength":12000},"voice":{"default":"","type":"string","maxLength":12000},"pressure":{"default":"","type":"string","maxLength":12000}},"additionalProperties":false},"self":{"default":[],"maxItems":100,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","minLength":1,"maxLength":120},"kind":{"type":"string","enum":["fact","hearsay","misbelief","lie","goal"]},"text":{"default":"","type":"string","maxLength":12000},"source":{"default":"","type":"string","maxLength":12000}},"required":["key","kind"],"additionalProperties":false}},"relations":{"default":[],"maxItems":100,"type":"array","items":{"type":"object","properties":{"target":{"type":"string","minLength":1,"maxLength":200},"ref":{"default":"","type":"string","maxLength":120},"kind":{"default":"","type":"string","maxLength":200},"reason":{"default":"","type":"string","maxLength":12000},"change":{"default":"","type":"string","maxLength":12000},"visibility":{"default":"self","type":"string","enum":["public","self","director"]}},"required":["target"],"additionalProperties":false}},"director":{"default":"","type":"string","maxLength":12000},"summary":{"default":"","type":"string","maxLength":12000},"summaryBasis":{"default":"","type":"string","maxLength":120},"scenarios":{"default":[],"maxItems":3,"type":"array","items":{"type":"object","properties":{"kind":{"type":"string","enum":["help","offense","threat"]},"response":{"default":"","type":"string","maxLength":12000}},"required":["kind"],"additionalProperties":false}}},"required":["version","public"],"additionalProperties":false},"publicSpeechStyle":{"type":"string","maxLength":2000},"knowledgeProfile":{"type":"object","properties":{"enabled":{"type":"boolean"},"factionId":{"anyOf":[{"type":"string","minLength":1,"maxLength":160},{"type":"null"}]},"membership":{"type":"string","enum":["direct","associated"]},"hiddenMembership":{"type":"boolean"},"backgroundBias":{"type":"integer","minimum":-100,"maximum":100},"lockedAttitude":{"anyOf":[{"type":"string","enum":["friendly","indifferent","hostile"]},{"type":"null"}]},"lockReason":{"type":"string","maxLength":4000},"templateIds":{"maxItems":30,"type":"array","items":{"type":"string","minLength":1,"maxLength":160}}},"required":["enabled","factionId","membership","hiddenMembership","backgroundBias","lockedAttitude","lockReason","templateIds"],"additionalProperties":false},"gmDesign":{"type":"object","properties":{"role":{"default":"","type":"string","maxLength":2000},"motivation":{"default":"","type":"string","maxLength":2000},"joinConditions":{"default":"","type":"string","maxLength":2000},"leaveConditions":{"default":"","type":"string","maxLength":2000},"personalGoal":{"default":"","type":"string","maxLength":2000},"alternatives":{"default":"","type":"string","maxLength":2000}},"additionalProperties":false},"knowledge":{"default":"","type":"string","maxLength":2000},"secret":{"default":"","type":"string","maxLength":2000},"dialogue":{"default":"","type":"string","maxLength":2000},"fixedReplies":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"},"text":{"type":"string","minLength":1,"maxLength":2000},"localized":{"type":"object","properties":{"zh-CN":{"type":"string","maxLength":2000},"en":{"type":"string","maxLength":2000}},"additionalProperties":false}},"required":["key","text"],"additionalProperties":false}},"fixedReplyMode":{"type":"string","enum":["end","loop"]},"fixedReplyEnd":{"type":"string","maxLength":2000},"fixedReplyEndLocales":{"type":"object","properties":{"zh-CN":{"type":"string","maxLength":2000},"en":{"type":"string","maxLength":2000}},"additionalProperties":false},"importanceRole":{"type":"string","enum":["resident","companion"]},"consumables":{"maxItems":30,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"},"itemId":{"type":"string","minLength":1,"maxLength":120},"quantity":{"type":"integer","minimum":1,"maximum":999}},"required":["key","itemId","quantity"],"additionalProperties":false}}},"required":["key","name","scene","x","y"],"additionalProperties":false}},"arrivals":{"default":[],"maxItems":50,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"},"scene":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"},"name":{"type":"string","minLength":1,"maxLength":2000},"npcs":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"}},"manualReason":{"type":"string","maxLength":2000},"battleMode":{"default":"none","type":"string","enum":["none","start","reinforce"]},"intro":{"default":"","type":"string","maxLength":2000}},"required":["key","scene","name","npcs"],"additionalProperties":false}},"battles":{"default":[],"maxItems":100,"type":"array","items":{"type":"object","properties":{"key":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"},"scene":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"},"name":{"type":"string","minLength":1,"maxLength":2000},"npcs":{"minItems":1,"maxItems":40,"type":"array","items":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"}},"practical":{"type":"object","properties":{"enabled":{"type":"boolean"},"autoStart":{"type":"boolean"},"finish":{"type":"string","enum":["manual","enemy-unconscious","enemy-dead"]},"entry":{"maxItems":100,"type":"array","items":{"type":"object","properties":{"npcId":{"type":"string","minLength":1,"maxLength":120},"mode":{"type":"string","enum":["fixed","judge","exclude"]},"allowedSides":{"minItems":1,"maxItems":3,"type":"array","items":{"type":"string","enum":["party","enemy","neutral"]}}},"required":["npcId","mode","allowedSides"],"additionalProperties":false}}},"required":["enabled","autoStart","finish"],"additionalProperties":false},"intro":{"default":"","type":"string","maxLength":2000}},"required":["key","scene","name","npcs"],"additionalProperties":false}},"broadcasts":{"default":[],"maxItems":200,"type":"array","items":{"type":"object","properties":{"title":{"type":"string","minLength":1,"maxLength":120},"text":{"type":"string","minLength":1,"maxLength":2000},"scene":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"},"point":{"type":"string","pattern":"^[a-z][a-z0-9-]{0,39}$"},"audience":{"default":"public","type":"string","enum":["public","gm"]},"trigger":{"default":"manual","type":"string","enum":["story","scene","point","manual"]},"result":{"default":"any","type":"string","enum":["any","success","failure"]}},"required":["title","text"],"additionalProperties":false}}},"required":["format","version","title","level","players","start","scenes","npcs"],"additionalProperties":false}
