[
    {
        "version": "0.1.0",
        "features": [
            "Implemented playlist shuffling",
            "Added \"Shuffle play\" button to album view",
            "Added menu bar",
            "Added release notes dialog"
        ],
        "changes": [
            "Added \"View as\" label to browser mode selector",
            "Removed unused shuffle button from the play bar",
            "Added notice dialog informing users of unsupported browsers or insecure contexts"
        ],
        "bug_fixes": [
            "Removed the ability to seek with the progress bar when nothing is playing",
            "Changed project from node to deno",
            "Made several under-the-hood improvements and fixes"
        ]
    },
    {
        "version": "0.1.1",
        "bug_fixes": [
            "Reworked the storage, retrieval, and structure of collections",
            "Fixed a bug where an album with an id of 0 was not able to play",
            "Move library loading logic into its own file"
        ]
    },
    {
        "version": "0.2.0",
        "features": [
            "Added \"About\" dialog",
            "Redesigned Release notes dialog to feature release notes from multiple versions",
            "Made music browser mode persist between sessions",
            "Added album sorting modes which persist between sessions"
        ],
        "changes": [
            "Changed styling of menubar items",
            "Removed displaying progress bar thumb on hover when nothing is playing",
            "Changed sorting of albums in the music browser to sort by album artist and then album name, instead of the order in which they happened to be scanned",
            "Disabled pointer cursor and on-hover underline for tree view items that are not clickable",
            "Disabled context menu from appearing when nothing is selected in the album view",
            "Made release notes loaded at runtime instead of being bundled into the javascript file",
            "Increased width of release notes dialog"
        ]
    },
    {
        "version": "0.3.0",
        "features": [
            "Made artists a first-class data type",
            "Added artists view to browser",
            "Changed library scanning algorithm to load all distinct covers for albums",
            "Associated each track with its own cover that is indexed into the album's covers",
            "Made the cover that appears in the play bar be the first cover of the track or the first one of the album if not present",
            "Added support for loading album covers from cover.* and folder.* image files in the album directory"
        ],
        "changes": [
            "Added support for tracks with multiple artists to support the artists correctly",
            "Changed media session metadata to correctly report missing information as undefined",
            "Added focus styling for search bar",
            "Album sorting changed to ignore articles that precede names"
        ],
        "bug_fixes": [
            "Reduced parallel file loading from 256 to 4 to improve locality and loading times"
        ]
    },
    {
        "version": "0.3.1",
        "features": [
            "Added breadcrumbs to the browser header for hierarchical navigation",
            "Utilized browser history to be able to return to previously visited browsing contexts",
            "Added track count and total duration to the album view"
        ],
        "changes": [
            "Made external hyperlinks always underlined"
        ],
        "bug_fixes": [
            "Changed the main entry file to typescript"
        ]
    },
    {
        "version": "0.3.2",
        "features": [
            "Added non-persistent resizing for the playlist and sidebar panels"
        ],
        "changes": [
            "Made menu items that do not have any action or submenu appear grayed out and disabled",
            "Fixed an alignment issue in the album view"
        ],
        "bug_fixes": [
            "Updated dependency music-metadata",
            "Fixed menu typing issues",
            "Fixed menu click-away logic",
            "Removed unused menu css",
            "Fixed various menu-related bugs",
            "Fixed a bug where clearing the playlist while the player is playing does not stop the playback",
            "Fixed a bug where clearing the player would not remove the browser's media session entry"
        ]
    },
    {
        "version": "0.3.3",
        "features": [
            "Added artist view",
            "Made all links to artists navigate to the appropriate artist view, if available",
            "Added breadcrumb support for artists"
        ],
        "changes": [
            "Made the track and album count of albums and artists use a singular wording if there are only one item of either"
        ],
        "bug_fixes": [
            "Fixed a bug where the tracks view of a parent collection did not include its children's tracks",
            "Added a default flag for menu items, enabling double-click execution without opening the menu"
        ]
    },
    {
        "version": "0.3.4",
        "features": [
            "Added support for adding tracks to and removing tracks from collections",
            "Added support for creating collections when adding tracks to them",
            "Made the volume adjustable by scrolling in addition to clicking and dragging",
            "Improved first-time experience with dialogs to guide through the setup process"
        ],
        "changes": [
            "Added ellipsis overflow to tree view items that extend beyond the allotted space"
        ],
        "bug_fixes": [
            "Fixed a bug where the number of albums and tracks of an artist did not respect the currently active collection",
            "Made the menu system more adaptable using callbacks and auto-expanding arrays",
            "Moved all menu items common to tracks into its own function",
            "Added observers for collections to automatically update the UI when collections change"
        ]
    },
    {
        "version": "0.4.0",
        "features": [
            "Created cassette recorder tool"
        ],
        "changes": [
            "Updated the playlist so that when a track change is made, it always updates, even if it is changed to the same track as is currently playing"
        ],
        "bug_fixes": [
            "Updated the media controls so they are disabled while the cassette recorder is playing"
        ]
	},
	{
		"version": "0.5.0",
		"features": [
			"Updated the music library scanning logic so that it re-scans the library and updates upon every page load",
			"Added release year to album display if the tracks in the album have a year set",
			"Added the ability to view all covers for an album with an image carousel"
		],
		"changes": [
			"Changed collection logic so empty collections are automatically removed"
		],
		"bug_fixes": [
			"Modified the music library to support re-scanning and updating without destroying and recreating everything",
			"Switched from Iconify icon web components to a single svg with symbols to remove layout jitter and icon load delay",
			"Fixed cover image stretching in player album cover mini view",
			"Utilized preload link tags to preload all required assets as quickly as possible",
			"Changed the linking between tracks and album covers so a track can contribute multiple covers"
		]
	},
	{
		"version": "0.5.1",
		"features": [
			"Added custom themes and presets, including the highly awaited dark mode",
			"Added selection and functionality similar to the album view tracks list to the music browser track view"
		],
		"changes": [
			"Changed the lyrics panel so that it can be opened at any time",
			"Gave each lyric line a hanging indent on horizontal overflow to make it more easily distinguishable from a new line"
		],
		"bug_fixes": [
			"Restyled progress bars with custom elements and styling to support theming"
		]
	},
	{
		"version": "0.5.2",
		"features": [
			"Implemented proper error handling for track loading and playback"
		],
		"changes": [
			"Disabled 'Play next' context menu item when the playlist is empty",
			"Sorted collections alphabetically in context menus",
			"Changed style sheet to allow for easier, more thorough customizability",
			"Updated preset themes to match updated style sheet"
		],
		"bug_fixes": [
			"Fixed an issue where the first track would be loaded unnecessarily when adding to an empty playlist in a 'play all' operation, only to be immediately replaced",
			"Fixed a bug where removing a track would not also remove it from any collections it was a member of, which would lead to bugged collections"
		]
	}
]