Task 2's version called occurrenceId twice with identical arguments, which any pure function satisfies — occurrenceId never takes a title, so it could not fail the thing it claimed to pin. Task 5 passes the whole rule into asOccurrenceEvent, so a rename is a real input there and the assertion has something to bite on. Found by the Task 2 review. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>