windows = VariableFactory.enumerated("windows", 0, horizon, solver);
facade = VariableFactory.enumerated("facade", 0, horizon, solver);
garden = VariableFactory.enumerated("garden", 0, horizon, solver);
objective = VariableFactory.enumerated("moving", 0, horizon - 1, solver);
solver.post(precedence(masonry, 7, carpentry, solver));
solver.post(precedence(masonry, 7, plumbing, solver));
solver.post(precedence(masonry, 7, ceiling, solver));
solver.post(precedence(carpentry, 3, roofing, solver));
solver.post(precedence(ceiling, 3, roofing, solver));
solver.post(precedence(roofing, 1, windows, solver));