When to use SDK vs HAL

When to use SDK vs HAL

After reading through the tutorials, it seems to me that many things can be achieved through the HAL API that can also be done through the SDK. For example, opening a camera and adding a callback for events can be done using the HAL (eg HAL Viewer Sample) or by using the Metavision::Camera interface. My question is, when should I prefer the HAL interface over the Camera interface? It seems to me that the Camera interface is higher level, simplifies code quite a bit and allows you to use the staging/pipelines. So is there anything you can do with the HAL that you can't do with the Camera interface? It seems that you can even set biases, receive/set triggers etc through the Metavision::Camera.