A cancel button rendered in light gray on a white background, eight-point font, tucked below the fold. Next to it, "Keep My Subscription" in bold blue, twice the size. Both buttons work. Both are real. The choice architecture is technically complete. And the FTC has noted that companies bear responsibility not just for the truthfulness of individual elements but for the "net impression" created by the design as a whole. The gray button and the blue button offer the same action set. The presentation makes them different choices.
Now imagine the same service must declare its capabilities to an agent through a typed, machine-readable protocol. No visual interface. A structured list of available actions, their parameters, their return types. Cancel subscription: yes or no. Refund request: available or unavailable.
The gray button disappears. The medium simply doesn't support it. A capability declaration has no font size. No color palette. No spatial hierarchy. The action is either enumerated or it isn't.
The effect varies by manipulation type. Researchers have cataloged at least sixteen distinct types of dark pattern, and they divide along a line that matters here: patterns that manipulate how choices appear versus patterns that manipulate which choices exist.
Confirmshaming works through language. "No thanks, I don't like saving money." In a typed protocol, the action is decline_offer: boolean. The shame doesn't survive serialization. Interface interference, where a preferred option gets visual prominence while the alternative fades into the background, similarly has no mechanism in a structured declaration. There's no "above the fold" in a schema.
Recent research found that agents navigating visual interfaces actually become more susceptible to dark pattern manipulations as their vision improves. Remove the visual layer, and the manipulation has nowhere to live.
Forced continuity is a different animal. The pattern where signing up takes two clicks and canceling requires a phone call during business hours is structural. The asymmetry lives in practical accessibility, in whether the action exists as something an agent can call. A capability declaration forces a binary: is cancel_subscription an available action? If yes, the agent calls it regardless of what color the button would have been. If no, the absence is explicit and auditable in a way that a missing link on a cluttered settings page never was.
Then there's drip pricing, where the base price is advertised and fees accumulate through checkout. The DOT tried to address this for airlines by requiring upfront fee disclosure in a structured, comparable format. Airlines sued to block it. The estimated consumer overpayment from surprise fees was $543 million annually. What the DOT proposed was essentially a capability declaration for pricing: enumerate all fees at the point of first display, in machine-processable form. The resistance suggests that structured disclosure changes what's economically viable to offer.
A typed protocol can still be gamed. A service could declare cancel_subscription but require seventeen prerequisite calls before the action succeeds. New manipulation patterns will emerge around whatever protocol becomes standard, and they'll be harder to see. The manipulation migrates from the visual layer, where at least a human could squint at the gray button and feel suspicious, to the structural layer, where what's withheld from the declaration is invisible by definition. A different kind of problem. Still a problem.

