For what it's worth, I've been pretty happy with Hono + OpenAPI + Zod, which has worked very well for me in recent projects. From there, you can do client generation with a number of tools from OpenAPI, while Zod will do runtime validation against your Hono API implementation.