For example if `propertyNames` disallows a `required` name, we can return the empty schema; if a dependent name is disallowed we can drop that, etc.