99795a972c
1. CrowdPermissionPolicy is an object that lives inside a BodyObject, thus it cannot use server services like dependency injection, nor BodyLocator. However, that's not a problem because it will never be used by a ClientObject that is not a BodyObject. If there were a way to enforce with parameterized types that it only ever be used in conjunction with a BodyObject, I'd do that, but parallel inheritance hierarchies are not something that any OO type system I'm aware of can reason about. 2. ClientResolver and its children are not singletons. One is created for each client resolution process. I have certainly fallen prey to the same errors during enthusiastic reactions: it looks like a rose, it has thorns like a rose, oh wait, it's a blackberry. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@6319 542714f4-19e9-0310-aa3c-eee0fc999fb1