Register .kc as a recognized file type alongside .FCStd:
C++ changes:
- Document.cpp: checkFileName() accepts .kc extension
- Gui/Document.cpp: Save As and Save Copy dialogs include *.kc
- CommandDoc.cpp: Merge document dialog includes *.kc
- DlgProjectUtility.cpp: Project utility dialog includes *.kc
Python changes:
- FreeCADInit.py: register *.kc in import type system
- kc_format.py: DocumentObserver that preserves silo/ ZIP entries
across saves (caches before save, re-injects after save)
- InitGui.py: register kc_format observer on startup
Silo integration:
- get_cad_file_path() generates .kc paths for new files
- find_file_by_part_number() finds both .kc and .FCStd, preferring .kc
- search_local_files() lists both .kc and .FCStd files
The .kc format is a superset of .FCStd with a silo/ directory
containing Kindred platform metadata. See docs/KC_SPECIFICATION.md.