I'm trying to think how this could be prevented from happening in future. (Can't you tell I'm a programmer?)
Last year, one of ningenさん's entries was getting misclassified as "art" because it had the word "art" in the title, and Resonite shoved that into the tags list. I don't remember exactly what happened here - I think ningenさん changed the world title to work around the problem?
So I suspected that this would be a repeat of that, but it seems the tags are correct here. So the problem is somewhere between "the brain of the person who made the world" to "Medra's mouth" inclusive.
Any solution to this requires the following:
- Worlds get put into an authoritative world list. Each entry has the world name, the team name, the world URL, and the category. (Private information such as email addresses can be tracked, but must not leak in public-facing views of the list.)
- All key pieces of information on each world must be based on the authoritative world list, and be kept in sync with it. (For stuff that doesn't synchronise, an "Information correct as of YYYY-MM-DD" note will suffice.)
- Every view of the world list must be directly read from the authoritative world list. The world's category must be computed from the list, and must not be computed from the world tags. **This includes Resonite itself.**
- Teams can request changes to their entries in the authoritative world list up until a point in time (say, 48 hours before the public voting booths are opened). Once the cut-off point is reached, the list gets frozen, and no more modifications can be made.
- Changes made to the list must be accompanied with an authoritative append-only changelog.
- Judging and categorisation (and choosing a winner) must be based on the data that appears in the world list, and must not deviate.
Ideally you'd also be able to have a frozen snapshot of all of the worlds, but achieving that would ultimately require terms-of-service (ToS) violations.
... also dammit, I think I've just put my hand up to implement this, lol. I'll ask Medra next time I see him... or I could send him a message before then.
