m6 completion audit

M6完了監査

監査日: 2026-05-13

成功条件と証跡

要件証跡状態
.motion2dproj 保存saveProject がJSONと正規化PNG Data URLを書き出す完了
再読み込みhandleProjectFileloadImageAssetFromDataUrl完了
パーツ/メッシュ/リグ保存parts / meshes / rig.values / rig.keyframes を保存完了
入力設定保存settings.mouseInputEnabledcameraTracking: "not_adopted"完了
内部保存名UUID化image.assetIdimage.internalName をUUIDベースにし、image.displayName と分離完了
既存形式互換assetId / internalName がない既存 .motion2dproj は読み込み時にUUIDを補完完了
禁止データ抑止カメラ映像、音声、外部モデル、個人情報ログを保存しない完了
JSONサイズ制限読み込み時に75 MBを上限として拒否完了
スキーマ検証src/lib/projectValidation.ts で構造、バージョン、必須フィールド、パーツ、メッシュ、リグ、設定値を検証完了
テストscripts/verify-m5-m6.mjsscripts/verify-project-validation.mjs完了

.motion2dpkg について

ランタイム書き出しはMVP最小範囲から外し、.motion2dproj の保存/再読み込みをMVP完了条件とする。

.motion2dproj ZIP化について

2026-05-13時点では、.motion2dproj はJSON + PNG Data URL形式を維持する。初期仕様のZIPコンテナとの差分と移行判断は docs/project_format_decision.md に記録した。

今回ZIP化を見送った理由は、既存形式の読み込み互換を維持したまま、まず不正/過大/破損/想定外データを安全に拒否するほうが正式リリース前のリスク低減効果が高いため。ZIP化はZip Slip、ZIP爆弾、総展開サイズ、ファイル数、圧縮率、Tauri権限、依存レビューを含めてv0.2以降で扱う。