Inform 6/7 is the most popular of the parser-based languages, with v6 being closer to a traditional programming language and v7 being a fascinating, natural-language based programming language that is powerful but can be difficult for those steeped in traditional programming languages to wrap their head around. Twine is the most popular choice-based system, supporting three languages that range from basically Javascript to no-code.
Honorable mention to both 1) Ink which is my personal favorite choice-based IF language and integrates well with Unity but doesn't have a great default presentation and 2) ChoiceScript, which is frustratingly limited (by design) but supports an incredible ecosystem of pro, semi-pro and amateur game writers (at ChoiceOfGames.com).
Ink has an IDE that exports to web, but there are also libraries for C# and JS that can be embedded in other programs, a Unity plugin and a VSCode language server.
inkJam 2021 happened recently: https://itch.io/jam/inkjam-2021
Writing your own is, of course, an option, but don't underestimate the task. A "simple" POC is usually very easy (my son and I did one in an afternoon). But building an engine with block-able exists, recursive containment, item interaction (eg. "turn bolt with wrench" and the custom functions they need), can be a much larger effort.
Second step can be ASCII style graphics added to it.
Then you can do already something like The Hobbit with 2D graphical backgrounds.
I don't think you need Unity or the like for any of it.
It would probably be akin to writing a shell interpreter for the input at least.
Nah, Inform6 and the library gives you all: the parser, interpreter, prompt, verbos and objects. And it's free as in freedom.
A relatively recent 'awesome' repo for z-machine is here:
https://github.com/cschweda/awesome-z-machine
And the current implementation of zilf is here: