IntentionallyPairOrTriple
Acknowledges that the annotated declaration deliberately exposes the tuple type Pair or Triple in the public API.
The library-api-watchdog compiler plugin warns about public signatures - return types, property types, and parameter types, including their type arguments (List<Pair<Int, String>> exposes the tuple all the same) - that mention Pair or Triple, as well as tuple bounds on type parameters. Tuple components carry no domain meaning: at the use site first/second/third and positional destructuring reveal nothing about the values, and the fixed shape can't evolve - adding a value means switching to a different type, breaking users. Prefer a small class with descriptively named properties. Apply this annotation to suppress the warning when exposing the tuple is an intended part of the API contract. On a function, a property, or a constructor it covers the whole signature. On a single parameter or type parameter it covers just that parameter. On a type usage (List<@IntentionallyPairOrTriple Pair<Int, String>>) it covers the annotated type and everything nested in it.
See the check documentation for rationale and examples.
Parameters
why the declaration deliberately exposes a tuple type.
free-form explanation of the exemption. May be empty only when reason explains the exemption on its own (ExemptionReason.FOR_BACKWARDS_COMPATIBILITY, ExemptionReason.API_DESIGN).