SXCHNGE analytics
Shared pure-Dart analytics contract, semantic journey recorder and bounded in-memory dummy service. No PostHog SDK, network, persistence or logging.
final analytics = DummyAnalyticsService();
final recorder = JourneyRecorder(analytics);
final operation = recorder.begin(JourneyKind.login, JourneyStep.login);
recorder.finish(operation, simulated: true, terminal: true);
final captured = analytics.events; // immutable snapshot
recorder.dispose();
Inject an AnalyticsService implementation to replace the sink. Consumers do not
await analytics. See the auth journey contract
for schema, metric definitions, simulation rules, privacy, retry/abandonment
semantics, PostHog adapter guidance and measurement limitations.
Run flutter test and flutter analyze here. The production library imports
only Dart SDK libraries and can be reused by web and mobile.