What's Changed
* Simplify Gramps configuration by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1955
* Finetune `betty.serde.dump`'s typing by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1958
* Improve `GrampsLoader` by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1959
* Fix event type configuration by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1960
* Make presence roles configurable by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1957
* Make project names valid machine names by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1961
* Add place types by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1963
* Add genders by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1964
* Use `ShorthandPluginBase` everywhere by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1965
* Ensure Attrs are properly typed depending on whether they are required or optional by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1966
* Add a Serde Load API by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1968
* Rename `UnknownEventType` to `Unknown` by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1969
* Add predefined media types by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1971
* Add the Unknown presence role, and make it the fallback by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1970
* Remove dead code from `betty.job.Context` by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1967
* Add copyright texts by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1973
* Meta event types must not extend `ShorthandPluginBase` by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1976
* Improve docstring alterations by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1977
* Add `IndependentFactory` by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1975
* Move `betty.generate` and `betty.load` under `betty.project` by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1974
* Organize presence roles, and ensure all default Gramps roles can be loaded by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1979
* Organize concrete place type implementations into a submodule by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1982
* Organize concrete media type implementations into a submodule by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1980
* Organize concrete gender implementations into a submodule by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1981
* Organize concrete event type implementations into a submodule by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1983
* Organize privacy into a submodule by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1984
* Move `HasMediaType` to a submodule by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1986
* Move `HasDescription` to a submodule by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1988
* Make the Date API a top-level API by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1989
* Move `HasLocale` to a submodule by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1987
* Move `HasDate` to a submodule by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1991
* Move `Name` to a submodule by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1990
* Organize links into a submodule by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1985
* Move `Note` and `HasNotes` to a submodule by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1993
* Move `HasFileReferences` to a submodule by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1994
* Move `HasCitations` to a submodule by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1995
* Move `Place` to a submodule by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1996
* Move `File` to a submodule by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1997
* Move `Person` to a submodule by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1998
* Move `Enclosure` to a submodule by bartfeenstra in https://github.com/bartfeenstra/betty/pull/1999
* Move `Source` to a submodule by bartfeenstra in https://github.com/bartfeenstra/betty/pull/2000
* Move `PersonName` to a submodule by bartfeenstra in https://github.com/bartfeenstra/betty/pull/2001
* Move `FileReference` to a submodule by bartfeenstra in https://github.com/bartfeenstra/betty/pull/2002
* Move `Event` to a submodule by bartfeenstra in https://github.com/bartfeenstra/betty/pull/2003
* Move `Citation` to a submodule by bartfeenstra in https://github.com/bartfeenstra/betty/pull/2004
* Move `Presence` to a submodule by bartfeenstra in https://github.com/bartfeenstra/betty/pull/2006
* Move `HasNotes` to a submodule by bartfeenstra in https://github.com/bartfeenstra/betty/pull/2005
* Merge `betty.extension` into `betty.project.extension` by bartfeenstra in https://github.com/bartfeenstra/betty/pull/2007
* Do not include the file path when computing a file's content hash by bartfeenstra in https://github.com/bartfeenstra/betty/pull/2010
* Remove `ConfigurationCollection`'s `to_key()`, `to_keys()`, `to_index()`, and `to_indices()` by bartfeenstra in https://github.com/bartfeenstra/betty/pull/2011
* Remove the Attr API by bartfeenstra in https://github.com/bartfeenstra/betty/pull/2008
* Add a Repr(esentation) API by bartfeenstra in https://github.com/bartfeenstra/betty/pull/2012
* Upgrade to setuptools 75 by bartfeenstra in https://github.com/bartfeenstra/betty/pull/2013
* Lower the lifetime threshold to 123 by bartfeenstra in https://github.com/bartfeenstra/betty/pull/2015
* Add (de)serialization format plugins by bartfeenstra in https://github.com/bartfeenstra/betty/pull/2016
* Rename `Copyright` to `CopyrightNotice` by bartfeenstra in https://github.com/bartfeenstra/betty/pull/2018
* Decouple `_Populator` from `Project` by bartfeenstra in https://github.com/bartfeenstra/betty/pull/2021
* Disambiguate the different factory methods by bartfeenstra in https://github.com/bartfeenstra/betty/pull/2023
* Organize the URL API and decouple it from `Project` by bartfeenstra in https://github.com/bartfeenstra/betty/pull/2024
* Fix incorrectly documented plugin repositories by bartfeenstra in https://github.com/bartfeenstra/betty/pull/2026
* Add a copyright notice for works in the public domain by bartfeenstra in https://github.com/bartfeenstra/betty/pull/2027
* Test that plugins are public by bartfeenstra in https://github.com/bartfeenstra/betty/pull/2028
* Allow the default Gramps plugin mappings to be overridden per key by bartfeenstra in https://github.com/bartfeenstra/betty/pull/2030
* Add a copyright notice for Wikipedia contributors by bartfeenstra in https://github.com/bartfeenstra/betty/pull/2029
* Fix a typo in the Dutch translations by bartfeenstra in https://github.com/bartfeenstra/betty/pull/2031
* Make the Assets API asynchronous by bartfeenstra in https://github.com/bartfeenstra/betty/pull/2032
* Make `TestCoverage` less verbose by bartfeenstra in https://github.com/bartfeenstra/betty/pull/2034
* Fix a bug where the Assets API did not return the correct paths for files on disk by bartfeenstra in https://github.com/bartfeenstra/betty/pull/2033
* Fix missing assets from distributions by bartfeenstra in https://github.com/bartfeenstra/betty/pull/2035
**Full Changelog**: https://github.com/bartfeenstra/betty/compare/0.4.0a10...0.4.0a11