Turn an existing KiCad project (schematic, and the board if there is one) into a WholeBoard spec.
The schematic's netlist gives the parts and connections; the board, when present, gives the
outline, layer count, mounting holes and where each part sits (used as placement hints).
save_upload(files, dest)
Write uploaded files (zips are unpacked) into dest. Paths outside dest are refused.
to_spec(folder, name='', log=print)
{"spec", "notes", "warnings", "files"} for a KiCad project in folder.