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.