in reply to Re: report generation
in thread report generation

Special case 3: Receiving two "played" messages for the same video without a corresponding "stopped" message in between. (i.e., The inverse of special case 1.)

If this is a legitimate case, then you may need to use a hash of arrays or other means of supporting multiple start times for a video, as well as a means of deciding which of the multiple start times a stop time should correspond to. If it is not legitimate, emitting a warning message should suffice.