docs: update documentation for normalized config and improve command

- Add improve command to all command tables and usage sections
- Add normalized_config field to BestCarRecord struct documentation
- Update CarCounts.by_rid type from String to (String, String)
- Update CarCounts.guid_to_rid type to HashMap<String, HashSet<(String, String)>>
- Add owned_configs field to MyCarsData and CarCounts docs
- Add normalize_to_final_build() to API docs
- Update CSV format examples to include FinalBuild column
- Update my_cars.json structure with engineMajor/weightMajor/chassisMajor
- Update timing file example with v2c_ version prefix
- Add version prefix stripping to data transformation docs
- Update CHANGELOG.md with Unreleased section
- Fix compare_records description to include normalized config sorting
This commit is contained in:
Jan-Peter von Hunnius 2026-05-11 16:58:01 +02:00
parent bf21d3d1f6
commit 2b0602d564
6 changed files with 204 additions and 84 deletions

View file

@ -7,6 +7,31 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## [Unreleased]
### Added
- New `improve` command that generates `improve.csv` — owned cars not yet at a final tune build, sorted by track count
- `normalized_config` field on `BestCarRecord` — maps any tune config to its closest final build (323/233/332)
- `normalize_to_final_build()` function — normalizes tune configs by incrementing the smallest digit until sum reaches 8
- `owned_configs` field on `MyCarsData` — extracts actual player tune config (engineMajor/weightMajor/chassisMajor) from `my_cars.json`
- `owned_configs` field on `CarCounts` — passes player config data through to output functions
- `atomic_write()` helper — writes to a temporary file first, then renames on success (no partial CSV files)
- `empty_my_data()` test helper — creates an empty owned configs map for tests
- Version prefix stripping (`v2c_`/`v1c_`) for config keys at parse time
- `FinalBuild` column in `best.csv`, `very_best.csv`, `wishlist.csv`, `add.csv`, `remove.csv` output files
- Dedup check in `update_best_car` now considers `normalized_config` to prevent same car+config duplicates
### Changed
- `CarCounts.by_rid` key changed from `String` to `(String, String)` for per-config tracking
- `CarCounts.guid_to_rid` changed from `HashMap<String, String>` to `HashMap<String, HashSet<(String, String)>>`
- `compute_car_counts()` now accepts `owned_configs` parameter
- `compare_records()` now sorts by normalized config as secondary key (after RQ, before brand)
- `load_my_cars_data()` now extracts tune config data for locked cards
- CSV output files now include `FinalBuild` column showing the normalized config
- `update_best_car()` tie detection now checks both `car_rid` and `normalized_config`
- Applied `rustfmt` formatting across the entire codebase
### Removed
- `plans/code-review-v2.md` (completed action items)
## [0.3.0] - 2026-05-07
### Added