--- // Community membership. Signed in: on first sign-in a country site auto-writes an // `eu.atcommons.member` record to the user's own PDS (subject = the commons DID), asserting that // site's country, so logging in makes you a member. The /members "Become a member" card then shows // "You're a member · Leave". Leaving deletes the record and remembers the choice (localStorage), so // we never silently re-join someone who left. Enumeration for the members list happens at build // time via the backlink index (see member-index.ts). // // The record's `countries[]` is accumulating and sticky (see the lexicon): joining a second country // ADDS to the list, and we never remove one. So `join()` merges rather than replaces. // // The .eu aggregate has no country of its own, so it never auto-joins — it would have nothing // truthful to put in the required `countries[]`. Instead it shows a country picker; the member // chooses one or more of the communities we run, and we write (or merge) those. "eu" is never a // value: the lexicon forbids region/continent codes. ---