Even more so it reminds of Dialog [0], a Prolog specialized for interactive fiction and sort of the Z-Machine object system.
There's also some cross-over with how (parts of) Inform 7 works under the hood.
[0] https://linusakesson.net/dialog/docs/index.html