Okay, my last attempt! This must be annoying, I'm sorry.
First, the variables $firstname and $lastname have to be set/created somewhere so that the variables actually have a value, even if it's "".
(set: $firstname to "", $lastname to "")
Then on the passage where the player inputs their name, I tried to figure out how to force the player to do so. Allowing the player only to continue once they hit those "Confirm" buttons.
My solution now was to turn [that was that.] into a named hook.
Then I created an (even:) that checks whether $lastname and $firstname have the value "" or not.
Once both variables have a value that is not "", the named hook gets replaced with a passage link.
Meaning the player can only continue once both names have been set.
See below:
...but when you'd asked if maybe a mistake had been made, the man at the desk had said it didn't matter, and [that was that.]<goto|
(event: when ($firstname is not "") and ($lastname is not ""))[(replace: ?goto)[[[that was that.->prologue_6 start]]]]