D421 - The software version is a profile setting, like the firmware, not a kernel constant

assumed - 2026-08-31

D420 corrected the value but left it hardcoded in get_system_sw_version, which is the wrong shape: firmware version (12.40) is a Machine field set by a profile (principle 5, "nothing about a specific firmware version is compiled in"), and the software version this call answers should be too. It is now Machine::software_version, an Option<SoftwareVersion> presented from the same profile the firmware comes from, read by the kernel exactly as firmware and kernel_release are.

Three choices worth recording:

Recorded assumed on the field's shape (the SoftwareVersion struct, the refuse-when-unset choice) - the value is measured under D420. End-to-end: obSCEne's 130-layout dump under --profile prospero-cex-12.40 now emits 13.090.001 / 0x1309_0001 byte-for-byte, pass 0x28. Core, kernel and shell tests pass; clippy clean. The TOML sub-table header had to quote the dotted profile name (["prospero-cex-12.40".software-version]) or the dots parse as key separators.