From 8f08143d42fdc85906c3ccde1c80391d115f5c56 Mon Sep 17 00:00:00 2001 From: ImmutableJeffrey Date: Thu, 30 Apr 2026 18:46:03 +1000 Subject: [PATCH 1/2] docs(audience-sdk): apply XML doc style to public surface (SDK-216) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds XML doc comments to every public type and member of Immutable.Audience.Runtime, enables doc-file generation, and turns on CS1591 enforcement so future public surface without a breaks the build. Files documented: - ConsentLevel.cs: enum + 3 cases. - IdentityType.cs: enum + 8 cases. - AudienceError.cs: AudienceErrorCode enum (5 cases) plus AudienceError class, Code property, and constructor. - AudienceConfig.cs: class plus 11 public properties. - Events/IEvent.cs: interface plus EventName and ToProperties. - Events/TypedEvents.cs: ProgressionStatus, ResourceFlow enums plus Progression, Resource, Purchase, MilestoneReached classes (with on the IEvent impls). - ImmutableAudience.cs: static class plus 6 properties (Initialized, CurrentConsent, UserId, AnonymousId, SessionId, QueueSize) and 11 methods (Init, Track x2, Identify x2, Alias x2, Reset, DeleteData, SetConsent, FlushAsync, Shutdown). - Core/Constants.cs: DistributionPlatforms class plus 5 string constants. Style applied: - Property summaries are noun-phrase, not "Gets..." or imperative. - Method summaries are imperative. - Sentence case, period at end. British spelling. - Negative-space stated for nullable members where non-trivial. - for sibling references; for See Also. - per parameter; on Tasks; on documented throws. - on interface impls. - only where it carries load-bearing consumer-facing info (handling semantics, persistence guarantees, swallow contracts, negative-space). Internal mechanics stay out of public docs. - No "Gets/Sets" prefix, no "(RO)" suffix, no marketing language. - No em-dash, no emoji or symbol glyphs. - See code-review/audience-comment-style.md for the full ruleset. Maintainer-only blocks (threading invariants, lock notes, Phase 1/Phase 2 commentary, IL2CPP rationale) stay as // line comments per §6 of the style doc. Audience.Runtime.csproj: - true emits Immutable.Audience.Runtime.xml beside the DLL on every build. - CS1591 fires when any future public surface is added without a . No NoWarn suppression. dotnet build clean: 0 warnings, 0 errors. No code behaviour changes. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../Audience/Runtime/Audience.Runtime.csproj | 4 + .../Audience/Runtime/AudienceConfig.cs | 75 +++++++-- .../Audience/Runtime/AudienceError.cs | 62 ++++++- src/Packages/Audience/Runtime/ConsentLevel.cs | 23 ++- .../Audience/Runtime/Core/Constants.cs | 15 +- .../Audience/Runtime/Events/IEvent.cs | 26 ++- .../Audience/Runtime/Events/TypedEvents.cs | 143 ++++++++++++++--- src/Packages/Audience/Runtime/IdentityType.cs | 26 ++- .../Audience/Runtime/ImmutableAudience.cs | 151 ++++++++++++++---- 9 files changed, 441 insertions(+), 84 deletions(-) diff --git a/src/Packages/Audience/Runtime/Audience.Runtime.csproj b/src/Packages/Audience/Runtime/Audience.Runtime.csproj index 46635dc4e..8a7e3eb4a 100644 --- a/src/Packages/Audience/Runtime/Audience.Runtime.csproj +++ b/src/Packages/Audience/Runtime/Audience.Runtime.csproj @@ -5,6 +5,10 @@ disable Immutable.Audience.Runtime + + true