a8401bd143
Affinement PO du 2026-07-27. La Participation devient LISIBLE par tous et se réduit à trois choses : référence à l'événement, booléen `active`, did cap-less vers le profil protected du participant. Pas de description pour l'instant. Ce que ça débloque : une suppression n'est pas détectable sans la clé (vérifié), ce qui imposait un nudge forgeable pour la désinscription. Un objet lisible avec un drapeau change la nature du problème — l'annulation n'est plus à DÉTECTER, elle est à LIRE. Le blocage disparaît au lieu d'être contourné. Le principe qui tient l'ensemble : la vérité est dans l'objet que le participant contrôle, tout message n'est qu'un indice. Un faux « purge X » conduit le créateur à lire X, la voir active, et ne rien faire. La forgerie devient structurellement inoffensive — d'où l'absence de besoin de signer les dépôts d'inbox, ce qui tombe bien : NextGraph ne l'offre pas (inbox non authentifiée, vérification de signature non implémentée et exigeant de déchiffrer). Le pointeur d'identité vise le profil protected existant, pas un second document par participation : les connexions en détiennent déjà le cap. Ajouter une connexion ne réécrit donc rien — on scelle une fois, durablement. Un champ chiffré dans la Participation aurait exigé de re-sceller à N destinataires et de réécrire à chaque nouvelle connexion (et n'est pas un primitif NextGraph : la granularité de chiffrement est le document, en tout-ou-rien). Arbitrages assumés : pas de filtrage à la lecture (Set.size est une borne haute, exacte après purge — obsolescence acceptée pour garder la lecture en O(1)) ; la purge incombe au créateur ; pas de description. Point ouvert noté : Participation passe en scope public alors que la doctrine produit la place en protected. Ce leaf décrit l'implémenté — à mettre à jour à la graduation du brief, pas avant. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014GbGgNEHRejVKoREvFuDFg