This metric checks if the current firmware version is older than the latest available version marked as 'Mature'. It first ensures both versions are not null to prevent false positives caused by missing data (a known issue in some Liongard inspectors). If valid, it compares the versions numerically. The metric returns true when an update is available. Data Print Query: not_null(Firmware.current.version) && not_null(sort_by(Firmware.available[?maturity=='M'], &id)[-1].version) && to_number( join('', [ replace(split(sort_by(Firmware.available[?maturity=='M'], &id)[-1].version, '.')[0], 'v', ''), split(sort_by(Firmware.available[?maturity=='M'], &id)[-1].version, '.')[1], split(sort_by(Firmware.available[?maturity=='M'], &id)[-1].version, '.')[2] ]) ) > to_number( join('', [ replace(split(Firmware.current.version, '.')[0], 'v', ''), split(Firmware.current.version, '.')[1], split(Firmware.current.version, '.')[2] ]) )