The catalogue loads over our own JSON API using the api
helper (session cookie + CSRF, no bearer token). Clips play in an in-page
Plyr
player bundled into the island.
"Save" shows the canonical dual-transport pattern: if (live) live.pushEvent(…) else api.post(…).