HUD 外观包格式 v1（1.4alpha9）

位置：游戏版本目录/omni-display-huds/default/。
按 F8 → HUD 外观包 → 打开 HUD 文件夹。改 hud.json 后点击重新加载。
复制 default 文件夹并改名，可以制作另一套 HUD；通过上一个/下一个选择。
只影响本机，不要求服务器管理员权限。服务器限制和座舱 HUD 总开关仍生效。

manifest.json 目前仅为作者信息，不参与图形绘制；页面显示文件夹名称。
hud.json 是 JSON，不能有注释、尾逗号。formatVersion 固定为 1。
builtin:true 保留原有动态仪表；false 隐藏原有仪表，仅显示 elements。
首次自动导出示例，之后不会覆盖你的文件。

components 可选：decoration、reticle、heading、speed、altitude、status、pitch、horizon。
字段：visible（默认true），x/y（默认0，角度偏移），scale（默认1），opacity（0～1），weight（线宽倍率），color（#RRGGBB）。
reticle/heading/speed/altitude/status/decoration 使用局部布局坐标；修改不会改变仪表数据。
horizon/pitch 是全周天世界刻度，建议只调 visible、opacity、weight、color；其 x/y/scale 会改变原有刻度角度，不建议缩放。

坐标以驾驶舱校准前方为基准，单位为度。x 正值向右，y 正值向上。建议主要装饰放在 x±45、y±35 内。不是屏幕像素，也不会随玩家转头贴在准心上。

所有元素通用字段：color（默认青色），alpha（0～255，默认160）。
line：x,y 为起点，u,v 为终点；weight 为线宽。
arc：x,y 为中心，radius 为角半径，start/end 为平面圆弧角度；weight 为线宽。
text：text 为大写英文、数字、空格、-./；x,y,size 为位置及字高，不支持中文。
rect：x,y 为左下角，width,height 为宽高，是半透明填充色块。
polygon：points 为按轮廓顺序排列的凸多边形顶点，3～16个点；用于箭头、斜切色块。建议图形保持小尺寸。

示例：
{"type":"rect","x":-34,"y":-12,"width":8,"height":24,"color":"#183D49","alpha":45}
{"type":"polygon","points":[[-1,-5],[0,-6.5],[1,-5]],"color":"#FFC17E","alpha":180}
{"type":"text","text":"OMNI","x":-4,"y":30,"size":2,"color":"#CEEAF4","alpha":200}

上限：文件256KB、512个元素，生成图形最多12000条线及12000个填充三角形。元素坐标须在±85°内。文件错误会显示元素序号和原因，并回退模组内置旧外观；不会删除或改写错误文件。

本阶段不提供 PNG 贴图、脚本和数据表达式。现有速度、高度、雷达读数继续由模组负责；数据绑定与更多动画以后再开放；1.4alpha9 已增加内置速度流线。现有锁定框外观不受外观包修改。


1.4alpha9 分层说明
新设计位于 panoramic 文件夹；旧 default 文件夹仍保留，不覆盖你编辑过的文件。按 F8 → HUD 外观包，用上下一个选择 panoramic。

每个 elements 元素可增加 layer：
vehicle（默认）：跟随载具旋转，x/y 相对于 K 校准的机头方向。
world：只跟随座舱中心移动，保持世界方向；x=0 是北，90是东，y=0为水平。
motion：朝实际运动方向，x/y 相对于速度矢量；静止时隐藏。
不填写 layer 的旧外观文件继续按 vehicle 处理。

新增 components.flow 控制速度感流线，components.velocity 控制实际运动方向标记。visible:false 或 opacity:0 可关闭；建议 velocity 仅修改颜色、透明度和线宽，修改位置或缩放会让方向提示偏离实际数据。
流线是载具相对的速度感装饰，并非真实粒子或空气流动；长度、速度随速度读数变化。圆圈加小翼的青色符号表示实际速度方向，橙色V形表示机头，两者可能分离。
雷达锁定框依然独立跟随目标；本版没有开放 target 元素、数据表达式或玩家脚本。内外层区分旋转参照，共用现有球半径及遮挡逻辑，不额外渲染世界。
