2024/01/13 DPA: "Double The Checks, Double The Fun!"

White to move.
Black has major light square weaknesses. White has a light-squared Bishop but Black's is blocked by the d Knight.
1. Bc4 threatens 2. Nf6^++# [discovered check, double-check, and checkmate]. Black has no time for 1. ... hxg5.
But that gives Black time to defend with 1. ... g6.
What about 1. Nf6+ first? The Knight on g5 prevents the King from moving to a light square and Black's own forces stop all dark square moves.
Aah, but 1. ... gxf6 gives Black the needed g7 escape.
And 1. Ne7+ allows 1. ... Bxe7, which frees up f8.
Can White still salvage the mating net? 2. Bc4+ Kf8 3. Rf1+ Nf6 4. Bd6+ Ke8 5. Bf7+ Kd7 allows the Black King too much freedom.
Maybe 1. Bc4 g6 is still OK: 2. Nf6^++ Kg7 3. Ne8#
So Black will instead play 1. ... Be7 2. Nxe7^++ Kf8 3. Ng6+ Ke8 4. Bf7#.
If Black plays 1. ... Bd6 instead, does that change anything? I don't think so: 2. Ne7 is still a double-check and Black still only has f8.
Any other Black first move besides 1. ... g6 and 1. ... Be7/d6 will lead to 2. Ne7/f6^++#.
Notice that none of Black's pieces can block the light-squared Bishop check. In particular, both Knights are on light squares, which means their next move must be to a dark square.
What about 1. ... Rh7 as a last resort? Black is up a Rook so he can afford to give up material.
No, that doesn't work either: 2. Ne7^++ Kh8 3. Ng6#.
Does Black have any better response to 1. Bc4 that will either blunt the double-check or allow escape?
Attacking the Bishop is useless since 2. Ne7 will be a double-check: you can't capture or block your way out of a double-check.

So N[either]e5, b5, and Nb6 do no good.
The KB only has e7 and d6, both of which lose.
The QB can't move.
And the QR is useless.
I think Black will play 1. ... Bd6 to tempt 2. Bxd6, which allows Black to escape with 2. ... g6 3. Nf6^++ Kg7 and now 4. Ne8+ is not checkmate due to 4. ... Rxe8.
[I was wrong: 2. Bxd6 is part of a M7, which I couldn't foresee.]
My solution was correct although Black played 1. ... g6 instead.