data:extend({
    {
        type = "string-setting",
        name = "area",
        setting_type = "runtime-per-user",
        default_value = "player",
        allowed_values = {"all", "player", "entities"},
        localised_name = "Area",
        localised_description = "How to pick the area to render. `all`=all existing chunks; `player`=chunks including entities of 'player' force; `entities`=chunks including whitelisted entities to match artificial builds.",
        order = "000",
    },
    {
        type = "string-setting",
        name = "prefix",
        setting_type = "runtime-per-user",
        default_value = "mapshot/",
        localised_name = "Prefix",
        localised_description = "Directory (relative to script-output/) for all generated content.",
        order = "001",
    },
    {
        type = "int-setting",
        name = "tilemin",
        setting_type = "runtime-per-user",
        default_value = 64,
        allowed_values = {16, 32, 64, 128, 256, 512, 1024},
        localised_name = "Smallest tile size",
        localised_description = "Size in in-game units of a tile for the most zoomed layer.",
        order = "100",
    },
    {
        type = "int-setting",
        name = "tilemax",
        setting_type = "runtime-per-user",
        default_value = 1024,
        allowed_values = {16, 32, 64, 128, 256, 512, 1024},
        localised_name = "Largest tile size",
        localised_description = "Size in in-game units of a tile for the least zoomed layer.",
        order = "101",
    },
    {
        type = "int-setting",
        name = "resolution",
        setting_type = "runtime-per-user",
        default_value = 1024,
        minimum_value = 16,
        maximum_value = 16384,
        localised_name = "Tile Resolution",
        localised_description = "Pixel size for generated tiles.",
        order = "200",
    },
    {
        type = "int-setting",
        name = "jpgquality",
        setting_type = "runtime-per-user",
        default_value = 75,
        minimum_value = 1,
        maximum_value = 100,
        localised_name = "JPG quality",
        localised_description = "Compression quality for jpg files.",
        order = "201",
    },
    {
        type = "int-setting",
        name = "minjpgquality",
        setting_type = "runtime-per-user",
        default_value = 75,
        minimum_value = 0,
        maximum_value = 100,
        localised_name = "Minimum JPG quality",
        localised_description = "Compression quality for jpg files when no player entities are present. Set to 0 to skip the tile entirely.",
        order = "202",
    },
    {
        type = "string-setting",
        name = "surface",
        setting_type = "runtime-per-user",
        default_value = "_all_",
        localised_name = "Surface",
        localised_description = "Comma separated list of surfaces (e.g., 'nauvis') to render. If set to _all_, render all surfaces.",
        order = "301",
    },

    -- following settings are largely internal, for driving
    -- from CLI.
    {
        type = "string-setting",
        name = "onstartup",
        setting_type = "runtime-per-user",
        default_value = "",
        allow_blank = true,
        localised_name = "Trigger on start",
        localised_description = "Automatically generate a shot on startup. Content is used as an identifier.",
        hidden = true,
        order = "301",
    },
    {
        type = "string-setting",
        name = "savename",
        setting_type = "runtime-per-user",
        default_value = "",
        allow_blank = true,
        localised_name = "Save name",
        localised_description = "Name of the save - used to store related mapshot together.",
        hidden = true,
        order = "302",
    },
})
