diff --git a/szds.md b/szds.md index d366769..0a54501 100644 --- a/szds.md +++ b/szds.md @@ -1,114 +1,60 @@ # SessionZero Data System +## Layout +Data is seperated into 3 main chunks; systems, games, and datasets. Each of these work together but hold varying information. +The flow goes as such: + +1. Create a System + i. Define a character template + ii. Define data templates +2. Create a Dataset + i. Reference an existing system for availible templates + ii. Create data instances based on the availible templates +3. Create a Game + i. 'Install' an existing system + ii. 'Install' various datasets that use the same system + iii. Install plugins (future feature) + iv. Create a character from the system template + + +### System: +- Character Template +- Data templates ```text - -sessionzero/ -├─ data/ -│ ├─ datasets/ -│ │ ├─ author.dataset_name/ -│ │ │ ├─ objects/ -│ │ │ │ ├─ item/ -│ │ │ │ │ ├─ stick.szdo -│ │ │ │ ├─ npc/ -│ │ │ │ │ ├─ marcus.szdo -│ │ │ ├─ templates/ -│ │ │ │ ├─ item.szdt -│ │ │ │ ├─ npc.szdt -│ │ │ ├─ dataset.sz -│ │ │ ├─ icon.png -│ ├─ sessions/ -│ │ ├─ author.session_name/ -│ │ │ ├─ players/ -│ │ │ │ ├─ player1/ -│ │ │ │ │ ├─ characters/ -│ │ │ │ │ │ ├─ thumbs/ -│ │ │ │ │ │ │ ├─ character1.png -│ │ │ │ │ │ ├─ character1.szco -│ │ │ │ │ ├─ playerinfo.sz -│ │ │ ├─ character_template.szct -│ │ │ ├─ session.sz -│ ├─ local.db -├─ config.ini -├─ sessionzero - - +author.system_name/ +- system.sz (A TOML file with metadata) +- character_template.szt (sessionzero template file) +- templates/ + - template_name.szt ``` - - - - - - - - - - - - - - -Psuedocode for the various data elements and how they connect: - - - - - - - - - - - - - - - - - - - - - - -```text -Dataset: { - Metadata: { - ID (required unique string), - DisplayName (required string), - Author (required string), - Description (string), - CompatibleSystems (required string[]), - }, - Data Templates: { - Metadata: { - ID (required unique string), - DisplayName (required string), - Author (required string), - Description (string), - CompatibleSystems (required string[]), - DataType (required string) - }, - TemplateFields: { - ID (required unique string), - FieldType, - - - } - }, - Data Instances: { - - }, -}, - -Session: { - Metadata: {}, - Character Template: {}, - Character Instances: {}, - Datasets: {}, - Storage: {}, -} +Example `system.sz` file +```toml +id = "szcore" +display_name = "SZ Core System" +version = "1.0" +description = """ + A simple core system to base others off of +""" ``` + +Example `character_template.szt` file +```toml +template_type = "character" +``` + +### Games: +- System +- Plugins +- Datasets +- Player Data + - Character Instances +- Gamestate/Data + +### Datasets: +- Reference to a System and its templates +- Data Instance +