Aha, I've just check menagerie and it already has:
- If player has no duplicate cards in hand, play priority is put at maximum
- If there are duplicates and we have more than 1 action left, put play priority at the lowest
I'm suggesting that many more cards could improve with a similar priority evaluation. A steward will have different priority of play depending on whether there is a meaningful trashing action, it is drawing cards, or whether it is played for coin.
{swindler, curse, curse, steward, copper} - play steward (trash curses)
{swindler, silver, silver, steward, copper} - play swindler
{swindler, silver, estate, steward, fishing village} - play fishing village, play steward (draw cards), play swindler
{smithy, silver, estate, steward, fishing village} - play fishing village, play smithy (draw cards), play steward
{swindler, silver, estate, steward, festival} - play festival, play swindler, play steward (+2$)
Trade route would be another example card where the priority will vary dramatically based not only on the supply but the hand contents as well.