DeviceInfo
data class DeviceInfo(val manufacturer: String?, val modelNumber: String?, val hardwareVersion: String?, val firmwareVersion: String?, val serialNumber: String?)
Device Information Service strings, read best-effort during DeviceSession.initialize. A characteristic the device does not expose — or a failed read — yields null; device info is never a reason to fail the handshake.