Tickety
TOPTABLE / Guest data and scenarios

Guest data and scenarios

Rachel Okonjo · updated 10 Sep

Thirteen fields. Clean, consistent, no surprises.

Field Type Notes
id string Unique
name string Required
side enum bride · groom · both. Required
role enum See KB-4 for the protocol roles. Everyone else is guest, bridesmaid, groomsman or usher
age enum baby (under 4) · child (4–9) · teen (10–17) · adult (18 and over). Always present, and a new guest starts as adult. Drives the generation mix rule
household string or null Who arrived together
partnerOf string or null Guest id. Reciprocal, present on both guests
conflictsWith string[] Guest ids. Reciprocal, present on both guests
tags string[] Free text. uni, footie, work, family, neighbours
allergies string[] nuts, shellfish, sesame, dairy. A safety matter
dietaryPreferences string[] vegetarian, vegan, pescatarian, halal, gluten free. A catering count
accessibility string[] step-free access · away from the speakers · near an exit. Recorded, not yet used
socialType enum livewire · sociable · quiet. A new guest starts as sociable

Relationships are reciprocal

partnerOf and conflictsWith appear on both guests in a pair. Setting one side sets the other, and you can resolve from either direction.

Tags are not groups

A tag is a label, not a container. A guest can carry several, "uni" and "footie" overlapping is normal, and any rule about tag groups has to cope with someone belonging to both.

Allergies are not dietary preferences

Separate fields, deliberately. One is a safety matter with a hard rule attached, the other is a catering count. KB-2 has the severities. They must never be merged into one list.

The three scenarios

Example weddings for demonstrating and testing. Each carries a guest list and a matching room.

Scenario Guests Room Seats Spare
Small and cosy 40 4 tables of 8, top table 8 40 none
Adding up 70 9 tables of 8, top table 6 78 8
Celebrity scale 200 26 tables of 8, top table 8 216 16

Small and cosy has no spare seats at all, so capacity bites immediately and every placement is forced. Mostly family, few tags, one conflict pair. Use it to demonstrate a rule.

Adding up is the realistic middle. Thirty-five households, three conflict pairs, nine tags. Complex enough to be interesting, small enough to reason about. Use it to demonstrate the solver.

Celebrity scale is the stress test. Ninety-six households, nine conflict pairs, twenty-one accessibility needs, eleven tags. Use it to find out where the layout and the algorithm fall over.

All three carry the full eight top table roles.

Where the data lives

The three files ship in the repository at public/scenarios/, generated by a seeded script so regenerating produces identical output. This page says what they are for. The files themselves are engineering's to hold.

Related pages