Repository navigation
Changes to Schema
Top Level
Three new fields were added to the top level object.
- Version: The version will automatically include the date the file was generated. You can use this to check if the version in github is newer than the version currently used.
- intrusion_tables: This includes a list of intrusion tables from the CSRD.
- other_tables: This includes other tables found in the CSRD, things like the Foci Connection list, and Hazards in the different genres. Not every table in the csrd has been parsed yet, but a starting list is included.
struct CSRD_DB {
version: Date // NEW
types: Vec<Type>,
flavors: Vec<Flavor>,
descriptors: Vec<Descriptor>,
foci: Vec<Focus>,
abilities: Vec<Ability>,
cyphers: Vec<Cypher>,
cypher_tables: Vec<RollTable>,
intrusion_tables: Vec<RollTable>, // NEW
other_tables: Vec<RollTable>, // NEW
artifacts: Vec<Artifact>,
creatures: Vec<Creature>,
equipment: Vec<Equipment>
}Foci
Foci parsing has been completely overhauled to accommodate the style found in the Rust and Redemption content.
- A new
notesection was added. Notes are things that would normally be found in the margins of a book. - Each focus now contains a list of starting
connections, however only the newly added Rust and Redemption foci have these. The standard list of 50 connections included in the csrd is now included in the other_tables field at the top level of the json object. - The
intrusionsfield has been updated to be Optional as the Rust and Redemption foci did not include gm intrusions. - An
additional_equipment,minor_effect, andmajor_effectfield has been added to accommodate the new Rust and Redemption foci.
pub struct Focus {
name: String,
description: String,
note: Option<String>, // NEW
connections: Vec<String>, // NEW
abilities: Vec<AbilityRef>,
intrusions: Option<String>, // UPDATED
additional_equipment: Option<String>, // NEW
minor_effect: Option<String>, // NEW
major_effect: Option<String> // NEW
}RollTable
RollTables may now have descriptions associated with them. This is mostly used by the tables found in the intrusion_tables as some of those tables were accompanied by a short blurb of text describing their use.
struct RollTable {
name: Option<String>,
description: Option<String>, // NEW
table: Vec<RollEntry>
}