# PLN-001 Lab — Source-Preserving Message Normalization

Use only the supplied synthetic records. Implement `normalize(case)` in `starter.py`. Preserve source references and provenance, derive a context-scoped dedupe key, keep replay/unsupported states explicit, and never perform cross-channel identity merge.

Run `python run_checks.py`. The learner checker validates output shape and boundary safety only; expected labels and reference logic remain outside learner-publishable paths.
