Fixed custom fields depending on posttype/category

WordPress by default has custom fields aka “post meta” but apart from the UI you’ve already mentioned (“the postauthor has to declare the keys himself while creating a post”) there is no UI functionality offered from core. You’ll need a plugin for this.

Here is a nice comparison of custom fields plugins (Source: https://comparewp.org/)