pub const MOD_CAPABLE_ATTRIBUTE_CODES: [&str; 14];Expand description
Attribute codes whose .mod key is actually COMPOSED by the runtime.
An ownership bonus is written as <code>.mod, and only these codes are read
back — combat composes them in mechanics::fight::get_entity_stat (plus hp
through attributes::compose_max_hp) and the honest power scalar in
mechanics::balance::get_attr_from_attrs. A bonus on any other attribute
would be written, stored, shown in no stat and read by nothing: silently
inert content. GameConfig::validate_artifacts refuses it instead.
This list lives here, not in overlord_event_system, because configs is
the lower crate — the dependency only runs one way, so it cannot be derived
from those functions and must be kept in sync with them by hand.
game_config::tests::mod_capable_codes_cover_the_attributes_the_runtime_composes
pins the three codes the shipped catalog actually uses for ownership bonuses
and the list’s own shape (no duplicates, base codes rather than .mod keys).
It deliberately does not assert full coverage: the direction that hurts is a
code listed here that nothing reads (which would let inert content ship), and
a code read by the runtime but missing here only costs a designer the ability
to use it — a visible refusal, not a silent no-op.