So, I get this is a simple game, but I was thinking about if things got more complicated.
One thing I thought you were going to do was keep an inventory of items carried. But what you’ve done is have a separate state for each location with each particular item in pocket?
I realise it’s just a cut and paste, and your method of having a “choke-point” every other decision on the tree gets round this, but it seems to me that you could cut down on the wall of text that this could easily become by having an if-object-held thing at every location (I guess using a boolean array with dimension of however many objects there are). You would only need to check those items that can solve the puzzle, so presumably only one or two ifs at a time?
Anyway - getting on with GDD for “Escape the Mad Scientist’s Laboratory”