diff --git a/plan/achievements.md b/plan/achievements.md index 75c2097..b2a04cb 100644 --- a/plan/achievements.md +++ b/plan/achievements.md @@ -72,6 +72,39 @@ resolve. What is left is `goat lex publish`. card that link unfurls with, and the page itself. All three say only the handle today ([player-profile](player-profile.md)), because a rank that nothing has earned is a card telling a stranger something untrue. +- [ ] **Faction skinning, which is what a rank is named by.** A player picks a + faction, and it skins what is theirs: the ladder their awards are read + against, the iconography beside their name, and the colours their page + and their card are drawn in. The rank stays earned - what the faction + changes is what the rank a player has earned is *called*. + + Two halves of this exist already and neither knows about the other. + `web/src/camo/palette.ts` carries faction palettes measured off + MegaMek's own camo art by `web/scripts/megamek-camo.mjs`, so the colours + are reproducible rather than picked by eye; and the player card holds a + region for a faction mark, drawn today by nothing at all. + + Four things to decide, none of them a build step: + + - **Where the choice lives.** A faction is a thing about the player, so + it belongs in their own repository rather than in our database - which + means a collection name, and this project's rule about those: mint one + once the feature has been played, never before. + - **How one ladder maps onto another.** Factions do not run the same + number of ranks, so an award count that reads as high in one has to + read as something in every other. That mapping is the design; the + ladders themselves are just data. + - **What may be shipped.** MegaMek's camo art is CC BY-NC-SA and the + credits page says so. A faction's rank names and insignia are a + different question from a colour measured off a picture, and it is a + question to answer before the data is in the repository rather than + after. + - **Whether a skin is only ever the player's own.** A card drawn in a + faction's colours appears in the timeline of somebody who did not + choose to see it, and whatever the palette says has to survive the + contrast the site holds itself to (`web/scripts/contrast.test.mjs`). + A skin that can only be read by its owner is the safe version; a skin + that travels is the one worth having. ## Later waves, no schema change expected diff --git a/plan/player-profile.md b/plan/player-profile.md index 005bf18..9fd70a4 100644 --- a/plan/player-profile.md +++ b/plan/player-profile.md @@ -42,7 +42,11 @@ dash. Those two are the only part of this still waiting. They are drawn as em dashes on purpose: the instrument column is the one shape where that reads as pending rather than as broken. - [ ] **Room is held for three things nothing fills.** A bio, medals under - the picture, and a faction mark ghosted behind the card. The drawing + the picture, and a faction mark ghosted behind the card. The mark is the + visible end of [achievements](achievements.md)'s faction skinning, which + is also where the rank in the preview's title comes from: a player picks + a faction, and it supplies the ladder their awards are read against, the + iconography, and the colours the page and the card are drawn in. The drawing takes all three when they arrive and closes up when they have not — the instruments come up to meet the name on a card with no bio, so held-open space never reads as a hole.