:memo: Document options to ::getPropertyValue
:fire: unused method
DRY up logic for cache key & whether to cache