'You must declare "ids" as a unique array of fields in your source settings'
The way you're currently doing it doesn't look familiar, with keys and the way the fields are mapped; might just be it's a method I haven't come across though.
Either way I've always had success processing CSVs like this:
ids:
  - image_file
fields:
  0:
    name: image_file
    label: Image file

That assumes the first column in the CSV contains the unique image file name.