# SessionZero Requirements Specification

## 1. Executive Summary

### 1.1 Vision
A lightweight, flexible Virtual Tabletop (VTT) application that simplifies virtual tabletop roleplaying game management through an intuitive, game system-agnostic platform.

### 1.2 Project Objectives
- Develop a user-friendly VTT alternative to complex existing platforms
- Create a versatile tool supporting multiple roleplaying game systems through a more hands on, agnostic, and manual approach to game rules
- Establish an open-source application with sustainable monetization potential

## 2. Market and Audience

### 2.1 Target Users
- Casual tabletop RPG players
- Game Masters seeking streamlined management tools
- Role-playing groups desiring an intuitive and simple virtual play experience

## 3. Technical Architecture

### 3.1 Platform Support
- Primary Platforms: Windows, Linux
- Future Expansion: macOS support

### 3.2 Development Stack
#### Client
- Technologies: Godot Engine .NET 4.4, SQLLite
- Language(s): C#, gdscript
#### Server
- Technologies: ASP.NET, PosgreSQL
- Language(s): C#, HTML/CSS, JavaScript


## 4. Feature Requirements

### 4.1 Core Functionality (Alpha Release)

#### 4.1.1 Character Management
- Fully customizable character sheet creation
  - Flexible custom attribute system
  - Ability to add, modify, and remove attributes
  - Support for various RPG system structures due to nature of manual creation
- Character Sheet Templates
  - Default D&D-style character sheet template
  - Customizable template creation and editing
  - Shareable custom character sheet formats
- Comprehensive Character Details
  - Integrated inventory management system
  - Detailed player notes and documentation sections
  - Attribute tracking and modification
  - Background and character history storage

#### 4.1.2 Game Session Management (Normal User)
- Session Creation and Configuration
  - Create new game sessions
  - Customize character sheet templates for the session
  - Invite players via unique session links or codes
- Session Management Tools
  - Player role assignment (Game Master, Player)
  - Access control and permissions
  - Session settings and configuration

#### 4.1.3 Game Master Session Capabilities
- Player Management
  - View and edit player character sheets
  - Manage player inventories
  - Add and track player status effects
  - Create private GM notes for players
- NPC Management
  - Create and maintain NPC databases
  - Detailed NPC character sheets
  - NPC tracking and manipulation
- Item Management
  - Comprehensive item database
  - Create, edit, and distribute items
  - Track item locations and distributions
- Game Session Tools
  - Turn order tracking
  - Dynamic attribute manipulation
  - Party management system
  - Session-wide status tracking
- Communication
  - In-game chat management
  - Private messaging capabilities

#### 4.1.4 Player Session Capabilities
- Character Sheet Interaction
  - Real-time character sheet management
  - View and update personal character details
  - Inventory management
- Communication
  - In-game chat participation
  - View other players' status (limited by GM permissions)
  - Basic interaction tools

#### 4.1.5 Server/Backend
- Database
- Users and authentication
- p2p(?) for sessions
- Multiple sessions can run on a single backend (Scalable for many users and sessions)
- Friends
- Online status
- Messaging

### 4.2 Future Considerations (FC)

#### 4.2.1 Grid and Token System
- Visual Game World Representation
  - Tile-based world mapping
  - Token creation and management
  - Visual representation of characters, NPCs, and items
  - Real-time token movement and interaction

#### 4.2.2 Marketplace Features
- Plugin Marketplace
  - Community-developed plugins
  - Verified and user-rated plugins
  - Easy installation and management
- Asset Marketplace
  - Character sheet templates
  - Token artwork packs
  - Item database expansions
  - NPC/Monster database collections
- Monetization and Sharing
  - Free and premium assets
  - Creator attribution and compensation model

#### 4.2.3 Advanced Plugin Support
- Plugin Architecture
  - Standardized plugin development framework
  - API for deep application integration
  - Performance and security considerations
- Plugin Types
  - Game system adaptors
  - Custom UI/UX enhancements
  - Advanced game management tools
  - Automation and dice rolling systems

### 4.3 Extensibility and Integration
- Modular design to support future expansions
- (FC) Plugin API for third-party development

## 5. User Experience Design

### 5.1 Design Principles
- Minimize interface complexity
- Emulate physical tabletop interaction
- Achieve zero learning curve beyond game system
- Prioritize intuitive interface design

### 5.2 Accessibility Considerations
- Future multi-language support
- Clean, minimalist user interface

## 6. Monetization Strategy

### 6.1 Open-Source Commitment
- Core application remains fully open-source
- Potential Revenue Streams:
  1. Premium hosting service
  2. Community asset marketplace commissions
  3. Donation and sponsorship model
  4. Optional advanced feature packages

## 7. Development Timeline

### 7.1 Alpha Release
- Target Completion: November 2025
- Focus: Essential character and game management functionality
- Minimum Viable Product (MVP) approach

### 7.2 Potential Expansion Phases
- Grid system implementation
- Plugin ecosystem development
- Asset marketplace creation
- Extended platform support

## 8. Technical Constraints
- Self-hostable backend infrastructure
- System-agnostic design
- No RPG system royalty dependencies
- Lightweight, high-performance architecture

## 9. Risk Mitigation Strategies
- Modular, extensible architecture
- Flexible character sheet system
- Community-driven development model

## 10. Success Evaluation Metrics
- User adoption rates
- Community engagement levels
- Usability feedback
- Performance and stability indicators