# Architecture

Last verified: 2026-07-22.

The project uses a thin-page, feature-section, reusable-component structure.

```text
route page -> section view -> reusable components
                         -> domain hook -> axios/SWR -> API
```

- `src/app` owns routing and metadata only.
- `src/sections/<domain>` owns a screen's data shape, state, and API composition.
- `src/components` must remain reusable and unaware of domain endpoints.
- `src/lib/axios.ts` owns transport, envelope normalization, auth behavior, and endpoint names.
- `src/locales` owns every visible string and direction change.

The `records` feature deliberately stops at local state. It mirrors server pagination props so replacing the mock with `usePaginatedList` does not require redesigning the table.
