# ProductionOrderRoutingSnapshot

## Description

ProductionOrderRoutingSnapshot stores the immutable routing state frozen at production-order release. It owns the routing reference and a serialized representation of the full routing structure so that later routing revisions never affect released work orders.

## Domain Model Definitions

### Model type

Standard

### Command Definitions

- [releaseProductionOrder](../commands/ReleaseProductionOrder.md) - Freeze the routing snapshot when the production order is released.

### Query Definitions

- [getProductionOrder](../queries/GetProductionOrder.md) - Retrieve the routing snapshot as part of the parent production order.

### Models

- ProductionOrderRoutingSnapshot

### Invariants

- Every ProductionOrder has at most one ProductionOrderRoutingSnapshot, created at release.
- The snapshot is immutable once created; later routing revisions do not affect it.
- The snapshot exists only on orders in `RELEASED`, `IN_PROGRESS`, `COMPLETED`, `TECHNICALLY_COMPLETE`, or `CLOSED`.

### Relationships

- **Belongs To ProductionOrder**: the snapshot is owned by one [ProductionOrder](./ProductionOrder.md).
- **Derived From Routing**: the snapshot captures the state of a resolved [Routing](./Routing.md) revision at release time.
