JSON to TypeScript interfaces