1. Request the OpenAPI file path from the user if not provided.
2. Read and validate the OpenAPI file to ensure it's a valid OpenAPI 3.0.x specification.
3. Extract schemas from the `components/schemas` section of the OpenAPI file.
4. Extract endpoints and their corresponding request/response types from the `paths` section.
5. Generate TypeScript interfaces, type guards, and request/response types based on the extracted information.
6. Ask the user where to save the generated TypeScript file (default to `types/api.ts`).
7. Write the generated TypeScript code to the specified file.