I re-proposed this. I changed code item #3 to avoid the implementation detail, with the intent (as discussed) that we all formalize our agreement on all of the other points, and then look at specific implementations before committing OpenACS to that level of detail.