Interface with the World
;;;********************************************************
;;; This is our model of the "real world".
;;; (WORLD-INITIALIZE) sets the world to the state
;;; returns the smallest legal position index
;;; returns the largest legal position index
;;; (WORLD-SENSE-POSITION n)
;;; returns a list of objects at
;;; that position. Index is 0-relative, and the list
;;; shows the topmost object first.
;;; (WORLD-SENSE-GRIPPER-CONTENTS)
;;; returns either NIL (gripper empty) or a feature list as above
;;; (WORLD-SENSE-GRIPPER-POSITION)
;;; Every object returned by one of the sensing operations responds to
;;; (WOBJECT-COLOR wobject) => color
;;; (WOBJECT-SHAPE wobject) => shape
;;; (WORLD-EXECUTE-COMMAND command-name &optional position) => NOTHING
;;; command-name is either :LIFT or :DROP or :MOVE
;;; the :MOVE command takes a position argument, the others do not.
;;; Note well: there is no indication from the world if the command
;;; is executed in error!