# API Layer OpenAPI backend является источником истины. После изменения backend-контракта запускается `npm run openapi:generate`; `src/shared/api/generated/schema.d.ts` не редактируется вручную. Все HTTP-вызовы используют `apiClient` из `src/shared/api`. Прямой `fetch` в features, pages и entities не используется. Request и response types выводятся из generated `paths`, например: ```ts type User = paths["/api/v1/auth/me"]["get"]["responses"][200]["content"]["application/json"]; ``` Ручной domain/UI type допустим только если он отличается от transport DTO по смыслу, а не повторяет его поля.