Structure
The project’s folder structure.
src
– The source code main folder, containing program entry points.Common
– Types and functions associated with multiple ‘namespaces’.Database
– The flat-file database containing all static data from the source books.Dependencies
– Types and functions for working with dependencies between entries and the prerequisites they are based on.External
– Bindings to external libraries via FFI.Localization
– Types and functions related to different languages in the app and the source books.Rated
– All data types for entries with ratings (attributes, skills or combat techniques) and related types and logic.ArcaneSpellworks
– All data types for arcane spellworks (spells and rituals) and related types and logic.Liturgies
– All data types for liturgies (liturgical chants and ceremonies) and related types and logic.MagicalActions
– All data types for magical actions (curses, Elven magical songs, …) and related types and logic.
Rules
– All data types for rule entries.Sources
– Types and functions dealing with data related to source books: Source books themselves, references, availability by book and errata.Utilities
– Utility functions and types for working with standard types or I/O.Abstractions
– Utility functions and types for working with type abstractions such as monads that can be used to create similar functions for different container types.