---
url: >-
  https://adk.nht.io/api/@nhtio/adk/batteries/validation/types/interfaces/IdentifierUniquenessRule.md
description: Requires uniqueness of identifiers across the selected primitive timeline.
---

# Interface: IdentifierUniquenessRule

Defined in: [src/batteries/validation/types.ts:327](https://github.com/NHTIO/ADK/blob/v1.20260905.0/src/src/batteries/validation/types.ts#L327)

Requires uniqueness of identifiers across the selected primitive timeline.

## Properties

| Property                                               | Type                                                                | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Defined in                                                                                                                          |
| ------------------------------------------------------ | ------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
|  `id`                          | `string`                                                            | Stable identifier used in findings.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | [src/batteries/validation/types.ts:331](https://github.com/NHTIO/ADK/blob/v1.20260905.0/src/src/batteries/validation/types.ts#L331) |
|  `kind`                      | [`OrderingPrimitiveKind`](../type-aliases/OrderingPrimitiveKind.md) | Primitive whose identifiers must be unique.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | [src/batteries/validation/types.ts:333](https://github.com/NHTIO/ADK/blob/v1.20260905.0/src/src/batteries/validation/types.ts#L333) |
|  `renameStrategy?` | (`previousId`: `string`, `memberIndex`: `number`) => `string`       | Produces a replacement identifier when mutate mode repairs a collision. **Remarks** Every member of a collision group shares ONE id — that is what makes it a collision — so `previousId` alone cannot distinguish them. `memberIndex` (0-based, ordered by timeline `seq`) is what a deterministic strategy varies on: without it a pure strategy would return the same replacement for every member, and the materialiser would reject its own repair. The strategy must be pure and total in BOTH arguments, and may not return an id already held elsewhere in the timeline; the materialiser verifies that and fails the repair rather than trusting it. | [src/batteries/validation/types.ts:345](https://github.com/NHTIO/ADK/blob/v1.20260905.0/src/src/batteries/validation/types.ts#L345) |
|  `severity?`             | `"blocking"` | `"advisory"`                                        | See [OrderRule.severity](OrderRule.md#property-severity). Omitted means advisory, as on every other rule type. Opt into `blocking` — as the shipped `tool_call_id_uniqueness` profile does — when a collision makes the dispatch unsafe to assemble; an advisory finding is never repaired, so `renameStrategy` and the `renumber-colliding-ids` repair only take effect under `blocking`.                                                                                                                                                                                                                                                                    | [src/batteries/validation/types.ts:352](https://github.com/NHTIO/ADK/blob/v1.20260905.0/src/src/batteries/validation/types.ts#L352) |
|  `surface?`               | `"dispatch"` | `"turn"` | `"both"`                                | Whether this rule applies on the dispatch surface, turn surface, or both. Omitted means the rule applies on both surfaces.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | [src/batteries/validation/types.ts:354](https://github.com/NHTIO/ADK/blob/v1.20260905.0/src/src/batteries/validation/types.ts#L354) |
|  `type`                      | `"identifierUniqueness"`                                            | Discriminator selecting the cross-entry uniqueness evaluator.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 | [src/batteries/validation/types.ts:329](https://github.com/NHTIO/ADK/blob/v1.20260905.0/src/src/batteries/validation/types.ts#L329) |
