If you have (your own) custom post type, you can still define the structured schema markup guided by Schema.org. You just need to map/define the fields with the guideline.
Default WordPress post type has the Post Title and Post Body only- which has nothing much to do with the Schema actually, I guess!
I understand how to do it manually. It is very difficult and time-consuming to enter in structured data to a WordPress website manually. The best option is to use a plugin.
The issue with using a plugins is that if you want to switch plugins for any reason, the data is lost and must be reentered. That locks a user into a specific plugin or it makes the time it takes to update the website very time consuming.
Maybe this can be implemented as a custom block?