Some deserializers like Wyscout and SkillCorner support different DataFormats. The DataFormat can either be specified or auto-detected. The auto-detection reads the first byte of the file (or first line) and extract version information. This works for local files, but for non-seekable files, s3 or https, this breaks. A solution could be to use some sort of peek method, or move the detection to the Deserializer itself and keep a small buffer.