return {
  tag = 'callbacks',
  summary = 'Called once at startup.',
  description = [[
    This callback is called once when the app starts.  It should be used to perform initial setup
    work, like loading resources and initializing classes and variables.
  ]],
  arguments = {
    arg = {
      type = 'table',
      description = 'The command line arguments provided to the program.'
    }
  },
  returns = {},
  variants = {
    {
      arguments = { 'arg' },
      returns = {}
    }
  },
  example = [[
    function lovr.load(arg)
      model = lovr.graphics.newModel('sponza.gltf')
      texture = lovr.graphics.newTexture('cena.png')
      effects = lovr.graphics.newShader('vert.glsl', 'frag.glsl')
      loadLevel(1)
    end
  ]],
  notes = [[
    If the project was loaded from a restart using `lovr.event.restart`, the return value from the
    previously-run `lovr.restart` callback will be made available to this callback as the `restart`
    key in the `arg` table.

    The `arg` table follows the [Lua
    standard](https://en.wikibooks.org/wiki/Lua_Programming/command_line_parameter).  The arguments
    passed in from the shell are put into a global table named `arg` and passed to `lovr.load`, but
    with indices offset such that the "script" (the project path) is at index 0.  So all arguments
    (if any) intended for the project are at successive indices starting with 1, and the executable
    and its "internal" arguments are in normal order but stored in negative indices.
  ]],
  related = {
    'lovr.quit'
  }
}
