Harbor Parcel operations asks for a deterministic incident summary from fictional logs. Each line contains a timestamp, severity, service, and duration. Done means format and time validation precede filtering, error counts and maxima reconcile, and the report states how many malformed lines were rejected.
The operations team at fictional Harbor Parcel needs an incident summary from several internal services. The incoming log lines look structured, but some contain extra fields, invalid dates, or timestamps without offsets. You will build a parser that rejects those records before counting service errors.
Your code carries forward through each step. The output first proves the fields were read correctly, then adds UTC normalization, an error-only view, service counts, and a slowest-error measure. The final report includes rejected records separately from valid records removed by the severity filter. A healthy INFO record isn't bad input. The tests include duplicate errors, zero-duration events, empty files, and an offset that crosses midnight.