Synthetic event batches; original bytes retained, no automatic repair
events.jsonl: blocked; source=20; accepted=7; quarantined=13; training_file=None
valid-events.jsonl: ready; source=8; accepted=8; quarantined=0; training_file=accepted.jsonl
The valid fixture is a separate reference batch, not the dirty batch with bad rows silently removed.
