generateTrackerExtensions

Generates a single Kotlin source file with one Tracker.track<EventName>(...) extension function per events, typed from each event's declared properties. Required properties become non-nullable parameters; optional properties become nullable parameters defaulting to null and are omitted from the emitted event when left null.

parseTrackingPlan already rejects colliding function/parameter names, so this function assumes events is already validated.