I'm always a bit worried when I implement a custom copy_to that I might be only looking at the part of the model that I support and ignoring things for which I should throw an error.
We could have a generic function like the one implemented in osqp/OSQP.jl#128 that could just be called by solver wrappers.
It would be similar to a dry run of copy_to that does not actually copy anything.
It could be something like throw_if_copy_to_not_supported(dest, src).