ExperienceContext
The subject of an experience.
Sealed deliberately: the API requires exactly one of trip, cart, or topic, and a sealed type makes "two of them" unwritable rather than a 422. This is the compile-time exclusivity the proposal asks for.