In classic UI, the only option is to write some listener or JS logic to achieve this. One option I can think of is that you remove default required field validator in classic UI and write a custom JS validator to validate the fields based on the path of the page. But in this case all properties will be shown to the user but not all will be mandatory. However, it will be less complex than removing properties from the dialog.
In touch UI, you should be able to achieve this easily with custom granite render conditions. Move all the uncommon properties in a separate tab and hide/show that tab using render condition. The render condition will check the path of the page and return true or false for showing or hiding the tab.