diff --git a/.gitignore b/.gitignore index 039e012..3a94880 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ build/ .vscode/ .cache/ result +compile_commands.json diff --git a/src/SzData.hpp b/src/SzData.hpp new file mode 100644 index 0000000..8cf85dc --- /dev/null +++ b/src/SzData.hpp @@ -0,0 +1,21 @@ +#pragma once + +#include +#include + +using string = std::string; + +class SzData { +public: + struct DatasetObjectTemplate { + + }; + + struct Dataset { + string Id = ""; // required unique + string DisplayName = ""; // required + string Author = ""; // required + string Description = ""; // optional + std::vector CompatibleSystems; // requires at least one value + }; +}; \ No newline at end of file diff --git a/szds.md b/szds.md new file mode 100644 index 0000000..b0e4046 --- /dev/null +++ b/szds.md @@ -0,0 +1,39 @@ +# SessionZero Data System + + +```c +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: { + FieldType, + + } + }, + Data Instances: { + + }, +}, + +Session: { + Metadata: {}, + Character Template: {}, + Character Instances: {}, + Datasets: {}, + Storage: {}, +} +```