It’s refreshing to see someone discuss the topic, without parroting the same misleading garbage leading to thinking that every opponent must be a bot. I agree with a lot of this, though some differences…
Username:
Do you remember some years back when we would see “Unknown” come up as the opponent’s name a lot? It didn’t help that when Blizzard was briefly inserting their own bots to address the queue time problem, but that’s how the names for those bots were formatted. I’d wager that’s where the generic names like (not sure if this is a real example) JadeDragon are coming from, now. It’s just a mask for that older bug. I’ve seen players running meta decks with names like that, those are more likely to be humans, given how the card collections for the bots are usually produced.
Hero Skin:
Not everybody cares about skins (I generally don’t) enough to swap them out, and the same is true for card backs. A lot of players stick with the defaults. And I’ve been against players I think you and I would agree are bots that did swap their skins.
Deck:
You’re not wrong here, but I’d be careful what decklists to assume are bots.
There is one new decklist I’ve seen playing Wild this month (and is probably in Standard too), where it’s the identical neutral-only cards coming out, independent of which class, and following an obvious script. Those must be bots; too many of them. But, I would caution against generically applying that to anybody in a Core deck; that’s all new players have to work with.
Occasionally, I bump into someone playing an OTK deck; the opponents running out of time to do their combo (or just barely get it off before the rope is gone) are definitely human. The ones still going several seconds after the rope hits the end are clearly bots; no human can play that many cards that fast because of the way the animations blocking targets, stops to pick a card/target, necessary finger/mouse movements, etc. slow all that down.
Last week’s Tavern Brawl, where Blizzard still hasn’t patched around the 0 mana Soulfire deck code was a prime target to send a bot in to exploit. But even then, a solid chunk of those were probably humans too.
Play speed:
Frame 1 is a strong hint when it’s a combo/OTK opponent. I’m not sure I’d agree outside of that scenario.
Players experienced in TCG/CCG games plan their plays several turns out, slowing down only to decide how to mitigate the bomb their opponent just dropped.
Most bots I’ve seen take forever to make their plays because they’re reevaluating from scratch every turn. Unfortunately, this can also be seen from inexperienced players. Humans do know where the “End Turn” button is though, and are generally quicker to hit it.
Many bots will rope out if they don’t have a play, or even after they’ve made the play. Others will wait for the rope, then start executing their play, to avoid the rope at the start of their next turn. Wash, rinse, repeat.
Bots don’t concede. Ever. The goal here is to get the human to decide they either don’t have time for the long turns or decide the bot isn’t worth their time to play against and be the one to concede as early in the match as possible.