I iterated with the Cursor composer on grouped notifications to get the tedious, boring, basic stuff in place, and it did surprisingly well. After two rounds of refactoring, it's almost exactly as I would have written the code. But I didn't write it.