Audience: player.
PREREQUISITE (contract-v2 A4): character.ownerUid is an NC uid — remap to a domain ref (player/contact UUID).
Read: own characters, events (public list), xpAwards (via character), skill/item/condition catalogs.
Create: character (whitelist name/background/ocName; exclude approved, slNotesPrivate); event signup — reconcile with the NC-Forms signup leaf.
Actions: submit character for approval, sign up / withdraw from event.
Inbox: character-approved, event announcements (ownerUid is documented as the per-player notification key today — becomes the domain ref).
Per ADR-046 + contract-v2 amendment (hydra, 2026-07-06) and the fleet review PORTALIQ-FLEET-REVIEW-2026-07-06.md (apps-extra). Delivery: one portal-contribution openspec change in this repo — a plain OCA\{App}\Portal\PortalContributionProvider (duck-typed: getAudiences(): array + getContribution(array $subject): ?array; NO portaliq import, NO info.xml dependency — without portaliq the class is inert). Data stays in OpenRegister; portaliq reads it scoped by the declared scopeField. Scoping properties must be UUID domain refs, never NC user IDs.
Gemigreerd van Codeberg — oorspronkelijk Conduction/larpingapp#51, geopend door rubenvdlinde op 2026-07-06.
Audience:
player.PREREQUISITE (contract-v2 A4):
character.ownerUidis an NC uid — remap to a domain ref (player/contact UUID).Read: own characters, events (public list), xpAwards (via character), skill/item/condition catalogs.
Create: character (whitelist name/background/ocName; exclude
approved,slNotesPrivate); event signup — reconcile with the NC-Forms signup leaf.Actions: submit character for approval, sign up / withdraw from event.
Inbox: character-approved, event announcements (ownerUid is documented as the per-player notification key today — becomes the domain ref).
Per ADR-046 + contract-v2 amendment (hydra, 2026-07-06) and the fleet review
PORTALIQ-FLEET-REVIEW-2026-07-06.md(apps-extra). Delivery: oneportal-contributionopenspec change in this repo — a plainOCA\{App}\Portal\PortalContributionProvider(duck-typed:getAudiences(): array+getContribution(array $subject): ?array; NO portaliq import, NO info.xml dependency — without portaliq the class is inert). Data stays in OpenRegister; portaliq reads it scoped by the declaredscopeField. Scoping properties must be UUID domain refs, never NC user IDs.Gemigreerd van Codeberg — oorspronkelijk Conduction/larpingapp#51, geopend door
rubenvdlindeop 2026-07-06.