dedupeEntries

internal fun dedupeEntries(targets: Map<File, List<String>>): Map<File, List<String>>

Keep the first jar to claim each entry name and drop the rest, in the map's (classpath) order.

Applied per SHARD, not once over the whole classpath: a shard is written as one jar, so two members claiming one name would collide inside it, while two SHARDS carrying the same name is exactly how the overlay already works — they sit in classpath order and the first wins, same as the jars behind them. The mixin pass dedupes globally instead, since it writes a single jar spanning every shard.