Enterable supporters and reaching outside rules

Thanks, Daniel. Sorry about being rather nit-picky. I wonder if it makes a difference if the noun that the player is trying to take from a supporter, while standing on another supporter, is, itself, a container/supporter…??

Thanks for your time!

Bill

Here is what I have now–
First, the reaching inside code–

Mutual reachability relates things to each other.
The verb to be reachable from implies the mutual reachability relation.

To decide what object is the penultimate enclosure of (the item - a thing):
	let the current level be the item;
	while the current level is not a room:
		let the current level be the holder of the current level;
	decide on the current level.

Indirect reachability relates a thing (called X) to a thing (called Y) when the penultimate enclosure of X is reachable from the penultimate enclosure of Y.
The verb to be available to implies the indirect reachability relation.

Rule for reaching inside a supporter (called the destination) when the player is enclosed by a supporter (called the source):
	if the destination is reachable from the source:
		allow access;
        deny access;
[Now the code for the oak desk...]

An officesupp is a kind of supporter.  The oak desk, John's chair, the straight-backed chair and the comfortable chair are officesupps.

The oak desk is reachable from John's chair.
The oak desk is reachable from the straight-backed chair.
The oak desk is reachable from the comfortable chair.
A rule for reaching outside of the oak desk:
	if the noun is in the location:
		if the noun is reachable from the oak desk:
			allow access;
		say "[The noun] is out of reach from your position on the desk.";
		deny access;	
	if putting something on something:
		if the noun is in the location:
			say "[The noun] is out of reach from your position on the desk.";
			deny access;
		if the second noun is available to the player:
			allow access;
		if the second noun is reachable from the oak desk:
			allow access;
		otherwise:
			say "[The second noun] is out of reach from your position on the desk.";
			deny access;
	if inserting something into something:
		if the noun is in the location:
			say "[The noun] is out of reach from your position on the desk.";
			deny access;
		if the second noun is available to the player:
			allow access;
		if the second noun is reachable from the oak desk:
			allow access;
		otherwise:
			say "[The second noun] is out of reach from your position on the desk.";
			deny access.

Thanks for your help!

Bill