The likely solution will be to run scanimage -A once, find the sources and then iterate over them with scanimage -A --source ${source}, perhaps generating additional virtual devices. This will need to be back-tested across as many scanners as possible.
Scanimage can report different settings according to the source selected. See https://github.com/sbs20/scanservjs/issues/401#issuecomment-1367951694.
The likely solution will be to run
scanimage -A
once, find the sources and then iterate over them withscanimage -A --source ${source}
, perhaps generating additional virtual devices. This will need to be back-tested across as many scanners as possible.