The work was structured around user scenarios and contexts: one-to-one conversations, group chats, participant management, privacy, media, attachments, replies, forwarding, search, errors, empty states, and system notifications.
The scenarios were defined not only through screens, but also through interface behaviour:
- how a component changes depending on context;
- which states need to be supported;
- where users encounter restrictions;
- what feedback follows each action.
Edge cases were explored separately, including unavailable participants, failed messages, deleted content, privacy restrictions, content loading, empty lists, group management, and the last-admin scenario.
This approach helped resolve situations that are often discovered only during implementation.