# 开发与验收计划

| 提交 | 模块 | 验收重点 |
|---|---|---|
| 1 | 工程初始化 | 许可证、范围、版本、检查/构建/测试 CI |
| 2 | OTIO 基线 | 固定上游版本，正常/非法/不支持样例，可重复 Python oracle |
| 3 | time | value/rate、秒数、帧率转换、显式舍入、非法输入与数值边界 |
| 4 | range | 半开区间、交集、裁剪 |
| 5 | model | Timeline/Stack/Track/Clip/Gap/media |
| 6 | reader | OTIO JSON 读取、路径错误、schema 限制 |
| 7 | writer | 语义往返、官方读取验证 |
| 8 | timeline | 轨道布局、位置查询、总时长 |
| 9 | validate | 结构化诊断，未知与错误区分 |
| 10 | edit | 拆分/裁剪，不修改原始工程 |
| 11 | CLI | 文件操作、退出码、端到端测试 |
| 12 | demo | 导入、查看、编辑、下载 |
| 13 | regression | JS/Native 一致性、输入限制 |
| 14 | release | 文档、兼容表、Mooncakes 与独立安装验证 |

核心库不依赖文件系统或浏览器；平台 IO 留给适配层。
source_range（素材内位置）与轨道 placement（剪辑位置）分开计算。
首版不支持转场、变速效果和复杂嵌套；遇到不支持的语义不得静默丢弃。
0.1.1 起实现方式调整为：无法计算的节点保留原文、按分档策略处理，只有语义无法确定时才报错并拒绝计算。
时间保持 Double value/rate 表示，帧率转换不偷偷取整；舍入由调用者选择。

每步执行格式、检查、构建和已有测试；增加真实功能时增加相应行为测试。
发布前重新查重并记录相近库的功能边界，补充真实工程验证。
前三次提交不代表完整比赛验收已完成。
