The fix was the bug
The symptom was precise enough to be useful straight away: press the key, hear the card’s sound, see nothing, and the accept key does nothing either. Sound before picture is a clue, because the sound plays before the card is mounted on screen.
Mounting creates a canvas with a name, hangs it off the root of the HUD, and only then tells the card to build itself. The build routine swept the HUD root for anything already carrying that name, and by then the thing carrying that name was the canvas it had just been handed. The card wiped itself out while it was being drawn. The accept key did nothing because the tree of widgets that should have answered it was gone.
Here is the part worth keeping. That sweep had been in the file for a while and had never hurt anyone, because it was pointed at the wrong root: it searched inside the newly created card, never found anything, and did nothing. It was dead code. A week earlier we pointed it at the correct root, called that a fix, and turned harmless dead code into a suicide.
Three more of our instruments, the checks and reports we read to know what the game is doing, turned out to be lying in the same stretch of work. The one that hurt most: the check we used to decide whether a vehicle had been created returns true for a vehicle that was never built. Measured directly in the console, the identifier came back valid, and looking the vehicle up by that same identifier returned nothing. Every conclusion we had drawn about units the engine refuses was resting on that check.
Another one cost us three builds. The report that tells us whether the tyre tuning took was comparing the copy against itself, so it printed zero out of sixteen for tuning that had been applied correctly. A check that cannot tell “failed” from “already done” is not a check.
The method lesson is the cheap one, and we keep paying full price for it. Before fixing a path, count in the log how many times it actually ran. Before making a sweep work, look at what is alive in the tree at the moment it runs. Nobody did either: not us, and not the review that asked for the change.