Oh and they've added a very political clause: the government can activate conscription WITHOUT a parliament vote. So most political parties who have voted in favor of conscription want to be able to claim "it wasn't us, it was Merz" (ie. CDU). In reality CSU and SPD have voted to effectively conscript German men between 18 and 45.
In other words, Germany expects to be in open war in a matter of months to years. Like every country before them they've decided young men are cheaper than actually investing in military equipment (they're investing in military equipment, but they just won't have it in that time period)
This probably means that if you can get out, get out, because it's not like being 46 years old will protect you from the impact of that, and yes it's not clear what the timing is going to be, and they're not being very forward about what the reason is for conscription.
So that's why 45. Because the existing conscription law (1954 + 2025) allows for conscripting every German male between 18 and 45.