You are looking at the keybased update for wolis

OK I redid the specs and code for skill handling.
examine the info about skill handling
code the info about skill handling

The key-based code is smaller and cleaner than when dealing with position-based data. The only thing that's messy is the updatemods subroutine.

ponder foreach key in $string do what;##what:print "$list_key $list_line";

Next step for me is to test each subroutine.

Materials: Are you planning to combine matvals and material? If so, then a material with no values would be stored materialname= instead of materialname.

Setting with no values: use the swap add cowmand, with '=' at the end of the material name, or use the value cowmand with $materialname as key and no value.

Of course, setting/getting values would require the value cowmand.

And... the system will need to overlook the values when doing the reaction code in the corresponding material object.

Maybe it would be simpler to keep material and matvals separated?