PuzzleImpl<?, D> puzzle) throws ActionException {
// TODO ensure rights?
if (puzzleInfo.getId() != null) {
throw new ObjectAlreadyCreatedException("Puzzle info already has an id: " + puzzleInfo.getId());
}
Objectify ofyTxn = newOfyTransaction();
try {