---
url: >-
  https://adk.nht.io/api/@nhtio/adk/batteries/validation/types/interfaces/AlternationRule.md
description: Requires a strict sequence of conversation roles.
---

# Interface: AlternationRule

Defined in: [src/batteries/validation/types.ts:84](https://github.com/NHTIO/ADK/blob/v1.20260824.1/src/src/batteries/validation/types.ts#L84)

Requires a strict sequence of conversation roles.

## Properties

| Property                                         | Type                                   | Description                                                                                                                                                                       | Defined in                                                                                                                        |
| ------------------------------------------------ | -------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- |
|  `id`                    | `string`                               | Stable identifier used in violations.                                                                                                                                             | [src/batteries/validation/types.ts:88](https://github.com/NHTIO/ADK/blob/v1.20260824.1/src/src/batteries/validation/types.ts#L88) |
|  `maxPerGroup?` | `number`                               | Optional cap on ToolCall entries within one same-role group. Llama 3's parallel-tool-call limitation is represented as `1`; Llama 4 lifts that limitation by omitting this field. | [src/batteries/validation/types.ts:97](https://github.com/NHTIO/ADK/blob/v1.20260824.1/src/src/batteries/validation/types.ts#L97) |
|  `mode`                | `"strict"`                             | The only supported mode in this version: every successive turn must alternate.                                                                                                    | [src/batteries/validation/types.ts:92](https://github.com/NHTIO/ADK/blob/v1.20260824.1/src/src/batteries/validation/types.ts#L92) |
|  `roles`              | readonly (`"user"` | `"assistant"`)\[] | Allowed role cycle, normally `['user', 'assistant']`.                                                                                                                             | [src/batteries/validation/types.ts:90](https://github.com/NHTIO/ADK/blob/v1.20260824.1/src/src/batteries/validation/types.ts#L90) |
|  `type`                | `"alternation"`                        | Discriminator selecting the role-alternation evaluator.                                                                                                                           | [src/batteries/validation/types.ts:86](https://github.com/NHTIO/ADK/blob/v1.20260824.1/src/src/batteries/validation/types.ts#L86) |
