The main structure of Umbra relies on a group of variables (one for each path/storyline) that are set to "false" or "true".
All variables are set to false at the beginning of the game. When a player finishes a path- in the one pictured below, access to the last scene requires input of a password—they are taken to a new page, which sets the variable for their path to true.
I used an if statement requiring all variables to be true to get through the door to the final storyline.
You can do a ton of other things with variables and gates in Twine. For example: you can randomize which passage a link takes the reader by modifying your brackets. "The time machine launches into the [[glowing vortex|either("12000 BC","The Future","2AM Yesterday")]]."" Something else you can do with passages and links: change the content of a passage based on how many times a player has visited it. There's a ton of interesting stuff online about other built in functions of Twine.
To be continued: I might post answers to Umbra here sometime in the future.