structure = 12
[...]
effects = SetMaxStructure value = Value + ( min(Source.Age*1, 45) * [[SHIP_STRUCTURE_FACTOR]] )
Notice that base structure doesn't need (must not use) SHIP_STRUCTURE_FACTOR, because that multiplication is done in the backend, while you do need to include the factor for any SetMaxStructure effect. That inconsistency is troublesome for reporting values in stringtables:
We have this:
Organic Growth: starts with [[value SH_SENTIENT_MAX_STRUCTURE_INITIAL]] [[metertype METER_STRUCTURE]], grows an additional [[SH_SENTIENT_MAX_STRUCTURE_GROWTH_MAX]] over [[value SH_SENTIENT_OLD_AGE]] turns.
How should I register the value for the base structure? Adding to named_values.macros one new entry for each hull (two new entries for hulls with regeneration) ?