parseStampedLogArtifactLines

Decode stamped NDJSON lines back into StampedLogRecords, the inverse of stampedLogArtifactLines (parseStampedLogArtifactLines(stampedLogArtifactLines(x)) == x). Blank lines are skipped, so the trailing newline writeStampedLogArtifact emits does not decode as a phantom record.

This is the pure, source-free core: hand it any sequence of lines — a file read elsewhere, the union of several devices' artifacts, or literal test strings.