BCL input requires either sourcing code from bcl2fastq or reimplementing the specs if license is an issue
Aligned input passing through alignment fields is very tricky when tokenizing the read because CIGAR string will need to be adjusted and recalulating alignment score will depend on the aligner's logic. It can however be easy when the segment is not manipulated.