# Destination

Describes a committed history entry with stable `id` and `key` identity.

## Signatures

```ts
export declare const Destination: Schema.Struct<{
    readonly id: Schema.String;
    readonly key: Schema.String;
    readonly url: Schema.URLFromString;
    readonly state: Schema.Unknown;
    readonly sameDocument: Schema.Boolean;
}>;
```

```ts
export type Destination = typeof Destination.Type;
```

## Why

Routers and state stores need identity that survives URL equality: `key` addresses traversal,
while `id` distinguishes commits which may otherwise contain the same URL and state.

## Ownership and lifetime

This immutable schema acquires no resources. The active navigation provider owns entry creation,
retention, serialization, and eviction.

## Examples

```ts
import { Destination } from "@typed/navigation/model"
import * as Schema from "effect/Schema"

const decode = Schema.decodeUnknownSync(Destination)
```
