---
url: >-
  https://adk.nht.io/api/@nhtio/adk/batteries/validation/types/interfaces/PreservationRule.md
description: Requires historical primitive content to remain present and/or stable.
---

# Interface: PreservationRule

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

Requires historical primitive content to remain present and/or stable.

## Properties

| Property                                                       | Type                                                                                    | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                   | Defined in                                                                                                                          |
| -------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------- |
|  `id`                                  | `string`                                                                                | Stable identifier used in violations and snapshots.                                                                                                                                                                                                                                                                                                                                                                                                                           | [src/batteries/validation/types.ts:124](https://github.com/NHTIO/ADK/blob/v1.20260824.1/src/src/batteries/validation/types.ts#L124) |
|  `invariant`                    | | `"count-non-decreasing"` | `"payload-field-stable"` | `"pruned-after-latest-turn"` | Continuity invariant: `count-non-decreasing` never permits historical loss, `payload-field-stable` preserves a selected field, and `pruned-after-latest-turn` permits absence only before the latest non-tool-call user Message; content after that boundary must remain present AND unchanged, mirroring `payload-field-stable` for the retained recent range. The latter means never drop recent or alter it, may drop old, and is distinct from full-history preservation. | [src/batteries/validation/types.ts:139](https://github.com/NHTIO/ADK/blob/v1.20260824.1/src/src/batteries/validation/types.ts#L139) |
|  `kind`                              | [`OrderingPrimitiveKind`](../type-aliases/OrderingPrimitiveKind.md)                     | Historical primitive kind whose continuity is required.                                                                                                                                                                                                                                                                                                                                                                                                                       | [src/batteries/validation/types.ts:126](https://github.com/NHTIO/ADK/blob/v1.20260824.1/src/src/batteries/validation/types.ts#L126) |
|  `payloadField?`             | `string`                                                                                | Dot-path into the primitive payload when `invariant` is `payload-field-stable`.                                                                                                                                                                                                                                                                                                                                                                                               | [src/batteries/validation/types.ts:141](https://github.com/NHTIO/ADK/blob/v1.20260824.1/src/src/batteries/validation/types.ts#L141) |
|  `resetOnModelSwitch?` | `boolean`                                                                               | Reset the comparison baseline when the producing model changes.                                                                                                                                                                                                                                                                                                                                                                                                               | [src/batteries/validation/types.ts:143](https://github.com/NHTIO/ADK/blob/v1.20260824.1/src/src/batteries/validation/types.ts#L143) |
|  `type`                              | `"preservation"`                                                                        | Discriminator selecting the stateful preservation evaluator.                                                                                                                                                                                                                                                                                                                                                                                                                  | [src/batteries/validation/types.ts:122](https://github.com/NHTIO/ADK/blob/v1.20260824.1/src/src/batteries/validation/types.ts#L122) |
