I looked at the popular IF engines and they all felt very focused on story and branches and not really on if you need game systems and a lot of state.
If you need complex game states and world models and object simulations and relational stuff, then you definitely want to do parser based interactive fiction instead of hypertext interactive fiction, the latter of which is what it sounds like you looked at.
Hypertext interactive fiction isn't really so much a game as a choose your own adventure approach to traditional fiction, whereas parser-based interactive fiction is a lot like a text-based immersive sim like deus ex or system shock — the two major engines have very powerful and in-depth relational world models that can do a lot of impressive things such as simulating the expansion of a gas and its attenuation through rooms or fluid simulation or tying arbitrary things together with ropes. Both of them automatically come with very complete and powerful systems for doing all the stuff you listed by default.
The two parser IF systems I'm talking about are Inform 7 and TADS 3. I would personally recommend the latter if you already know how to program, though. Inform is interesting, especially in concept, but it has a huge amount of very serious drawbacks due to its extremely static nature (no dynamic allocation, no creating lists on the fly and appending to them, etc), lack of general programming constructs, and "natural language" syntax, whereas TADS 3 is actually a very excellent little language that's got all the modern amenities and is just a joy to write games in, and has a simply shockingly powerful standard library / world model, a far more deep and extensive one than Inform has even with extensions. It often feel a like everything I could possibly want to model in TADS 3 has either already been done, or is a trivial combination of things. Additionally, TADS 3's documentation is so much better than Inform's I can't even begin to describe it. TADS 3 feels like Ruby/Smalltalk had a baby with C and it specialized in IF.
Also, try the adv3Lite library instead of the default standard library — the name is a bit of a misnomer, as it's just as complete as the default one, it just has superior design sensibilities and a huge host of new features stolen from Inform. Adv3Lite adds basically everything thay was good about Inform 7 to TADS 3.
Don't let the fact that Inform 7 seems more active or gets more fanfare deter you from TADS. There's a very active little community of tads users that are very eager to help and will answer almost any question you have immediately, and the documentation is so astoundingly excellent I've basically never felt the need for a search engine because everything I want is in one of the three 600 page manuals on different aspects of the language and standard library or in the standard library reference manual. also although tads three the language hasn't been updated or changed since 2012 the compiler is updated and improved regularly.
I’m excited again to know there’s choices out there for this kind of thing.
Here's a list of worldsim-heavy, huge parser IF games I've compiled myself: https://ifdb.org/playlist?id=5wvcywn58ojmsxqi&type=wishlist
Here's the TADS 3 website: https://tads.org/
Here's the adv3Lite and TADS 3 documentation: https://faroutscience.com/adv3lite_docs/
An explanation of adv3lite: https://users.ox.ac.uk/~manc0049/TADSGuide/adv3Lite.htm
The TADS 3 compiler: https://github.com/realnc/frobtads
My TADS 3 mode for Emacs (has most of the features of the VS Code one, despite not having an LSP, since the VSC one has very simple auto completion): https://github.com/alexispurslane/tads3-mode
The TADS 3 mode for VS Code: https://github.com/toerob/vscode-tads3tools
IF Development Forums (very active and friendly, a few TADS 3 people around, including me, I'm a new regular): https://intfiction.org
though for a standalone game a full MUD may a bit much since they are designed for large words with hundreds or thousands of players. but take a look at the available game engines and see which ones come with decent documentation for you to get started easily.
some of the issues to consider are:
do you want to potentially commercialize the game? that rules out some engines (most notably some LPmuds) because their license only allows noncommercial use.
then you have to consider the size of your future game. some MUDs are huge and their code has a long and checkered history. while they are more likely to be battle tested, i don't know if a huge engine would be a good start for a new game because it would prescribe a lot of game mechanics already, and may not be so easy to get started with.
personally i would rather opt for a small engine that doesn't have more than basic game mechanics so that you are free to develop your own. but those are most certainly not battle tested, and there are probably quite a few that were started but are now abandoned.
finding a small, active and tested engine may not even be possible.
i would recommend to actually play and build with a couple of MUDs that are based on potentially interesting engines to familiarize yourself with how it works and see if that is something that you'd be comfortable to work with, and then take it from there.