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 + validated

Builds on defineTracking (the declarative per-component event map).