I see another possible solution:
The deck code program tests, if there is a mark code in the ending of the deck code.
If yes, the deck gets this mark, regardless of the deck mark=... part.
If no, it tests, if there´s a deck mark= ... part.
If this doesn´t exist, you get a ? ? ? mark.
So the old and the new system works. If you chose the wrong mark number, you see, that it is wrong.
You wouldn´t immediately see this, if "deck mark_..." got priority, or do you remember the mark codes ?