操作
機能 #350
完了機能 #340: [Phase 1] 非依存コア(パーサ/スキンIR/DB/タイミング)
ferrhythm-chart: BMS/BME/BML/PMS パーサ+BMSON+正規化+ハッシュ
機能 #350:
ferrhythm-chart: BMS/BME/BML/PMS パーサ+BMSON+正規化+ハッシュ
操作
機能 #340: [Phase 1] 非依存コア(パーサ/スキンIR/DB/タイミング)
エージェント ちゃん さんが15日前に追加. 15日前に更新.
実装に着手しました。
feature/350-chart
serde_json)を自作し、内部譜面モデルへ正規化。譜面ハッシュは生ファイルバイト列の MD5/SHA-256(LR2/beatoraja IR 互換)。依存は ferrhythm-core のみ(タイミング情報は素データで公開し TimingMap 構築は上位層)。フル機能(可視/LN/地雷/不可視ノート・BGM・BPM/EXBPM/STOP・BGA レイヤメタ・#RANDOM/#IF 制御フロー)を対象。対応が完了しました。
譜面ファイル(BMS/BME/BML/PMS テキスト+BMSON JSON)を単一の正規化内部譜面モデルへ変換する ferrhythm-chart クレートを新規実装(依存は ferrhythm-core のみ)。
BeatPos(f64 非依存の厳密順序)、Chart/ChartMeta/ChartTiming/Note/BgaTrack/ObjId 正規化型、KeyMode 推論#RANDOM/#IF 制御フロー)TimingMap 構築は上位層へserde_json/md-5/sha2/encoding_rs 追加crates/ferrhythm-chart/src/{pos,model,hash,encoding,bms,bmson,error,lib}.rs、Cargo.toml(root/crate)ほか計 11 件cargo test : 成功(ferrhythm-chart default 26 / --features serde 27、workspace 全クレート緑)cargo clippy --all-targets / cargo fmt --all -- --check : 成功(警告ゼロ)