Any new property that you need for an algorithm.
Let's say, burn elements to get warm.
elements need to get a property when they ignite (and perhaps how), how long they can burn, you need to express how much heat they produce. Heat must becomes available to people "nearby", so you need some form of 'near' and 'not near' property (a person on the other side of the earth may not get warm, although, maybe if I want that, how do I express that?), perhaps with a computation how much warmer you get.
I don't think this is different from being able to express how close fire elements must be to collect them, or how compress works (eg when is it "compressed enough"?), or how "throw" only moves the compressed fire elements and not some other elements that just happen to float around. (With things like how does it move? What is its trajectory, how does it decelerate? How does it detect a body, how does it decide not to fly through it, but collide instead (imagine I want a fireball only hitting every second person or so, how do you make "every second person"?).
If you want to really introduce new mechanisms like above, you need to be able to express the conditions, and the effects in terms of concepts in the game, I think.
This is also the main problem, how do you create and handle a-priori unknown properties, conditions, and effects? I am not talking about how to enter them, just the problem of creating them, and express how they work, as that's complicated enough, I think.