This was just a quick shot at learning something new, inspired by a video from Coder Space on doing the same in Python. You should check it out as they actually explain what's going on.
Also tried to incorporate The Composable Architecture by the lovely people over at Point Free.
Includes the original Doom shareware WAD file to get started. I think that's ok? Let me know if it's a no-no.