From 54e569bea3374937a85f81f2a7ba41cc0e14c7d9 Mon Sep 17 00:00:00 2001 From: dhkatz Date: Thu, 29 Oct 2026 02:34:47 -0700 Subject: [PATCH] Latest revision by default; pins are opt-in per product, for what one wears Co-Authored-By: Claude Opus 5.5 --- docs/design.md | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/docs/design.md b/docs/design.md index 36f387a..74ada39 100644 --- a/docs/design.md +++ b/docs/design.md @@ -138,9 +138,11 @@ number, `productdata///`) but hardly shows them; T5DE shows them o - **History on every product's page**, for everyone: each revision's number and date, the creator's notes (what changed, required when publishing), a preview image, the files added, removed or changed (with sizes), its rating, and which catalogs host it. Any two revisions can be compared. -- **Which revision people get**: by default an outfit follows the **latest** revision, as on IMVU. A wearer can - instead **stay on** a revision (if they prefer an older look), shown as such on their outfit. What a wearer - broadcasts in a room is always a concrete revision, so everyone sees the same one. +- **Which revision people get** (**Decided**): always the **latest**, everywhere, by default. A person can opt in, + per product, to **stay on** a revision they prefer: a setting on the product's page, kept per person (all their + IMVU accounts), and only for what they wear. Rooms always use the latest revision of their furniture. Outfits and + scenes store just the product; the proxy picks the revision when loading (the pin if there is one, else the + latest), and what a wearer broadcasts in a room is always a concrete revision, so everyone sees the same one. - **Old revisions stay available**, so outfits and rooms keep working. A creator can **retract** a broken revision: it's marked retracted in the history, and anyone following or staying on it moves to the nearest revision that isn't. Only moderation removes a revision outright (shown as "removed by moderation", with the @@ -292,7 +294,8 @@ product(id, creator, rating, slot, derived_from, price) revision(product, number, manifest_sha256, signature, notes, created_at, status, extra_maps) hosting(catalog, revision) ownership(person, product, source, price) -outfit(imvu_link, items[(product, pinned revision or latest)]) +pin(person, product, revision) +outfit(imvu_link, items[product]) room(id, owner, scene, furniture[], roles, bans) report(...), moderation_action(...), audit(...) ```