* convert all theme files to json * automatically discover extra themes in go backend * use zod * error tidy up * error tidy up p2 * generate theme json schema from zod * generate theme list at build time, don't do it at runtime * make name and id required in the theme schema