The ten shelves are dead and the four tabs went with them. The IA is now
7 phases × 15 shelves, 6 surfaces reached rather than browsed, and 1 needs register —
a correct model and a terrible menu. This page is how it becomes an app: three destinations,
two gestures, and only one of the four registers is navigation at all.
Flag blue is structure. Flag red appears exactly twice on this page, on the same deadline,
because a deadline is the only thing it may mean.
Only ONE register is navigation. The other three are properties of what navigation lands on.Shelves are the navigation. Phase is derived and re-orders things. Surfaces are
gestures and have nothing in front of them. Needs are declared at the point of use and
change ordering and defaults, never availability. Say that, and the top level stops having to carry
the model — it carries the three questions a person actually arrives with.
Trip
Korea
You
tab 1 reads Saved until a trip exists hold the ⊕ 0.5s → Emergency
Trip
What about my visit?
The binder indexed by time and place: the day pages, the deadline ladder, readiness,
the map, the shortlists, the documents, the party. In country this root is today's day page.
Korea
What do I need to know — and what did I save about it?
The 15 shelves. Each is the handbook answer and your own rows, on one page, under
one heading. This is where the two halves meet, which is why the user never learns there are halves.
Capture · Emergency
Keep this. / It has gone wrong.
The only filled blue circle in the product. Tap to capture — zero decisions, raw evidence always
kept. Hold it and the shell falls away for Emergency.
You
What is mine, across every trip?
The person layer, the people you travel with, Carry, the library, offline, settings — and
Sources, which is a row here because a licence says so, not a link inside settings.
Search is not a tab, and that is the one deletion.
PRD §7.1 ranks search as retrieval path 2 of 6, ahead of shelf browse — so it has to be one tap from
everywhere, which a tab only manages from the tab bar. It is now a field pinned to the top of the
Trip and Korea roots and a glyph in every other header. A tab spends a fifth of the most valuable
furniture in the app on something that works better as a field.
2 · The bar changes shape once, and only oncephase, made visible
The three tabs never move, never change count, never change order. Only the root of tab 1
changes, and it changes for a reason the user can say out loud: I am in Korea now.
No trip
Tab 1 reads Saved
opens on Korea → shelf 1
Where in Korea is the question asked before the flight is booked. Opening a trip-shaped app
on an empty trip is the wall — so we do not open on it.
Choose
A trip, not started
Readiness leads
opens on Trip
The clocks are the content: readiness, the deadline ladder, two urgent things and only two.
The shelf order in Korea puts Entry · Money · Connectivity on top.
Prepare · Travel
In country
Tab 1 is today's day page
opens on Trip · zero taps
Retrieval is everything and offline is everything. The shelf order puts Eating · Moving ·
Manners on top. Now is band 2 of this page, not a screen of its own.
Arrive · Live · Leave
Home again
The archive
opens on Trip
Unpressurised and searchable. Secrets have expired; places are promoted to the library; the
money-with-a-tail band holds refunds in flight and deposits not returned.
After
3 · Where each of the four registers lives7 × 15 + 6 + 1
Register 1
Phase
7 · Choose → After
Computed from the trip's dates and the device clock. It chooses which band opens first on the
Trip root, the order of the 15 shelves, and which checklist group is expanded. One readout —
DAY 3 OF 11 · IN COUNTRY — and no control anywhere.
🚨 It re-orders; it never removes.
Derived → ordering
Register 2
Shelf
15 · the only list
The one register that is navigation, because it is the only one a person can name out loud
before they know the product. Fifteen is inelegant and accepted: it is what survives when one list
stops doing four jobs.
Navigation — tab 2
Register 3
Surface
6 · reached, never browsed
Show · Emergency · Now · Capture · Search · Change. Gestures with nothing in front of them.
Two live in the tab bar as the ⊕ and its hold; three are actions on the object in front of you; one is
what happens when you launch the app.
Gestures — §4
Register 4
Needs
3 scopes · person · trip · moment
No screen, no onboarding step, no menu. Declared where you already are — a step-free control
on a route, alcohol-free on a place list — or by artefact, because building the allergy card
is the declaration. Reviewed once, in You › How you travel, in the user's own words.
Point of use → ordering + defaults
🚨 Needs are not filters, and the distinction is the product.
A filter subtracts: filtering places by step-free hides every venue we have no data for, silently
converting unknown into no. Where a need would hide something, it annotates it instead.
And purpose is the sort order — its sharpest navigational consequence is suppression: for a
bereavement trip the suggestions band does not render, Ideas is absent, and no "highlights" copy
exists in that trip. Absent, not greyed out.
4 · The six surfaces are gesturesinvoked by · from where · discovered how
The third row is the one that gets skipped, and skipping it is why this app shipped a fully
working, biometric-gated, MRZ-reading document vault that no user could reach. A gesture nobody can
find is not a feature.
Surface Show
Invoked by
Tapping the show face on any object carrying a Korean string.
From
Item detail · place detail · the day page's driver band · any reviewed card.
Discovered because
The driver block is a band on the day page, the most-opened
screen in country. You meet Show before you need it.
Rule
🚨 Machine output never renders in handover typography. Provisional is
visibly, permanently different from reviewed.
No shellEmergency
Invoked by
Hold the ⊕ for 0.5s. Also the home-screen quick action, the lock-screen
widget, and the sheet you printed.
From
Anywhere — signed out, no trip, offline, cold launch, 3% battery.
Discovered because
Taught once, on the last onboarding card, which also offers
print it now. Then a permanent row at the top of You › Carry. It is the only thing in
the product bound to a hold.
🚨 And it is not red
Flag red means a deadline and nothing else. This screen is plain,
monochrome and printable — spending the urgency colour here would make it indistinguishable from a
K-ETA countdown.
Band, not screenNow
Invoked by
Launching the app. That is the whole interaction.
From
Nowhere — it is band 2 of today's day page, and in country that page is the Trip root.
Also rendered outside the app as the home-screen and lock-screen widget.
Discovered because
It is the first thing you have ever seen in this app while in Korea.
Rule
🚨 Anything that inserts a trip picker, a shelf, a spinner or a login between the tap
and the number has failed the brief. It generates nothing.
The ⊕Capture
Invoked by
The ⊕, always in the bar. Also the OS share sheet from any other
app, a paste, the camera, the photo picker.
From
Every screen here, and every app on the phone.
Discovered because
It is the only filled blue circle in the product.
Rule
🚨 No type is asked for, no shelf is asked for. Requiring a type at capture is the
quiet killer, and an empty binder is retrieved from zero times.
A field Search
Invoked by
The field pinned at the top of the Trip and Korea roots; the glyph in every
other header.
From
Everywhere. It stopped being a tab.
Discovered because
You do not have to find a field — you have to type in it.
Rule
One field, no scoping: titles, reference numbers, phone numbers, Korean strings,
note bodies, OCR text from every screenshot, and every romanisation on record.
A holdChange
Invoked by
Holding the thing being changed — a city chip, a date header, a booking
row.
From
The trip hero's city chips · the day list's date headers · any item with money or a
deadline on it.
Discovered because
It is on the object. A menu item called "Change" would be found
by nobody and understood by fewer.
Rule
It answers what is attached to Busan, and what does dropping it cost — split
into refundable until · forfeit now · already spent · nobody to tell. It computes no consequences and
proposes no new plan.
5 · One shelf, viewed twice — this is where the halves meetregister 2, in detail
9:41LTE · 100%
Shelf 08
Eating
The short version
What a Korean meal assumes, what arrives unordered, and how to pay. Sourced,
dated, and honest where it is not.
What you have · 6
금돼지식당 · a reservation for the 14th · a note about the allergy card that
worked · 3 places on your shortlist.
Your checklist for this · 2
The rows themselves, not a link to them.
Show all 34 questions
Collapsed → card detail, the SEO surface.
Not sourced yet
Whether this kitchen manages cross-contamination. We will not guess — here is the question and
who to ask.
Trip
Korea
You
One surface, not two — and "two" was the safe answer.
The tempting design is a handbook shelf and a binder shelf that share a name. It fails three ways:
it doubles the navigation for one vocabulary; it forces the user to know which half they are in
before they can ask; and it re-creates the exact fault that killed the ten shelves — one list doing two
jobs, now as two lists doing one.
What is genuinely two is the storage, and the page says so by shape.
The KNOW band is content with a source, a verified_at
and a last-sync date — 🚨 two different numbers, because "verified" means nothing offline. The
KEEP band is a derived view over the flat bag with no source at all, because every fact in it
is the user's own. A dashed gap in one means nobody has sourced this; an empty other means
you have not saved anything here. Different sentences, different treatments.
Band order flips on content, never on a mode switch.
With rows of your own, What you have leads. With none, the answer leads. A visitor with no
trip therefore gets a pure handbook without anyone deciding they are a handbook user, and a
visitor at a counter gets their own rows first. Same route, one layout.
Shelf is a computed, many-valued facet with a stored override.
Never a storage location, never a question at capture. An item may legitimately sit on two shelves.
🚨 The unfiled pile is visible and counted on the Trip root — making it a peer shelf teaches
that some things are un-filable; hiding it makes the OCR index the only way anything unclassified is
ever found again.
The fifteen, and the one that was deleted as a shelf.
Numbers are PRD §4.2's and are the shelf's identity. The order below is one instance of the
derived Prepare ranking — not the list.
🚨 Accessibility, dietary and specific needs is not shelf 16. Its 18
cards are re-shelved to where their subject lives — a step-free route is Moving, a prayer room
is Doing, halal certification is Eating — and reached through the needs register.
It was a destination, and it needed to be a lens. No card is deleted.
6 · The day page, and where Now actually isseven bands, one layout
The subject is the DAY, and the schedule is one band on it. A calendar app makes the
schedule the subject and everything else chrome. Here the day is the subject — where you are in the trip,
what is unusual about today, what you are carrying, what you can spend — and the times you saved are one
band among seven. It is a briefing, and reporting is the one thing this product is already
disciplined about.
1
Where you are
DAY 3 OF 11 · Seoul · 14:22 KST · Tue 6 Apr. A visitor loses
track of both the day and the hour, and a timezone gap makes every saved time ambiguous.
2
Right now this band IS Now
The next thing, the gap before it, how far, when to leave. 🚨 "Nothing for 28
minutes" is a real and useful answer — this band must be honest about empty.
3
🚨 What is different about today
A closure colliding with something saved · a national holiday · an election day · a
festival · unusual traffic · a strike · severe weather. The only band that tells you something you
could not have known when you saved everything.
4
The day's things
Time order: place name EN and KR, the fact that matters (CASH
ONLY), any reference (CONF JS-88214). It shows what you saved; it
never proposes what you did not. Untimed items sit below without being given invented times.
5
Money today
Spent, transport card, cash left — 🚨 and honest about which of those it cannot read.
A transport-card balance is what you last told us, not what the card says.
6
Weather
The forecast, or the absence of one: we have no forecast source for Korea we are
willing to stand behind, so we are not going to invent one.
7
🚨 Show this to a driver → the Show surface
Reached from the day rather than hunted for. The Korean place name leads, largest
— then the Korean road address, then English annotating both, never leading. This corrects the drawn
mocks, which have it inverted: a driver navigates by building and business name far more reliably than
by a 도로명주소.
Now and the day page are one surface, not two.
A separate Now destination would duplicate the day's content and drift out of sync with it.
"Today" is simply the day page for the current date, and the trip's other days are the same page for a
different date. One layout, one data path, one set of bugs.
7 · Before and afternothing is deleted but doors
Before — four peers over ten dead shelves
Trips/trip/:id
Handbook/handbook
Search/search
You—
Four peers stating no relationship between the two halves at all. Search took a fifth of the
bar to be a door to a field. You became the junk drawer for everything with no other home. And
underneath sat the ten shelves that conflated the handbook with the binder, had no time axis, no body
axis, and nowhere to file geography, events, or it is going wrong right now.
And these had nowhere at all to live
7 phasesthe day pageNowChangethe party registerthe case filethe shortlistWhere in Koreathe 본인인증 inventoryreservationsneeds, at any scopepurposethe romanisation recordsaved translationsattribution
After — three destinations, two gestures
Trip time · place
Korea 15 shelves
You person · party
tap · hold
Search became a field. The ten shelves became fifteen and moved into tab 2, carrying both halves
on one page. The seven phases became the order of things. The six surfaces became gestures. The needs
register became a property of the controls you already touch.
The homeless, homed
Trip root → posture-orderedTrip › today = the day pageday page band 2 = Nowhold a city chip = ChangeYou › Peopletrip switcher › case fileTrip › collectionsKorea › shelf 01Korea › shelf 05item detail · 19 nouns in searchthe control you already touchedtrip creation → sort orderplace detail → feeds searchYou › CarryYou › Sources + on the photo
8 · What lives under each destination48 / 48 declared paths
Every path in lib/core/router/app_routes.dart
appears below. Shared marks a surface owned by one home and reachable from
another on purpose. The fourth column is outside the bar — cold start, an inbound link, and the two
that must open with no trip and no account — plus the nine routes this IA needs and the router does not
declare, named rather than invented, because a published path is immutable.
Trip23 paths
The binder by time and place. Reads Saved until a trip exists. No lobby:
one trip opens itself, several drop a switcher sheet on the title.
The root, by posture
Saved / Trips no trip
/homeThe library at person scope. You can save before you commit — the bag exists before the trip does.
/onboarding/passportNationality decides K-ETA and the visa answer.
Dates
/onboarding/dates"I don't know yet" is a first-class answer.
Cities
/onboarding/cities
Purpose
/onboarding/interests🚨 Purpose, not interests. It is the sort order of the whole trip.
Welcome + Emergency taught once
/trip/welcomeEvery step skippable. Saved things offered for copy-in.
The day
Today = the root, in country
/trip/:id/todaySeven bands. Band 2 is Now. Reads with no signal.
Every day
/trip/:id/daysHold a date header → Change.
Checklist
/trip/:id/checklistUrgent → before you fly → once you land → done. The only thing entitled to notify.
The bag
Item detail
/trip/:id/item/:itemIdOne envelope, 154 kinds of thing. reservation is new and is shouted for.
Shelf, from the trip Shared
/trip/:id/shelf/:nThe KEEP band of a Korea shelf. One route, fifteen shelves.
Shelf facts Shared
/trip/:id/facts/:shelf
Collections · shortlists
/trip/:id/collectionsThe pre-decision object, with why you saved it. Shopping and gift lists are a kind here.
Map, grouped by district
/trip/:id/mapNo basemap; real coordinates; airplane-mode safe. Party dots are a timestamped layer on the same canvas.
Documents Shared
/trip/:id/documentsThe vault. 🚨 Shared trips share items — never this.
Places, and the deadline surfaces
Place detail Shared
/place/:idKorean name at handover size · road address · exit · your own note · why you saved it · the romanisation record.
Product detail
/product/:idBehind the server flag until 종합여행업 등록.
Entry wizard
/entry
e-Arrival
/entry/earrival"We'll get you ready to file", never "we'll file it for you".
Out of the app
The plan
/trip/:id/plan
Printable carry sheet
/trip/:id/plan/exportThe answer to a dead, stolen or surrendered phone. Carries the attribution block. Documents off by default.
Trip settings
/trip/:id/settingsParty · purpose · dates · share · duplicate · close, which expires the secrets.
Korea11 paths
The 15 shelves, ordered by derived phase. Every shelf carries both halves. This tab is
fully useful with no trip and no account.
The shelves
The 15, phase-ordered
/handbookFeature 1. Photo-led where we hold one, drawn where we do not.
Shelf page
/handbook/:sectionShort version → what you have → your checklist → all N questions.
Card detail SEO surface
/handbook/:section/:slugSource · verified_at · last sync · the three states. A stub is the normal state, never a model guess.
Shelf 02 · When
When to go before a trip exists
/when-to-go
A month
/when-to-go/:monthHonest downsides. No hardcoded bloom window, ever. What's on is a band here, and unconfirmed never renders as confirmed.
Bands inside a shelf, not destinations
Resources
/resourcesExternal URLs, downloads, hotlines — each with its use, filed on its shelf.
Resource detail
/resources/:id
Watch later
/resources/watch-later
Ideas suppressible
/ideasInside shelf 11. 🚨 Absent entirely for a bereavement purpose — a memorial is not a highlight.
Issue reader
/ideas/:lane/:slug
The gesture rooted here
Search — one field over everything
/searchCards, places, items, resources, phrases, OCR text, both scripts, every romanisation. Searching in the wrong script must never silently return emptiness.
Card sets with no route of their own
🚨 The 본인인증 inventory
shelf 05 · cross-linked from 04, 11What a passport-only visitor cannot do, and the alternative or the absence of one, per item. Named by five research passes, built by none.
Procedural walkthroughs
a card KIND, on every shelfImmigration, customs, the transit card, ordering at a counter, the refund desk. Labelled by task, never by experience level.
Medication legality
shelf 03, beside the visaMoved out of Health. It is an entry question.
You7 paths
Person scope. Referenced, never copied — edit once, correct everywhere, and
🚨 deleting a trip never deletes any of it.
Carry — read under stress
Emergency the row that teaches the hold
/emergencyFirst row. Also the hold, the quick action, the widget and the paper.
Allergy card
/show/allergyRank 1 by harm. A missing reviewed string never falls back to a machine one.
Address card
/show/address/:itemIdRank 5 by harm, rank 1 by frequency.
Phrases Shared
/trip/:id/phrasesThe reviewed card set + every saved translation with its provenance.
Offline Shared
/trip/:id/offline🚨 The visible is this actually on this phone state, which is what earns the feature its rank.
Settings, and the obligation
Settings
/settings
Privacy
/settings/privacyHealth, dietary and emergency-contact facts are permanently unsyncable, CI-asserted.
🚨 Sources Licence
/settings/sources공공누리 제1유형 requires attribution. A row in You, above Settings — not a link inside it.
Debug
Component gallery
/dev/gallerykDebugMode only. Not a published surface.
Outside the bar7 paths
No tab, by design.
No shell
Cold start
/
🚨 Emergency
/emergencyNo shell, no tab bar, no trip, no auth, no network, no spinner, no illustration.
Not red. It prints.
Capture · paste anything
/importAlso the OS share target. The parser may not fail — it may only recognise less.
Account optional throughout
/auth
Verify
/auth/verify
A shared plan, read-only
/plan/:shareToken
🚨 Nine routes this IA needs and the router does not declare
gap The party register
/people · /people/:idFeature 24, replacing partySize: int. "Most users will" be a group.
gap Person-scope documents
/documentsThe vault is /trip/:id/documents only — so a passport, the most person-scoped object here, has to belong to a trip.
gap The library
/library · /library/next-timeFeatures 27 and 28. "Next time" is the only object that survives the trip, and the reason the app is opened again eighteen months later.
gap Saved, with no trip
/saved/home does double duty today; it works, but it makes the pre-trip state unlinkable.
gap How you travel
/settings/how-you-travelThe needs review list. Every entry in the user's own words, each removable in one action — a delete, not a flag.
gap Change
a sheet, deliberately pathlessFeature 55. Listed so the decision is deliberate rather than an omission.
9 · The primary journeys, walkedthree, end to end
ANo trip, still deciding— "should I even go in April?" The empty
state is not a wall, because the bag exists before the trip does.
01
Opens on Korea
/handbook
No trip, so tab 1 reads Saved and we do not open on it.
→
02
Where in Korea
/handbook/where
Shelf 01, first in the Choose order. The only shelf answering a question asked before the flight is booked.
→
03
A city → a place
/place/:id
Saves it. No trip is required to save.
→
04
Search "cherry"
/search
Cards, places, months. No scoping, no tab switch.
→
05
When → April
/when-to-go/april
Honest downsides. No hardcoded bloom window. Unconfirmed festivals stay unconfirmed.
→
06
Saved
/home
Four places and a month, no trip. One primary action: Make this a trip.
→
07
Passport → dates → cities → purpose
/onboarding/*
Every step skippable. The saved things are offered for copy-in, never silently moved.
→
08
Tab 1 relabels to Trip
/trip/:id
Phase = Prepare. Readiness leads. Shelf order in Korea re-ranks behind them.
BPreparing— and the only place in the product flag red is allowed to
appear.
01
Trip root
/trip/:id
DAY −34 · readiness 5 of 12 · 42%
→
02
The deadline ladder
band 2
Two urgent things, and only two. Everything else can wait, and the product says so.
→
03
Apply for K-ETA
/entry
Due in 4 days · 72h to process
→
04
e-Arrival
/entry/earrival
Gather, then hand off. Never "we'll file it for you".
→
05
Back on Trip
/trip/:id
6 of 12 · 50%. Nothing else is urgent this week — no invented pressure.
→
06
Hold the Busan chip
Change sheet
6 items attached · 2 with money · 1 refundable until Fri. Undoable, and logged.
CAt the hotel desk, in country, no signal— the product's actual
reason to exist. §16's quality bar, walked.
00
Launch
/trip/:id/today
Zero taps. Tab 1 is today's day page because the phase is Live.
→
01
Band 1 — where you are
band 1
DAY 3 OF 11 · Seoul · 14:22
→
02
Band 2 — Now
band 2
The current stay and its confirmation number, already on screen. No picker, no spinner, no login, no network.
→
03
Tap the number
copy
Copied whole, never truncated. Korean strings copy the Korean.
→
04
Then a taxi
band 7 → Show
Korean place name largest, road address beneath, English annotating. Brightness up. Shown, not handed.
→
05
If it goes wrong
/emergency
Hold ⊕. Signed out, offline, no trip, 3% battery. It prints.
Journey C is zero tab switches and one tap, and journey A never
touches tab 1 until step 6. The old flow spent step 1 of every journey on a lobby, and could not have walked
journey A at all — Where in Korea did not exist, and nothing could be saved without first creating a
trip.
structure — flag blue #0047A0a deadline, and nothing else — flag red #CD2E3Awe do not know / not declared — dashed, never red
10 · Photography leads. The drawn scenes are the designed fallback.1,102 photographs · 공공누리 제1유형
Where a photograph exists
한국관광공사 포토코리아 · 서문교 공공누리 제1유형 · Sources
Where none does
A drawn scene. Never
captioned "photo missing" — it is the normal state, not a failure.
Coverage will never be complete, and that is exactly why the drawn set exists.
1,102 photographs against every shelf, month, district and place in Korea. A drawn hero is what
makes a gap look intentional rather than broken, and it renders for a traveller who has landed
with no data. Icons.photo and
Icons.broken_image stay banned.
🚨 Attribution is a licence condition, so it gets three homes and none of them is a footer.
1 · On the photograph — a credit line naming the photographer, 한국관광공사 and 공공누리
제1유형, and it is tappable. 2 · A row in You — /settings/sources,
above Settings, the full register of every dataset, licence and ML Kit attribution. 3 · In the
PDF — the printed carry sheet is a distribution of the work.
One flag, honestly raised.
This resolves PRD open question 5 toward both, in that order, and contradicts hard constraint
C23, which says the imagery is drawn "deliberately and permanently". C23 needs amending; this document
does not get to amend it silently.
The place a user added is a third card again.
Typographic and complete either way — a pasted Kakao link carries no picture, and Kakao's own
fields may not be persisted. So the three place renders in this product are: a line inside a
handbook answer, a card in your shortlist, and a handover surface. None of them is
dani.go's venue page.
11 · What was rejected, and whyso a disagreement has something to point at
Two tabs — Know and Keep
🚨 The biggest one. The most faithful reading of PRD §3, and it fails the single hard
requirement: it forces the user to learn the product has halves and to decide which half a question
belongs to before asking it. "Where is my hotel confirmation" and "how do hotels work in
Korea" would live in different tabs.
The old four — Trips · Handbook · Search · You
Search is retrieval path 2 and belongs in a field. You became a junk drawer. And four peers
stated no relationship between the halves at all.
Fifteen shelves as the top level, in a grid
The ten-shelf failure with five more shelves. PRD §4.1 kills the flat list on four independent
grounds; making it bigger fixes none of them.
Phase as navigation — a Prepare / Travel / Live control
7 × 15 = 105 destinations, operated by a word no visitor uses. Phase is computable from data we
already hold; asking the user to set it is asking them to tell us the date.
A phase-driven home with no tabs
Its good idea is stolen — the Trip root is phase-ordered. Rejected as the whole structure
because it puts everything a scroll from everything, which kills three-second retrieval, and a home that
rearranges itself weekly is unlearnable.
Now as its own tab or screen
PRD §4.7 forbids it: it would duplicate the day page and drift out of sync with it.
Emergency as a tab-bar item
It must render with no shell, and a tab-bar item is a shell dependency by definition. It would
also spend a permanent slot on a surface used once per thousand launches.
A binder shelf beside each handbook shelf
Doubles the navigation for one vocabulary, and re-creates one list doing two jobs as two lists
doing one.
Needs as a filter chip row
A filter subtracts. Filtering by step-free hides every venue we have no data for, silently
converting unknown into no — the exact dishonesty this product exists to avoid.
An onboarding needs step
"The special-category question, asked coldest, of a stranger, before any trust exists, in exchange
for nothing."