Index: src/services/MusicBrainzService.js
===================================================================
--- src/services/MusicBrainzService.js	(revision a1178626b3c552f9fffcedb21e83001e34248067)
+++ src/services/MusicBrainzService.js	(revision f59a46cef840d0f6005427b2265304d01d519292)
@@ -20,4 +20,8 @@
  */
 import { safeFetch } from './ActivityPubService.js';
+// De twee pure vormcontroles wonen in ap-core: ActivityPubService heeft ze ook
+// nodig voor de actor, en zonder die verhuizing zou dat een KRINGLOOP zijn --
+// deze module leent immers safeFetch dáár.
+import { isMbid, artiestUrl } from './ap-core.js';
 
 const BASIS = 'https://musicbrainz.org/ws/2';
@@ -97,13 +101,6 @@
 }
 
-/** Is dit een MBID? Een UUID, en niets anders. */
-export function isMbid(s) {
-  return /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(String(s || '').trim());
-}
-
-/** De publieke pagina van een artiest, of null als het geen MBID is. */
-export function artiestUrl(mbid) {
-  return isMbid(mbid) ? `https://musicbrainz.org/artist/${String(mbid).trim().toLowerCase()}` : null;
-}
-
+// Her-geexporteerd zodat een aanroeper er niet over hoeft na te denken waar
+// ze precies wonen.
+export { isMbid, artiestUrl };
 export default { zoekArtiesten, isMbid, artiestUrl };
