De mixtape als eigen soort: data en draad
Een bandje is geen album en geen afspeellijst. Een album is een uitgave -- de
nummers bestaan er los van. Bij een mixtape is de VOLGORDE het werk en zijn de
nummers onderdelen. Vandaar een eigen soort, en op de draad een enkel object
met de nummers erin.
De valkuil zat in de vorm die er al stond. De keuze album/playlist stond vijf
keer als x === 'playlist' ? 'playlist' : 'album' verspreid over drie
bestanden, en zo'n vorm valt bij een derde soort niet om -- hij slikt hem. Een
mixtape zou stilzwijgend een album zijn geworden en als Album de deur uit gaan.
De lijst staat nu een keer, in de pure gedeelde module, want die kent de
browser ook.
Op de draad:
- type is de STRING 'Mixtape'. Geen array, en dat is geleerd: bij de
playlist-collectie stond ooit ['OrderedCollection','Album'] -- geldig AS2 en
werkelijk allebei -- en een lezer die type als tekst uitpakt (Shaer) verloor
daarmee stil het hele object.
- orderedItems op het object zelf, niet een collectie ernaast.
- Geen released en geen musicbrainzId: die zouden beweren dat dit een uitgave
is.
- Geen eigen url. Robins keuze: het bandje is een omhulling, geen gerenderd
bestand. Prijs ervan is opgeschreven bij de functie -- wie het type niet kent
heeft geen stream, al staan de nummers er stuk voor stuk in.
Een mixtape met losse tracks erbij blijft een mixtape. De oude regel maakte
daar een album van met bonustracks; dat klopt voor een plaat en niet voor een
bandje. Album en playlist houden bewust hun oude gedrag, want dat zijn
bestaande posts.
Acht tests, waaronder de weg door de database heen in plaats van langs een
handgemaakte opzoeker.
Co-Authored-By: Claude Opus 5 <noreply@…>