@andrewilley that seems to be correct. There are priorities though, which I will try to outline here.
lengthS == [length:] tag. +/-2s. difference is accepted. If no [length:] provided, it's not used for the matching, or, in other words, any track length matches such LRC
"+" and "/" means "AND" here
folder_path, title, artist, album, etc. here means folder path, title, artist, album etc. track tags should match exactly the LRC folder path, [ti:], [ar:], [al:] (case insensitive) etc.
the list sorted by the priority (first number). The rules are processed in that order until match happens. Lower priority match won't override the higher priority match
artist, album tags should not be "Unknown *"
simpleFilename == filename without the last extension
plain text in LRC file still may get title and artist tags from its filename, based on "title - artist.lrc" pattern with an optional track number prefix or suffix (the same way as track filenames are parsed)
otherwise, plain text in LRC is processed as LRC file without any tags, so it may be matched by the rule 600
- 1000 folder_path + title/artist/album + lengthS
- 900 folder_path + title/artist + lengthS
- 800 title/artist/album + lengthS
- 700 title/artist + lengthS
- 600 folder_path/(simpleFilename or name_without_number) + lengthS
- 500 folder_path + title_tag + lengthS
- -1 no match