private function buildProperties(
        MapInterface $changeset,
        MapInterface $properties
    ): MapInterface {
        return $changeset->filter(static function(string $property) use ($properties) {
            return $properties->contains($property);
        });
    }