The central types hub is no longer a consumer import path
This third convergence slice repoints the remaining bare central barrel imports to their explicit generated-contract homes, leaving only the approved deep table type imports in place.
Generated contracts
Every remaining consumer that imported backend contract types through the central barrel now imports directly from @/gen/types/<Name>.
StaffListItemandStaffListResponseresolve from their generated files.FirmListItem,FirmListResponse,FirmListSummary, andFirmDetailResponseresolve from their generated files.SubscriptionRowand billing consumers resolve through generated billing response contracts.
Legacy alias removed from consumers
The old FirmBilling consumer alias was replaced with generated FirmBillingResponse at billing card and fixture call sites. The shape is unchanged; only the import owner is now explicit.
Scope preserved
The story does not delete src/types/index.ts or any src/types/* file. That cleanup belongs to the next slice.
The cross-cutting @/types/data-table imports stay intact because they are the approved table helper surface for this story.
No generated files, OpenAPI snapshot, pramaan-functions code, pramaan-app code, i18n setup, or table dependency changed.
Observability
pramaan-docs ADR-124: instrumentation-exempt. This is import-path and type ownership cleanup and adds no executable workflow, route, handler, job, external call, or product-state mutation.
Verification proof
Required local verification: pnpm lint, pnpm exec tsc --noEmit, pnpm test, NEXT_PUBLIC_ENV=local pnpm build, pnpm build-storybook, and git diff --check.
Reference grep: grep -rn 'from "@/types"' src must return zero rows while @/types/data-table deep imports remain present.