Control Property assignment options?

I’m wondering if there’s a more overt way to control the options that show up in a property assignment window. In the manner of PostEditPropertyChange, some sort of callback to run valid options through a custom predicate to narrow the range of acceptable assignments. Example:

MonsterActor has a property labeled “DefaultWeapon” which accepts a class reference. The property on MonsterActor is typed to WeaponActor, but I want to constrain what weapon actors are valid to assign, in this case to only those that have certain data (such as a flag labeled “Demonic” turned on, or whatever).

Is this a possible thing?

You can customize the details panel. Details Panel Customization | Unreal Engine Documentation

The docs are I think a bit outdated, but there are lots of examples within the editor codebase. It gives you complete control over what is exposed and how.