- Use R6 classes for game objects
- Use roxygen2 for documentation (with markdown enabled)
- Constructor functions should be lowercase with underscores (e.g.,
normal_form,bayesian_game) - All exported functions must have roxygen2 documentation with
@export
- Include
nashR.hin all source files - Register all
.Callentry points insrc/init.c - Use
R_allocfor temporary memory (auto-freed by R) - Use
PROTECT/UNPROTECTfor allSEXPallocations
- Tests use testthat (edition 3) in
tests/testthat/ - All new features must have corresponding tests
- Run tests with
make testorRscript -e "testthat::test_dir('tests/testthat')"
- Run
R CMD checkwith no errors or warnings - Run
make checkfor the full build-and-check cycle - Ensure all existing tests still pass