* Remove unused
* Create DatabaseVM
* Update sequences in test dictionary
* Update documentation
* Add second valid testing dictionary
* Set up translator tests
* Write expected data
* Update translator to flag redundant tags instead of remove
* Update how compact tags are shown in the popup
* Pass compactTags option to note builder
* Update options templates
* Add options upgrade
* Add options upgrade test
* Remove unused function
* Update expresionMulti detection
* Simplify kanji early escape
* Simplify frequency/pitch data creation
* Update implementation of _buildTermMeta
* Update how pitch accents sources are collected
* Remove old _buildTermMeta
* Simplify variable name
* Add dictionaryNames array
* Update how the dictionary field is assigned
* Use "dictionary" instead of "title" for consistency
* Remove redundant dictionary name
* Use _expandTags to create pitch accent tags
* Add abstraction: _getDefinitionPrimaryExpressionAndReading
* Reuse existing definitions in a sequence
* Revert change to related definition source/rawSource/sourceTerm
* Update _getDefinitionPrimaryExpressionAndReading to return best match
* Group reduction functions together
* Group simple helpers
* Add label comments
* Move core _findTerms functions to top
* Move _getSecondarySearchDictionaryMap and _getDictionaryPriority
* Move tag helpers
* Move _getTextOptionEntryVariants
* Move functions up
* Move functions up
* Update label comments
* Add sourceTerm field to 'term' and 'termGrouped' definitions
* Fix comparison of expressions which are always the same
* Rename/restructure term info map
* Add source term
* Add sourceTerm to expressions array
* Reuse furiganaSegments
* Add helper function _createExpressionDetailsListFromTermInfoMap
* Add expressions array to termMergedByGlossary
* Add expressions to definition types 'term' and 'termGrouped'
* Rename expressionDetails* to termDetails*
* Correct the source/rawSource/sourceTerm for related sequenced definitions
* Simplify structure of sequencedDefinitions
* Remove TODO
* Refactor internal options for findTerms to not use the settings object
* Move findTerms/findKanji options creation
* Deconstruct used options values to variables before any await calls
* Rename findTermsOptions to just options
* Add documentation comments
* Add type information about definitions
* Add helper function _getSecondarySearchDictionaryMap
* Use spreads instead of concat
* Create helper function for assigning disambiguation info
* Add _getTermTagsScoreSum helper
* Rename variables
* Move assignment of definition details
* Convert databaseDefinitions to standard definitions
* Move creation of definitions
* Always pass definitionsByGlossary directly to _mergeByGlossary
* Refactor how used definitions are tracked
* Change _mergeByGlossary parameters
* Simplify _mergeByGlossary
* Generate definition structure at the end of the function
* Add reusable function to clone a tag
* Restructure merged sub-definition creation
* Move setup of totalExpressionSet/totalReadingSet
* Track all definitions with matching glossary
* Move creation of definitionTags
* Update score calculation for multiple definitions
* Disambiguate function name
* Rename variables
* Add helper function _createMergedGlossaryTermDefinition
* Remove rarely used check for secondary search results
Unclear what the purpose was since it was almost never used
* Update data structure
* Rename function/variable
* Add helper functions _createMergedTermDefinition
* Assign expressionDetails to variable
* Add rawSource to grouped definitions
* Use shared function for creating unused definition entries
* Add helper function _createMapKey
* Refactor _createExpressionDetails
* Change argument order
* Add _getTagNamesWithCategory helper
* Optimize _compressDefinitionTags
* Add _createGroupedTermDefinition helper
* Add type information
* Use consistent order for term definition fields, add comments for omitted fields
* Remove unused index field
* Add helper function _createKanjiDefinition
* Update types
* Add frequencies/pitches arrays
* Update terms array setup
* Simplify for loop
* Remove redundant property assignment
* Simplify how deinflections with no definitions are ignored
* Ensure duplicates are removed
* Rename variable
* Add comments about duplicate data
* Refactor variable/parameter names
* Move functions
* Rename functions
* Rename variable
* Add dictionaryPriority field
* Simplify priority comparison
* Rename argument
* Optimize comparison function when dictionary priority is not needed
* Add length check
* Remove unused parameter
* Rename variables/parameters
* Rename dictionaries to enabledDictionaryMap
* Store compactTags/mainDictionary options to variables
* Refactor _getSearchableText
* Simplify object structure of deinflections
* Modify existing array when removing duplicates
* Update _sortDefinitions to not return a value
* Use explicit argument value
* Use a Collator for string comparisons
* Simplify order comparison
* Improve tag creation and sanitization
* Switch .map to a for loop, skip null meta
* Add _createKanjiStat
* Move _sortDefinitions definition
* Fix kanji stat sorting
* Remove return value from _sortTags
* Add _sortKanji
* Add fast exits for sorting
* Add _sortDefinitionsByIndex
* Combine sort function
* Improve creation of kanji definition data
* Use "databaseDefinitions" instead of "definitions" to disambiguate
* Simplify
* Simplify further
* Simplify max length calculation
* More destructuring
* Use databaseDefinitions variable name
* Move _mergeBySequence body into _getSequencedDefinitions
* Use databaseDefinitions field name
* Move maxLength calculation
* Use shared _createTermDefinitionFromDatabaseDefinition
* Simplify map
* Move definition sorts for better consistency and less redundancy
* Move _createExpression function
* Update setup of sequenced definitions
* Simplify for loop
* Move simple find sort into translator.js
* Remove unused
* Use direct reference to database
* Make field private
* Remove statics
* Convert functions to private
* Organize by public/private
* Revert audio fetching functionality to use XMLHttpRequest
* Replace requestJson
* Replace requestJson
* Replace requestJson
* Replace requestJson and requestText
* Fix tests
* Include support for vulgar word searches
* Remove request.js
* Update onProgress callback to handle multiple arguments
* Add apiImportDictionaryArchive
* Add apiDeleteDictionary
* Make onProgress the last argument for consistency
* Remove deprecated util functions
* Fix issue with missing progress args
* Remove function calls which modify the database from Translator
* Update tests
* Fix errors not being serialized correctly in _createActionListenerPort