<commit_before>The **scene file** is a [YAML](http://en.wikipedia.org/wiki/YAML) document which organizes all of the elements Tangram uses to draw a map. YAML is a data format similar in many ways to JSON, but it has some unique features which we thought made it more friendly and easy to use for our purposes. (See the [YAML](yaml.md) entry for more about those features.)

## Top-level Elements

There are a variety of top-level elements allowed in a scene file. Each defines the beginning of a _block_ named for the element.

####`scene`
Optional element. The `scene` block sets various scene-wide parameters.

See [scene](scene.md).

####`sources`
Required element. The `sources` block identifies datasources.

See [sources](sources.md).

####`styles`
Optional element. The `styles` block defines rendering styles, which are composed of [materials](materials.md) and [shaders](shaders.md).

See [Styles Overview](Styles-Overview.md) and [styles](styles.md).

####`layers`
Required element. The `layers` block divides the data into layers and assigns styling parameters.

See [Styles Overview](Styles-Overview.md), [layers](layers.md), and [styling rules](styling-rules.md).

####`cameras`
Optional element. The `cameras` block allows modifications to the view of the map.<commit_msg>removed link to 404 page<commit_after>The **scene file** is a [YAML](http://en.wikipedia.org/wiki/YAML) document which organizes all of the elements Tangram uses to draw a map. YAML is a data format similar in many ways to JSON, but it has some unique features which we thought made it more friendly and easy to use for our purposes. (See the [YAML](yaml.md) entry for more about those features.)

## Top-level Elements

There are a variety of top-level elements allowed in a scene file. Each defines the beginning of a _block_ named for the element.

####`scene`
Optional element. The `scene` block sets various scene-wide parameters.

See [scene](scene.md).

####`sources`
Required element. The `sources` block identifies datasources.

See [sources](sources.md).

####`styles`
Optional element. The `styles` block defines rendering styles, which are composed of [materials](materials.md) and [shaders](shaders.md).

See [Styles Overview](Styles-Overview.md) and [styles](styles.md).

####`layers`
Required element. The `layers` block divides the data into layers and assigns styling parameters.

See [Styles Overview](Styles-Overview.md) and [layers](layers.md).

####`cameras`
Optional element. The `cameras` block allows modifications to the view of the map.
{'fraction_non_alphanumeric': 0.10749313456257356, 'fraction_numerical': 0.0011769321302471558, 'mean_word_length': 4.916473317865429, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2805621', 'n_tokens_mistral': 721, 'n_tokens_neox': 690, 'n_words': 327}