Music for Merlot. Both tracks are CC0 1.0 Universal from OpenGameArt - free
for any use, commercial included, no attribution required. Credited here
anyway, with thanks.

  lobby.ogg         "Catchy Swing" by doge
                    https://opengameart.org/content/catchy-swing
  battle.ogg        "Jazzy Battle Theme" by mintodog
                    https://opengameart.org/content/jazzy-battle-theme
  lobby-piano.ogg   "Red Heels (piano ver)" by nero001  - the alternate lobby
                    https://opengameart.org/content/red-heels-piano-ver
                    track, reached with ?music=piano

Why these three out of a dozen downloaded: Merlot is set in a winery, so the
brief was a wine bar rather than a dungeon - the two dungeon-ambience loops
that were the first thing found are still in art/music-candidates/, unused.
Everything considered is measured in art/music-candidates/probe.json
(art/music_probe.py): length, tempo, brightness, crest factor and loudness.
A battle theme that is already jazz is the one track that belongs to both
halves of this game at once, which is why it took the match slot on the spot.

None of these files is the original download. Each went through

    python3 art/music_loop.py <source> public/music/<name>.ogg --beats N

which folds the tail over the head across a whole number of beats so the file
loops seamlessly by itself, and matches the levels. N was chosen by sweeping
1/2/4/8 and keeping the quietest wrap:

  lobby.ogg    1 beat   wrap 4.09 -> 0.04 sigma above an ordinary bar line
  battle.ogg   2 beats  wrap 3.24 -> 1.34
  piano        2 beats  wrap 0.02 -> -0.74   (it was already near-seamless)

To swap a track: put the new source in art/music-candidates/, run
art/music_probe.py over the folder, then music_loop.py onto the name above.
Nothing in the client needs editing unless the level moves - the per-track
gains live in the MUSIC table in public/index.html.
