# V13-FE-028 — Reconciliation API contract boundary

## Source / Assumption / Unknown / Decision Required

- Source: current `PortfolioReconciliation/Endpoints.cs` response DTOs and v60 runtime-validation/API boundary guidance.
- Assumption: FE treats the current holdings and mismatch responses as read contracts and validates them at the HTTP boundary.
- Unknown: approved route permissions, pagination/filter semantics, response version/as-of metadata, and correction command contract.
- Decision Required: approve the production API/permission contract before adding route registration, TanStack Query wiring, or correction mutations.

## Implemented

- Added Zod schemas and typed API adapters for `GET /reconciliation/holdings` and `GET /reconciliation/mismatches`.
- API adapters parse response payloads at runtime; no response is copied into Pinia.
- Added TanStack Query keys/hooks with explicit mismatch date-window cache identity and bounded retry.
- No route, query cache, correction mutation, or permission claim was added while backend authority remains unresolved.

## Evidence

- `pnpm test -- src/features/reconciliation/tests/schema.spec.ts`: 1 file / 3 tests passed.
- `pnpm test -- src/features/reconciliation/tests/queries.spec.ts`: 1 file / 2 tests passed.
- `pnpm typecheck`: passed.
- `git diff --check`: passed.

## Outstanding

TanStack Query integration, route permission metadata, server pagination/version/as-of contract, Playwright/AT evidence, and correction/maker-checker API remain outstanding. This Slice is `IN_PROGRESS`.
