# External Service Integrations

## Overview

External integrations for the vehicles feature, following a consistent client/types/cache pattern.

## Integration Pattern

Each integration follows this structure:

1. **Client class** (`{service}.client.ts`) - axios-based HTTP client with timeout, error handling, caching, and input validation
2. **Types file** (`{service}.types.ts`) - Raw API response types, mapped internal types (camelCase), error types
3. **Cache strategy** - Each integration defines cache location, TTL, and invalidation rules

## Adding New Integrations

1. Create subdirectory: `external/{service}/`
2. Add client: `{service}.client.ts` following NHTSAClient pattern
3. Add types: `{service}.types.ts`
4. Update `CLAUDE.md` with new directory
5. Add tests in `tests/unit/{service}.client.test.ts`

## See Also

- `../../../stations/external/google-maps/` - Sister pattern for Google Maps integration
