Polymorphism as a first-class type
A bonus reward can be a currency, an item or a skill — each with different fields. In LSL it's a single union type with a discriminator: the admin UI renders the right sub-form, and the validator checks the data before saving.
- relation — links between collections with filters and target existence checks
- union — one of several structures chosen by a discriminator field
- dictionary — maps like "currency → amount"
- i18n_string — translatable fields with automatic indexing