Inimesed
Inimesed, kellelt sündmused tulid: iga rida on üks inimene, tuvastatud või anonüümne, oma omaduste ja rühmadega. Teine sakk hoiab rühmi, sest rühm on inimeste kogu, mitte teine leht.


The directory
One row per person: who they are if they identified, their first and last seen, how many events and sessions they account for, and the groups they belong to. A person is identified once an identify call named them, and the moment of identification is written once and never moves; before that they are an anonymous id. The toolbar narrows by search, by identity and by group, and a filter that matches nobody says so with a Clear filters action rather than posing as an empty project.
Opening a person


Selecting a row opens the person: their properties as the SDK sent them (reserved traits wear the $ prefix, so a custom email property stays distinct from $email), the aliases that were merged into them, every group they belong to, and a step into their events. Merging two people is deliberate and guarded: the dialog names what will be folded into what, and a merge either completes or refuses; it never half-runs.
Groups
The Groups tab lists each group with its member count, and the group filter on the People tab answers who is in one. Groups come from the SDK's group call riding events, so a project that never grouped anyone simply has none.
Where this meets the API
The concept behind the screen is the People and cohorts pillar. On the wire: the directory is the people query, one person is person, groups are peopleGroups, and merging is the mergePeople mutation (GraphQL reference). People exist because identified events arrived through Ingestion; cohorts over these same people are built on the Cohorts screen.