I believe you can create new required properties, but to remove any property you must make sure that the property is not being used by any object instances.
Whenever I run into this, say I set up the object schema incorrectly I typically remove everything and start from scratch.
I haven't dug into this too deep. But if you're creating records via an API, with a serverless or other function you could check that the body conatinas the required property "manually" before subitting to the api.