{
  "_comment": [
    "Where /audio/<prefix>/... resolves to on disk. Read by vite.config.ts in dev",
    "and by armada/serve.py in production, so the SPA's URLs are identical in both",
    "\u2014 a UI that only works under `npm run dev` is a demo, not a tool.",
    "",
    "Masters live outside the repo (they are gigabytes). Mounting them by prefix",
    "keeps the URLs stable while the paths move between gigs, and keeps `heads`",
    "and `full` apart \u2014 `master split` names both '01 - Title.flac', so a single",
    "flat mount would serve the 98 MB track when the UI asked for the 16 s head.",
    "",
    "'samples' is the whole custom sample root, not just one pack, so the kit",
    "auditioner works on every kit PLN owns \u2014 the 163 already there and every",
    "one the Foundry cuts next \u2014 without a config change per pack."
  ],
  "mounts": {
    "bounds": "/home/pln/Work/Sound/Prod/Opal26_master/bounds_v4",
    "full": "/home/pln/Work/Sound/Prod/Opal26_master/tracks_v4_streaming",
    "full-club": "/home/pln/Work/Sound/Prod/Opal26_master/tracks_v4_club",
    "heads": "/home/pln/Work/Sound/Prod/Opal26_master/heads_v4",
    "joins": "/home/pln/Work/Sound/Prod/Opal26_master/joins_v4",
    "samples": "/home/pln/Work/Sound/Samples",
    "": "/home/pln/Work/Sound/Tidal/armada/tide-table/punkachien"
  }
}
