How a state resolves at runtime
1. Placements are tried top to bottom.
2. A placement shows only if every mapped value passes its logics — accepted values and conditions (player on the pitch, match stats, minute…).
3. Otherwise the next one is tried — the same canvas can appear again with a different market.
4. If none pass, the Default canvas is shown.