# v14 API Drift Findings

v13 Web 호출과 Backend Endpoint를 대조하면서 실제 Drift 2종을 발견했다.

## 1. OMS 주문 출고지시

Frontend:

```text
POST /api/oms/orders/ship
```

Backend Endpoint가 없었다.

v14에서 `oms.orders.ship` Operation과 FastEndpoint를 추가했고, Idempotency-Key 및 `kbx.command_receipts` replay boundary를 추가했다.

## 2. OMS Claim Workflow

Frontend:

```text
POST /api/oms/claims/{id}/transitions/{transition}
```

Backend Endpoint가 없었다.

v14에서는 권한을 명확히 하기 위해 generic dynamic transition URL 대신 다음 네 Operation으로 분해했다.

```text
oms.claims.approve
oms.claims.hold
oms.claims.start
oms.claims.complete
```

각 Endpoint는 자신의 Permission을 명시한다.

## 결과

v14 이후 Backend Route와 API Contract는 46개가 1:1로 대응하며, Frontend business code의 raw `/api` 문자열은 0건이다.
