Oracle text (verified from client/public/card-data.json)
Exile the top card of your library. You may put that card into your hand unless it has the same name as another card exiled this way. Repeat this process until you put a card into your hand or you exile two cards with the same name, whichever comes first.
Reported behavior
Tainted pact does not repeat
Confirmed by another player:
It functions as written, exile top card of your library, you may continue unless another card you've exiled that way has the same name as a previous card you exiled through tainted pact. After the first exiled card you can stop it at any time you wish even if you haven't exiled a duplicate card though. ... tldr; i confirm this with the caveat that the player can stop it themselves. see cr732 and its subrules for generic details on how shortcuts like these function.
Expected vs actual
Expected: Repeatedly exile the top card of the library; the player may put each card into their hand (stopping the loop) unless it shares a name with a previously-exiled card; the loop also ends if two exiled cards share a name. The player may choose to stop the process at any point after the first exile.
Actual: The repeat/iteration does not occur — the effect does not loop with name-duplicate tracking and the per-iteration may-stop choice.
This is an iterative exile-until effect with a same-name stop condition and a per-iteration player choice — a missing engine mechanic, not currently modeled.
Source: https://discord.com/channels/1485498006781427802/1513387731101945936/1513387731101945936
Oracle text (verified from client/public/card-data.json)
Exile the top card of your library. You may put that card into your hand unless it has the same name as another card exiled this way. Repeat this process until you put a card into your hand or you exile two cards with the same name, whichever comes first.
Reported behavior
Confirmed by another player:
Expected vs actual
Expected: Repeatedly exile the top card of the library; the player may put each card into their hand (stopping the loop) unless it shares a name with a previously-exiled card; the loop also ends if two exiled cards share a name. The player may choose to stop the process at any point after the first exile.
Actual: The repeat/iteration does not occur — the effect does not loop with name-duplicate tracking and the per-iteration may-stop choice.
This is an iterative exile-until effect with a same-name stop condition and a per-iteration player choice — a missing engine mechanic, not currently modeled.
Source: https://discord.com/channels/1485498006781427802/1513387731101945936/1513387731101945936