UPDATE 4/8/19-Apparently I missed that “forced” in the question meant that each side only has one legal move. This makes my answer null and void. But it if it weren’t for that, then I would hold the answer. Due to having spent time on this, I shall not delete this answer though.
UPDATE: I believe that I have found the optimal game of 18 half moves by using a completely different strategy! Take a look at this wonderful game!
[FEN "4bk1K/qqqqqqnQ/5BQq/4q1Q1/3Q2Q1/2q3Q1/6Q1/Q3R1Q1 w - - 0 1"]
1.Bxg7+ Qfxg7+ 2.Qxg7+ Q7xg7+ 3.Qxg7+ Qexg7+ 4.Qgxg7+ Qdxg7+ 5.Qgxg7+ Qhxg7+ 6.Qgxg7+ Qxg7+ 7.Qhxg7+ Qxg7+ 8.Qgxg7+ Qxg7+ 9.Qxg7+ Qxg7+ 10.Qxg7#
Ignoring white’s first move, the rest of the game truly is forced until checkmate occurs.
Some Proof That This Is Optimal/Legal: This game has 18 quees in it, meaning thst all 16 pawns promted. To get 16 pawns, 8 captures. There are 12 pieces available for this other than the queens (and kings obviously.) This will leave behind a total of 20 checking pieces (kings don’t count of course.)
In my game’s position, we see 18 queens, meaning that 8/12 captures have taken place. We can see the remaining 4 left. It is not too hard to rearrange the pawn capturing order in order to get thr final result that you want.
The queens are placed in the best possible way so that checking occurs in 3 directions. Kings can really be checkmated efficiently in these scenarios on or near the corners.
The four remaning pieces are perfectly used: two to start the chain reaction and two to trap the black king for the checkmate.
I’m not totally sure if this is proof that my game is optimal, but it is a start at the least.
Seeing how original answer was cooked, I decided to take a look to see if I could improve the checkmarked answer by Noam D. Elkins. Credit to him of course for making the original position.
I found that I could add in a white knight, and consequently, a black rook as well. Thus I was able to bump up the record to 16 half-moves. Correct me if I’m wrong please, either in count or this being forced.
[FEN "3b3k/qqqqq3/rrr3NK/4N2R/5N1Q/7Q/B6Q/7R b - - 0 1"]
1...Rxg6+ 2.Nexg6+ Rxg6+ 3.Nxg6+ Rxg6+ 4.Kxg6+ Qh7+ 5.Rxh7+ Qxh7+ 6.Qxh7+ Qxh7+ 7.Qxh7+ Qxh7+ 8.Qxh7+ Qxh7+ 9.Rxh7#