So yeah… tried generating a TypeScript SDK from your openapi.json (https://www.torn.com/swagger/openapi.json) and it’s… insane. All the function names are hashes. I mean literally:
```typescript
import { createClient } from "../generated/torn/client/index.js";
import { c82d282102d0d4f54768a6a465639673, 94dfc0c0663c9dc53241abbc59e39597 } from "../generated/torn/sdk.gen.js";
const client = createClient({ auth: process.env.TORN_API_KEY });
const myFaction = await c82d282102d0d4f54768a6a465639673({ client });
const otherFaction = await 94dfc0c0663c9dc53241abbc59e39597({ client, query: { id: 12345 } });
```
I can’t remember these names. I can’t explain them to anyone. They work… technically… but this is unusable in any real code.
If the operationIds were descriptive, like:
```typescript
import { getMyFaction, getUserFaction } from "../generated/torn/sdk.gen.js";
const myFaction = await getMyFaction({ client });
const otherFaction = await getUserFaction({ client, query: { id: 12345 } });
```
…then it would be readable, obvious, and maintainable.
Steps to reproduce:
- Use https://www.torn.com/swagger/openapi.json.
- Generate a TypeScript SDK with @hey-api/openapi-ts and operations.strategy = "flat".
- Notice all function names are long hashes.
- Switching to byTags or single doesn’t really help.
Suggested fix:
- Replace hashed operationIds with descriptive ones:
```json
"/user/faction": { "get": { "operationId": "getMyFaction", ... } },
"/user/{id}/faction": { "get": { "operationId": "getUserFaction", ... } }
```
That’s it. No hacks, no wrappers needed, just readable function names.