Martin 1.0.x-dev
-----------------

Initial development release. Requires Drupal 11.4 or 11.5, PHP 8.3 or later
and the Leaflet module. Drupal 12 support follows once Leaflet supports it.

Servers
- Add the Martin server configuration entity with a base URL (used by Drupal to
  read the catalog), a public URL (used by browsers), a timeout and a status.
- Add the martin.client service that reads /catalog and TileJSON from a
  server. Responses are cached in the cache.martin bin with server cache tags,
  failures are logged and never thrown, and fields missing in the responses of
  different Martin versions are tolerated.
- Add the administration pages at /admin/config/services/martin: server list,
  add, edit and delete forms, and a catalog summary with a "Refresh catalog"
  button on the server page.

Maps
- Add the Martin map configuration entity: server, base style (a catalog style
  or an external style URL), center, zoom limits and an ordered list of layers
  (fill, line, circle, symbol and raster) with basic paint settings.
- Add the map form. Choosing a server loads its sources, styles and source
  layers with AJAX; a "Load server data" button does the same without
  JavaScript. Layers can be added, removed and reordered.

Display
- Add the Martin map block and the Martin map field formatter for entity
  reference fields that point to Martin maps. Both draw the map with MapLibre
  GL JS through the MapLibre GL Leaflet binding of the Leaflet module, so no
  library is bundled and no CDN is used.
- Browsers receive only the public URL of a server. The base URL stays on the
  server.
- Anyone can view a map; who sees it on a page is decided by the access to the
  block or the field. Managing servers and maps needs the "administer martin"
  permission.

Quality
- Add kernel and functional tests, a help page, and a GitLab CI configuration
  that runs phpcs, PHPStan level 1, ESLint, Stylelint, CSpell and PHPUnit on
  Drupal 11.4 and 11.5 with PHP 8.3 and the maximum supported PHP version.
