Tweak inheritable dict to search and use the rule applying to the most derived superclass.  Additionally, disallow multiple position checks in the inheritable dict.  TODO: Figure out how to allow bearer inheritance checking.
Manually specify a join condition to ensure that joins work correctly
Have shield return uniform types.