crm_verify calls pcmk_verify() which calls pcmk_update_configured_schema() with to_logs == false. That causes messages to be sent to stderr.
We need the messages to go to the output object so they are displayed in the user's requested format.
We should be able to reuse the config warn/error handlers used by pcmk__config_err() and pcmk__config_warn().
to_logs also filters down to pcmk__update_schema(), apply_upgrade(), and the validate_with() error handler; they might be affected as well. We'll have to come up with test cases that cause each function to generate a message.
pcmk_update_configured_schema() is public API, so we'll need a new internal function to take an output object argument, and the current function can become a wrapper for it.