public async Task <string> SaveAsync(Submission submission)
        {
            var referenceNumber = referenceNumberGenerator.CreateNew();
            var filePath        = fileSystem.Path.Combine(submissionStoragePath, $"submission_{referenceNumber}.json");

            if (fileSystem.File.Exists(filePath))
            {
                throw new Exception($"Submission with reference number r{referenceNumber} already exists");
            }
            using var fs = fileSystem.File.OpenWrite(filePath);
            await JsonSerializer.SerializeAsync(fs, submission);

            return(referenceNumber);
        }