return {
  summary = 'Different types of Source effects.',
  description = 'Different types of effects that can be applied with `Source:setEffectEnabled`.',
  values = {
    {
      name = 'absorption',
      description = 'Models absorption as sound travels through the air, water, etc.'
    },
    {
      name = 'attenuation',
      description = 'Decreases audio volume with distance (1 / max(distance, 1)).'
    },
    {
      name = 'occlusion',
      description = 'Causes audio to drop off when the Source is occluded by geometry.'
    },
    {
      name = 'reverb',
      description = 'Models reverb caused by audio bouncing off of geometry.'
    },
    {
      name = 'spatialization',
      description = 'Spatializes the Source using either simple panning or an HRTF.'
    },
    {
      name = 'transmission',
      description = 'Causes audio to be heard through walls when occluded, based on audio materials.'
    }
  },
  notes = [[
    The active spatializer will determine which effects are supported.  If an unsupported effect is
    enabled on a Source, no error will be reported.  Instead, it will be silently ignored.

    See `lovr.audio.getSpatializer` for a table of the supported effects for each spatializer.
  ]]
}
