20 种类型、6 个公共字段、398 个专有字段,用来驱动界面表单。 类型清单取自 listener/parse.go 的 ParseListener switch 而不是文件名: listener/inbound/ 下 24 个非测试文件里有 11 个只是被内嵌的选项组(TLS 伪装、多路复用这类), 不能单独当 type 写;hysteria2-realm 的类型名带中划线而文件名带下划线,靠文件名猜会错。
源码里直接写 NUL 字节会让 git 把整个文件判定成二进制,此后再也看不到这个文件的 diff。 用 \u0000 转义,运行时的值不变。
核心是确认「改配置而不弄乱文件」这件事成立:新增一路入站之后,其余 52 行逐字节不变。 搬进来的改写引擎用默认输出参数时会重排整个文件——行尾注释的对齐空格消失、流式数组被加上内边距—— 连根本没改动的段落也一起波及。不修的话「改一处只动一处」这个承诺直接落空,所以关掉了它的自动排版, 并在写回之后补了一步逐行还原。