- Add missing isCommandZoneCounterBlocked check to cmdSetCounterActive
- Revert accidental deck view layout change from b4057a86
- Fix duplicate @param in playSelectedCardsImpl doc
- Add null check for PlayerLogic in CommandZoneMenu constructor
- Add index bounds check in CommandZone handleDropEvent
- Add index bounds check in StackZone handleDropEvent
- Add ownership comment for tax counter widget creation
- Add command zone to zoneGraphicsItems map
- Conditionally show command zone menu item based on server support
- Remove layer-violating includes from player_logic.cpp
- Fix tax counter increment (1 per cast, not 2)
- Add getTaxCounterIfActive() helper to PlayerGraphicsItem
1. CommandZoneMenu: Changed to take PlayerGraphicsItem* instead of
PlayerLogic*, accessing logic via player->getLogic()
2. Removed getCounterWidget() from PlayerLogic;
method already exists correctly in PlayerGraphicsItem
3. PlayerMenu: CommandZoneMenu, fixed signal
connection to use player->getLogic() for commandZoneSupportChanged
4. AbstractCounter: Connects to CounterState::activeChanged signal,
removing direct graphics calls from PlayerEventHandler
5. CommandZone: Explicit tax counter registration via registerTaxCounter()
with auto-cleanup, replacing childItems()/dynamic_cast iteration
Also fixed PlayerActions to query CounterState instead of AbstractCounter
for proper layer separation.