Covers the progress-callback wrapper: events pass straight through, a missing callback is a silent no-op, a throwing callback is logged and swallowed without stopping later events, and the log line names the engine when one is given.

## Before writing SPEC.md files

Read https://raw.githubusercontent.com/brillout/sdd/refs/heads/main/sdd.md
