Citizens Specification
Citizens Documentation
This document provides a detailed explanation of the character attributes and interactions in the system.
Citizen Structure
Each character in the system is represented by a unique object with the following attributes:
Basic Information
id
: Unique identifier (UUID) for the charactername
: Character's full nameage
: Character's age (numeric)occupation
: Character's professional role
Personal Attributes
traits
: Array of personality characteristicshobbies
: Array of activities the character enjoysstrengths
: Array of character's strong pointsweaknesses
: Array of character's limitationsquirks
: Array of unique behavioral patterns or habitsvalues
: Array of principles or beliefs important to the characterfears
: Array of character's fears (can be empty)dreams
: Array of character's aspirations (can be empty)background
: Detailed text describing the character's history and motivations
Relationships
Each character has a relationships
array containing objects with the following structure:
targetId
: UUID of the related charactertargetName
: Name of the related charactertype
: Type of relationship (e.g., "friend", "spouse", "rival", "enemy", "acquaintance", "sibling")strength
: Numeric value between -1 and 1 indicating relationship strengthPositive values indicate positive relationships
Negative values indicate negative relationships
Values closer to 0 indicate weaker bonds
Values closer to 1 or -1 indicate stronger bonds
context
: Detailed description of the relationship's nature and history
Memories
Characters have a memories
array containing memory objects with:
id
: Unique identifier for the memorydescription
: Detailed narrative of the memoryparticipants
: Array of character IDs involved in the memoryemotionalImpact
: Numeric value (0-1) indicating the memory's emotional significancetype
: Type of memory (e.g., "interaction")importance
: Numeric value (0-1) indicating the memory's importanceinteractionId
: Unique identifier for the interaction (if memory is of type "interaction")
Data Organization
The data is organized in the following structure:
Main Objects
data
: Contains all character objects indexed by their IDsindexes
: Contains alternative ways to access the databyOccupation
: Groups characters by their occupation
Metadata
lastUpdate
: Timestamp of the last data updateversion
: Data structure versioncount
: Total number of elementstheme
: Overall theme of the character setcreatedAt
: Timestamp of data creation
Relationship Types
The system includes various types of relationships:
Spouse: Married partners (strength typically 0.8-1.0)
Friend: Close positive relationship (strength typically 0.6-1.0)
Acquaintance: Casual relationship (strength typically 0.5-0.8)
Rival: Competitive relationship (strength typically negative)
Enemy: Antagonistic relationship (strength typically 0 or negative)
Sibling: Family relationship (strength varies)
Memory Structure
Memories serve as records of interactions between characters and include:
Emotional narrative from the perspective of one character
List of all participants involved
Quantified emotional impact and importance
Unique identifiers for tracking and reference
Usage Notes
All numeric values for relationship strength and emotional impact are normalized between -1 and 1
Empty arrays (fears, dreams) indicate undefined or unused attributes
Relationship strength can be used to determine the intensity of connections between characters
Memories provide context and history for character relationships
Last updated