This looks a lot like STRIPS planning http://www.primaryobjects.com/2015/11/06/artificial-intellig...
The Ceptre tutorial even has the classic example of moving blocks on a table. It's a different language than STRIPS (using PDDL), but seems a similar idea.