bd17aed169
Lay groundwork for Phase 3 of the workspace split (improvise-8zh): a new `crates/improvise-io/` sub-crate that will house the persistence and import layers once the files move in the next commit. Only scaffolding here: - New `crates/improvise-io/Cargo.toml` declares deps on improvise-core, improvise-formula, and the external crates persistence+import already use: anyhow, chrono, csv, flate2, indexmap, pest, pest_derive, serde, serde_json. Dev-deps: pest_meta, proptest, tempfile. - New `crates/improvise-io/src/lib.rs` re-exports the core modules under their conventional names (`format`, `model`, `view`, `workbook`, `formula`) so in the next commit the moved code's `crate::model::*`, `crate::view::*`, `crate::workbook::*`, `crate::format::*`, and `crate::formula::*` paths resolve unchanged. - Root `Cargo.toml` adds the new crate to workspace members and the main crate's `[dependencies]`, ready to receive the move. No source files change yet; cargo check --workspace still compiles as before. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>