Analytics catalog
Typed analytics — defineEvent + createAnalytics; track is compile-checked.
Declared, Schema-typed events: track is typed against the catalog (wrong name
/ payload = a compile error) + validated at runtime. One discoverable taxonomy.
const analytics = createAnalytics([
defineEvent('checkout.started', Schema.Struct({ plan: Schema.String })),
], sink)
analytics.track('checkout.started', { plan: 'pro' }) // typed + validatedBuilds on defineTracking (the declarative per-component event map).