Traits and Language
When I designed the world model, I decided to implement a pattern that separates behavior from data. These are called Traits. If you apply the Pulling Trait to an entity, it will have all the necessary logic to handle being pulled. Initially the Pulling action in standard library had logic to handle various types of things that might be pullable (cord, rope, chain, etc) and the logic for this was encoded within the pulling action.
But we set a core design principle where Actions are language agnostic. If we include the words cord or chain in the logic, we're breaking that principle. This is clearly a minor design flaw. In order to resolve it, we need to move the language-based logic into more Traits so the action can manage everything through behavior and not language.
We only have a few actions that fall into this category, so it's not a huge refactoring. But it's a another nice design flaw catch from testing. Every time we discover these design flaws I get excited because we have always found elegant solutions within the overall architecture and that has not changed.
The testing phase of the standard library is taking, by far, the most time. I have had to dig into the generated code and logic to make scalpel like changes, so that's been different than most of the underlying code. I shouldn't be surprised. I was always able to design and direct, but getting the standard library and the eventual Forge authoring layer will require much more of my attention.