ResolvesProperties is a mixin that implements scoped property lookups.
Only Terms should do full scoped lookups since they're the things that have all the properties all the way from the Element/Group Ref, to the Def/Decl, to the type, etc.
Some things need to lookup local properties like the typeCalc properties or dfdl:choiceDispatchKey for a choice.
So split ResolvesProperties into
ResolvesScopedProperties that requires mixin to a Term,
and ResolvesLocalProperties, that can be mixed in to any annotated schema component.