Constant MOD_CAPABLE_ATTRIBUTE_CODES

Source
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.