Primary pointer is coarse → touch-first interaction and sizing.
Some pointer can hover → hover-revealed affordances (tooltips, captions) stay meaningful. True for every mouse/trackpad machine AND for an iPad with a trackpad; false for a bare phone or tablet.
Number of simultaneous touch contacts the device reports.
iPhone / iPod touch (Safari lacks Fullscreen for non-video elements).
iPad, including iPadOS masquerading as macOS. An iPhone with Safari's
"Request Desktop Website" active also presents the macOS UA and therefore
reads as an iPad here (the UA carries no phone marker); gate on isIOS
when the phone/tablet distinction is not load-bearing.
isIPhone || isIPad — drives WebKit-on-iOS-only workarounds.
Android (Chrome synthesises contextmenu on long-press; iOS does not).
Memory / GPU / worker budget tier.
'override' when ?input= forced the pointer part of the profile.
The derived, memoised profile every touch adaptation reads.