anchor.diff:              let inputFilePath = Path.Combine (inputDirectory, inputFileSubpath)
   
               // build the output file path
  -            let outputFileExtension = getAssetExtension true asset.Refinements inputFileExtension
  +            let outputFileExtension = getAssetExtension true inputFileExtension asset.Refinements
               let outputFileSubpath = Path.ChangeExtension (asset.FilePath, outputFileExtension)
               let outputFilePath = Path.Combine (outputDirectory, outputFileSubpath)
   
  -            // build the asset if out of date
  +            // build the asset if fully building or if it's out of date
               if  fullBuild ||
                   not <| File.Exists outputFilePath ||
                   File.GetLastWriteTimeUtc inputFilePath > File.GetLastWriteTimeUtc outputFilePath then
  
positive.code:     let refineAssetOnce intermediateFileSubpath intermediateDirectory refinementDirectory refinement =
  
          // build the intermediate file path
          let intermediateFilePath = Path.Combine (intermediateDirectory, intermediateFileSubpath)
  
          // build the refinement file path
          let refinementFileSubpath =
              match refinement with
              | PsdToPng -> Path.ChangeExtension (intermediateFileSubpath, "png")
              | OldSchool -> intermediateFileSubpath
          let refinementFilePath = Path.Combine (refinementDirectory, refinementFileSubpath)
  
          // ensure the refinement file path is valid
          ignore <| Directory.CreateDirectory ^^ Path.GetDirectoryName refinementFilePath
              
          // refine the asset
          match refinement with
          | PsdToPng ->
              use image = new MagickImage (intermediateFilePath)
  
negative.code:             image.Scale (Percentage 400)
              image.Write refinementFilePath
  
          // return the latest refinement localities
          (refinementFileSubpath, refinementDirectory)
  
      /// Apply all refinements to an asset.
  