Here are some parts of the zscript used:
Chex quest also includes four items in decorate, meaning I can't use zscript to modify them. Here's my own decorate code to get around that:
Here's a screenshot of the options menu, with toggles for four replacement categories (all on default values):

You'll notice the two that I haven't implemented multiple options for are the ones the decorate items fall under.
I'd love to get them working, but having these settings only replace *part* of the group they're for would've bothered me more than just leaving them nonfunctional for the first release. If you'd rather have the partial replacements though, all the scripting is there; it's just a simple edit to the MENUDEF lump in a wad editor of your choice.
PROGRESS UPDATE EDIT 1: I've improved the way the decorate items are replaced, allowing for extended functionality and FULL option menu support!
First, I define the flemkeys and ultragoggles in zscript:

Since zscript is handled before decorate regardless of file order, this means my versions here get parsed as the original class name and the chex quest 3 iterations get automatically renamed as duplicates. This means anything targeting any of these four items in decorate inherits from my zscript versions, and that mods utilizing zscript can now make use of these items without a decorate lump.
This alone isn't enough to replace the chex items though - since decorate is always parsed later, and the chex quest decorate items include editor ids, they spawn in maps by default instead of my zscript versions. To that end, I've improved the way my own decorate spawner dummies work:

As you can see, there are versions targeting both chex quest 3 v1.4 and v2.0; these are both included in the same file. The set that can't find anything to replace will throw errors in the console, but they can be safely ignored.
Even with all this, the decorate items still take editor number priority on a technical level, and the use of dummy actors to replace them has potential to cause esoteric issues in edge cases, so for any mods wanting to use the zscript versions directly instead I've included the following editor numbers in the MAPINFO lump (subject to change before release):
[CHANGED IN EDIT 2]
If all you want to do is place a key normally, the default editor values for them will still work.
Additionally, here's the now fully functional options menu:

Future versions might slightly adjust wording or add more granular toggles to each category, but I'm happy with the overall formatting.
PROGRESS UPDATE EDIT 2: The goalpost is in sight and the project is nearing release! There's still more to do, but ALL of the core functionality of this mod is implemented!
So, for starters, the target I set for this update: LOCKDEFS. Shockingly not complete, but most of the way there! All that's left is to cover a few edge cases; I want to standardize as many combo locks as reasonably possible, but I won't be covering absolutely everything. The most difficult part is deciding what to include.
Secondly, and this is rather big,
I'VE INCLUDED A CUSTOM PLAYER CLASS! This now means that you can mix and match both games' weapons with no issue! Keep in mind this behavior WILL get overwritten by any other mod with a custom playerclass. This is intended behavior in zscript and not something that can be changed without patches for specific mods, which is beyond the scope of the project.
The player class's name and starting weapons do change depending on if the base game is doom or chex quest - this was accomplished via lump filtering, for which I have migrated from a .wad to a .pk3 workspace. Looking back, this should have been a pk3 from the start. They're just an easier format to manage in development.
Thirdly, I mentioned a surprise in the comment for this update last night. I lied. There's actually TWO surprises. Firstly, when making the lockdefs, I found that zdoom's default doom locks have partial support for the heretic keys (strangely referred to on the wiki as "prism keys", a name which I kept for clarity), so I have extended that to full support with unique lock numbers AND editor numbers! More detail on this momentarily.
The second surprise is that with the move to .pk3, THIS PROJECT NOW HAS A GITHUB REPOSITORY! It's very bare-bones at the moment, but will be cleaned up in preparation for release. You can now find that in place of the missing download link in case you want to test this mod out ahead of time. (On release, I'll direct the download link to the actual release download page, and add the github page in full as a separate link.)
Now, about those prism keys. Firstly, I'm going to include screenshots of them in-game, both on the ground and in the inventory:

These screenshots obviously use their official graphics from heretic, but I won't be including those in the release build of the mod - I'll be making basic placeholder graphics as a replacement. Since these are effectively just a modder's resource, modders will be expected to include their own sprites for these keys; the placeholders exist as a fallback and reference.
Secondly, I've included custom editor numbers for these keys, and in fact for every key available here. All fucking FIFTEEN of them. (This is why the lockdefs is taking so long, by the way.) For the sake of getting this post edit out before another day has passed, I'll forego listing every number here, especially since the list will only grow in the future; You can find them instead in the code of the github page.
Note that the standard editor numbers for keycards and skull keys still work - but whether those load doom's keys or chex's keys is game-dependant, while these numbers are game-agnostic. Most maps should still use the standard editor numbers. More detail on keys, lockdefs, and editor numbers will be available in documentation on the github once it's ready.
I won't be providing any screenshots of gameplay, due to the changes this mod makes only being obvious in images when another mod is used on top of it.
Gameplay screenshots of the prism keys have been provided, with more on the way once a showcase map is ready!
(RELEASE V1 NOTE: NO PLACEHOLDER SPRITES HAVE BEEN INCLUDED. PRISM KEYS REMAIN NONFUNCTIONAL FOR NOW.)