Feature request: Capability to lock a project edition (read-only)

Description

As of today, there is no way (that I know of) to "lock" a project as read-only regardless of the system. The objective would be to prevent unwanted file changes to an archived project for example.

TL;DR

The request is for a lock button on KiCAD main screen that prevents saving new version of the design (schematics and PCB) files.

Rationale

For example, I have a project which board has been fabricated and I am simultaneously working on:

  • Developing the software of the board and testing it, thus relying on KiCAD to retrieve the nets and info of my board
  • The next version of the board, fixing stuff here and there.

The issue arise when the dumb wonderful user starts editing the "archive" files, representing the board that has been fabricated instead of the new version files.

I would like some kind of parameter at project level that would prevent editing the board. It would be fairly easy to remove (that is not a security feature, more a fool-proof one) but would prevent either the editing itself or the save.

I would rather prevent writing files but allowing edition, with a warning message written somewhere so that, if I want to remove some labels or move around some stuff for clarity I am not hindered, and I may just unlock and save if really needed.

We can also imagine a possibility for the user to save a copy (of the whole project, then) somewhere else for safe edition if they tries to save a locked project. This, however is QoL rather than the core feature requested.

Steps to reproduce

N/A

KiCad Version

Application: KiCad x64 on x64

Version: 8.99.0-2525-gd74caace0a, release build

Libraries:
	wxWidgets 3.2.5
	FreeType 2.13.2
	HarfBuzz 9.0.0
	FontConfig 2.14.2

Platform: Windows 10 (version 19045), édition 64-bit, 64 bit, Little endian, wxMSW
OpenGL: NVIDIA Corporation, NVIDIA GeForce RTX 4060/PCIe/SSE2, 4.6.0 NVIDIA 545.92

	wxWidgets: 3.2.5 (wchar_t,wx containers)
	Boost: 1.85.0
	OCC: 7.8.1
	Curl: 8.8.0-DEV
	ngspice: 42
	Compiler: Visual C++ 1939 without C++ ABI

Locale: 
	Lang: fr_FR
	Enc: UTF-8
	Num: 1 234,5