A module is what one mstring run produces — by default name.hh and name.cpp. Its properties come from module directives, which are not sticky like the artefact settings: the last one in the file wins, wherever it stands.

DirectiveSets
$MODULEthe file names and shape (header + source, source only, header only)
$NAMESPACEthe namespace of everything generated
$INCLUDE, $USINGincludes and using-declarations of the header
$IMPORTother message files that join the module
$EXPORTa visibility macro for shared libraries
$LANGUAGEthe default language of texts (this one is sticky)