Combo 1 is bad because having 2 files with the same target destination is not a good idea and much more likely to be unintentional. In 99% of cases permalinks should flag such an issue by throwing.
Combo 2 doesn't make sense: we first instruct permalinks to overwrite dupes, but then instruct it to throw when dupes are encountered
Combo 4 doesn't make sense: the current impl throws, but I would expect it to never throw as a postfix is added to each file. Then again I would also not expect to be able to specify duplicatesFail because it makes no sense in this context.
Conclusion
These options need to be bundled into 1 option duplicates: 'error'|'overwrite'|'index'|custom func. The default is 'error'
The (way too complicated) matrix is:
Combo 1 is bad because having 2 files with the same target destination is not a good idea and much more likely to be unintentional. In 99% of cases permalinks should flag such an issue by throwing.
Combo 2 doesn't make sense: we first instruct permalinks to overwrite dupes, but then instruct it to throw when dupes are encountered
Combo 4 doesn't make sense: the current impl throws, but I would expect it to never throw as a postfix is added to each file. Then again I would also not expect to be able to specify duplicatesFail because it makes no sense in this context.
Conclusion
These options need to be bundled into 1 option
duplicates: 'error'|'overwrite'|'index'|custom func
. The default is'error'