vehicle::(save|load)_json: use vpart_info.id, not enum.
init_vparts: generate reverse lookup map (likely temporary)