User-facing workflow
- Browse published competitions and events
- See venue, schedule, cost, and closing date
- Enter as self or linked child
- Cancel before the cut-off and request refund if needed
Events are stored in `events` and registrations in `event_entries`. The model supports free and paid entry, registration windows, capacity limits, waitlists, and parents entering on behalf of children.