code: def apply_attributes!(hash, dirty_track: false)
        return unless hash.is_a?(Hash)
  
        @id ||= hash[Parse::Model::ID] || hash[Parse::Model::OBJECT_ID] || hash[:objectId]
        hash.each do |key, value|
          method = "#{key}_set_attribute!".freeze
          send(method, value, dirty_track) if respond_to?( method )
        end
      end
docs: support for setting a hash of attributes on the object with a given dirty tracking value
   if dirty_track: is set to false (default), attributes are set without dirty tracking.
   Allos mass assignment of properties with a provided hash.
   @param hash [Hash] the hash matching the property field names.
   @param dirty_track [Boolean] whether dirty tracking be enabled
   @return [Hash]