Files
osmWorkflow/.trellis/tasks/08-26-rc-p5a-zip-export/prd.md

1.7 KiB
Raw Blame History

Web 导出原生道路 ZIP 包

Goal

让 road-compiler Web/CLI 以 root-flat native-road-package/v1.1 ZIP 导出人工编辑后的道路包。

Requirements

  • 从 Web 当前编辑状态导出完整道路包而不是源代码、npm 包或仅 overrides。
  • ZIP 根直接包含 manifest.json,并包含全部 manifest 声明的 layers/<source>.geojsoncompiled.jsontraffic-signals.json 和 preview 所需的 signal / diagnostics 文档。
  • manifest.jsoncontract 保持 native-road-package/v1.1;新增可选 generator 元数据 记录应用版本和 revision但不得让宿主依赖该版本。
  • Web 提供用户可见的下载操作CLI 提供等价、可测试的 ZIP 导出入口。
  • ZIP 条目顺序、JSON 序列化和压缩时间戳必须确定性,重复导出未编辑内容的文件 hash 一致。

Acceptance Criteria

  • 从 Web 编辑后的区域可下载一个 root-flat ZIP且无需宿主或 npm 发布。
  • CLI fixture 导出 ZIP 后,解压内容通过 compiler 的 validatePublishedLayers()
  • ZIP 具有恰好一份 manifest 声明的 layer source无额外 compiler source / overrides 文件。
  • 两个有效区域导出的 ZIP 可被 p5b 导入并完成 Blender/Cesium/preview 构建。
  • 不修改 compiled.json 与 v1.1 manifest 的既有渲染语义。

Out of Scope

  • 远程存储、上传、项目历史或多用户协作。
  • 修改道路编辑器交互、几何算法或 manifest 主版本。

Key Decisions

  • ZIP 是单个标准交付物,根目录平铺 package 文件,不包裹 area-id 顶层目录。
  • ZIP 面向宿主消费,只携带已编译渲染/预览数据编辑源、OSM 与 overrides 留在 road-compiler 项目中,不泄露为宿主依赖。