Simplify `requireProperties` logic, document the conventions