A signature with so many positional parameters that the agent has to read the function definition into the context window before generating each invocation. The signature alone underspecifies the call; the agent must consult either the function body or recent call-site examples to know which positional slot corresponds to which domain meaning.
Each parameter is a domain concept the agent recognizes, or part of a named object the agent passes through without unpacking. The signature carries enough type and naming signal that the agent generates correct invocations from the type information alone; per-call retrieval cost drops to zero in the common case.
Smellier version
function book(name, email, street, city, zip, depart, arrive, seat) {// ...}
Fresher version
function book(traveler, address, trip) {// ...}
Every call site is a chance to misorder arguments or miss one; even with the type checker, the agent pays retrieval cost on every invocation. Coincidentally-typed adjacent parameters mean even type-checked code can ship with the agent's positional swap intact — a silent bug class the agent can't catch without completeness-check cost across every call.
A new parameter object adds a class the agent loads to construct values; for one-use cases the token cost is pure overhead. The agent pays one extra read on every invocation that constructs the object and one extra read on every read of the object's shape — the abstraction must justify these costs by being reused enough to amortize them.
Parameters bundled into a typed object are matched by name at every call site; the type checker catches missed fields as compile errors instead of silent positional swaps the agent would have to detect from context. The type-checker visibility of every parameter rises; the agent's per-edit completeness-check cost contracts to one named type.
Synthesizing parameter objects that don't represent real domain concepts forces the agent through extra wrapping and unwrapping with no comprehension payoff — pure ceremony. The agent pays the verification-surface cost of an additional type on every call, while gaining nothing in the structural signal the parameter object was supposed to provide.