Files
unisono/specs/001-people-tend-to/data-model.md
2025-10-10 12:48:06 +03:00

3.0 KiB

Data Model

Feature: Anonymous Desire Aggregator Date: 2025-10-09

This document defines the key data entities for the feature, with notes on where the state is managed.


1. Session

Represents a single decision-making event. Note: This object lives in the browser's Local Storage and is synchronized between clients via WebSocket messages.

Attribute Type Description Notes
sessionId String Unique identifier for the session. The only piece of session data the backend is aware of.
topic String The subject of the session. Set by the creator client.
participantCount Integer The number of expected participants. Set by the creator client.
status Enum The current state of the session. WAITING, ANALYZING, COMPLETE, LOCKED.
participants Array[Participant] List of participants in the session. Managed by clients.
desireSets Array[DesireSet] List of all desire sets submitted by participants. Managed by clients.
decision Decision The final calculated result. Received from backend and stored by clients.

2. Participant

Represents an anonymous user in the session. Note: Lives within the Session object in Local Storage.

Attribute Type Description
participantId String Unique identifier for the participant (e.g., a random ID generated by the client).
isCreator Boolean Flag to identify the participant who initiated the session.
hasSubmitted Boolean Flag to indicate if the participant has submitted their desires.

3. Desire Set

Represents the raw text input from a single participant. Note: Lives within the Session object in Local Storage.

Attribute Type Description
participantId String The ID of the participant who submitted this set.
wants Array[String] List of raw text desires the user wants.
accepts Array[String] List of raw text desires the user accepts.
noGoes Array[String] List of raw text desires the user does not want.

4. Semantic Desire

Represents a unique conceptual desire identified by the LLM analysis. Note: This is a read-only, transient data structure. It exists in the Decision object.

Attribute Type Description
title String The canonical name for the desire group.
rawInputs Array[String] The list of original user text inputs that were grouped into this desire.

5. Decision

Represents the final, categorized output of the analysis. Note: Lives within the Session object in Local Storage.

Attribute Type Description
goTos Array[Semantic Desire] Desires everyone wants.
alsoGoods Array[Semantic Desire] Desires some want and others accept.
considerables Array[Semantic Desire] Other desires that were wanted or accepted.
noGoes Array[Semantic Desire] Desires that at least one person does not want.