OK, so I think I've understood this. This method is doing three things:

1. Checking that the `deprecated_by` key actually exists in the schema
2. If a key that is deprecated is being used, i.e. exists in the data, adding a warning
3. If a key is that is deprecated is being used in the data, adding the key that deprecates this deprecated key to a hash, for later (legitimately) ignoring when it comes to validation.

If I've got that right, then I think this method is doing too much. I think we need to validate the schema elsewhere - lines 219 to 221, as I think they confuse the issue here.

Then here, this method could be called something like `warn_on_use_of_deprecated_keys_and_return_list_of_keys_we_can_safely_ignore`. That's a joke. But something like that.