anchor.diff:    if FKMPFile = '' then
       Exit(True);
   
  -  if SameText(ExtractFileExt(FKMPFile), '.kmx') then
  -    Exit(LoadKMXFile);
  +  if not SameText(ExtractFileExt(FKMPFile), '.kmp') then
  +    Exit(Failed('packageFile must be a .kmp file '+FKMPFile));
   
     try
       Zip := TZipFile.Create;
  
positive.code:     CheckOrAddPackageFilename;
      CheckOrAddJsFilename;
      CheckOrAddEncodings;
      AddPackageIncludes;
      CheckOrAddMinKeymanDesktopVersion;
      AddPlatformSupport;
  
negative.code:   # authorEmail -- from kmp.inf
    # lastModifiedDate -- build time: this only gets refreshed when the version num increments so it's close enough then
    # packageFilename -- from $keyboard_info_packageFilename
    # packageFileSize -- get from the size of the file
    # jsFilename -- from $keyboard_info_jsFilename
    # jsFileSize -- get from the size of the file
    # documentationFileSize -- get from the size of the file
    # isRTL -- from .js, KRTL\s*=\s*1
    # encodings -- from .kmx (existence of .js implies unicode)
    # packageIncludes -- from kmp.inf?
    # version -- from kmp.inf, js
  