> For the complete documentation index, see [llms.txt](https://docs.mapbox.com/ja/style-spec/llms.txt)

# Schema

| SDK Support | Mapbox GL JS | Android SDK | iOS SDK |
| --- | --- | --- | --- |
| basic functionality | >= 3.0.0 | >= 11.0.0 | >= 11.0.0 |

## Schema

A schema describes how a style can be configured. If a schema is present in a style, developers can only change the style through specifying configuration options, and cannot access individual layers. The `schema` key is a JSON object with its keys representing the option name and the value [option](#option) objects.

### *

Optional [option](https://docs.mapbox.com/ja/ja/style-spec/reference/schema/#option) .

Specification of a configuration option.

As an example, here's part of the schema of the Mapbox Standard style:

```json
{
    "schema": {
        "showPointOfInterestLabels": {
            "default": true,
            "type": "boolean"
        },
        "lightPreset": {
            "default": "noon",
            "values": [ "dawn", "noon", "dusk", "night" ]
        }
    }
}
```

## Option

An option describes how a particular setting can be configured. The only *required* key is the `default` value, and all other properties are optional. If they are present, the provided configuration value will be checked against the specification, and might be changed to meet the requirements.

### default

Required * .

Default configuration value for this option.

### array

Optional [boolean](https://docs.mapbox.com/ja/ja/style-spec/reference/types/#boolean) .

If true, this option is returned as an array

### maxValue

Optional [number](https://docs.mapbox.com/ja/ja/style-spec/reference/types/#number) .

If this option is a number, this specifies the maximum allowed value. Values higher than this will be clamped to the maximum value.

### metadata

Optional * .

Arbitrary properties useful to track with the layer, but do not influence rendering. Properties should be prefixed to avoid collisions, like 'mapbox:'.

### minValue

Optional [number](https://docs.mapbox.com/ja/ja/style-spec/reference/types/#number) .

If this option is a number, this specifies the minimum allowed value. Values lower than this will be clamped to the minimum value.

### stepValue

Optional [number](https://docs.mapbox.com/ja/ja/style-spec/reference/types/#number) .

If this option is a number, this specifies the increment between allowed values. Values will be rounded towards the nearest allowed value.

### type

Optional [enum](https://docs.mapbox.com/ja/ja/style-spec/reference/types/#enum) . One of `"string"`, `"number"`, `"boolean"`, `"color"`, `"object"`.

The type this value is coerced to after evaluating the expression. If unspecified, the result is returned as is and is not validated.

`"string"`:

The result will be coerced to a string.

`"number"`:

The result will be coerced to a number.

`"boolean"`:

The result will be coerced to a boolean.

`"color"`:

The result will be coerced to a color.

`"object"`:

The result will be coerced to an object.

### values

Optional [array](https://docs.mapbox.com/ja/ja/style-spec/reference/types/#array) of * .

If this option is specified, the result must be one of the given values. Otherwise, the default value is used instead.