For this game I worked in the dialogue and save system. We used articy:draft 3 to manage all the dialogues that could happen in the game. This include dialogues, cutscenes with dialogues, videos, decision making, etc. Using articy templates we could accommodate for all situations that arised during development. I created a base class that would get called whenever a defined template was called or a certain condition was met so that class would take control of the articy player.
I really liked how that system turned out, it was very flexible and as I mentioned before some other wild requirements appeared but it was just a matter of creating a new class and adding that to the master controller.
The save system works alongside the system mentioned above but also uses the events from articy global variables using its namespace. When loading the game I reset all the global variables and jump to the last save point in articy which is also a template. This template contains information about the current spawn position for the player.