Add a layer (maybe just std::move_only_function) between AssetDispatch and GlobalTextureBufferResource/MeshBuffer so it can be unit tested and the graphics frontend doesn't directly touch the backend.
Another option is to move AssetDispatch out of the front end.