What's Changed
- Chore: add Track D mini-library package skeleton by @nicholaskarlson in #297
- Chore: Track D template source-of-truth + zip build guard by @nicholaskarlson in #298
- Test: Track D template ZIP drift guard cross-platform by @nicholaskarlson in #299
- Chore: add make target to rebuild Track D workbook ZIP by @nicholaskarlson in #300
- Refactor: Track D reporting style + mpl compat in pystatsv1.trackd by @nicholaskarlson in #301
- Feat: Track D mini-library: CSV I/O helper by @nicholaskarlson in #302
- Feat: Track D mini-library: schema primitives (keep shims) by @nicholaskarlson in #303
- Test: guard Track D business schema shims by @nicholaskarlson in #304
- Feat: Track D mini-library: ETL helpers by @nicholaskarlson in #305
- Track D: template _business_etl shim + drift-guard zip by @nicholaskarlson in #306
- Track D: extract recon into package + shims + drift-guard zip by @nicholaskarlson in #307
- Track D: export recon helpers from trackd package by @nicholaskarlson in #308
- Track D: standardize repo-level business shims by @nicholaskarlson in #309
- Track D: explicit shims for mpl compat + reporting style by @nicholaskarlson in #310
- Track D: add dataset loaders by @nicholaskarlson in #311
- Track D: refactor Ch06 + Ch08 to use shared loaders by @nicholaskarlson in #312
- PR-2.1: Track D dataset profiles + validate CLI by @nicholaskarlson in #313
- PR-2.2: Track D BYOD init (templates from contracts) by @nicholaskarlson in #314
- PR-2.3a: Track D BYOD normalize skeleton (Sheets-first) by @nicholaskarlson in #315
- PR-2.3b: Track D BYOD adapter interface (passthrough) by @nicholaskarlson in #316
- Console: replace emoji status markers with ASCII by @nicholaskarlson in #317
- Console: add status_ok/status_warn helpers by @nicholaskarlson in #318
- TrackD BYOD: add core_gl adapter v1 by @nicholaskarlson in #319
- TrackD BYOD: add gnucash_gl adapter v1 by @nicholaskarlson in #320
- Docs: Track D BYOD GnuCash tutorial pack by @nicholaskarlson in #321
- Track D: BYOD GnuCash demo example + smoke test by @nicholaskarlson in #322
- Track D: BYOD daily totals helper + PyPI-friendly docs by @nicholaskarlson in #323
Full Changelog: v0.22.3...v0.22.4