Chart file format

One chart, as one YAML file. Download a chart, edit it anywhere, put it back.

Every chart on this site can be downloaded as a file and imported again. The format is meant to be written by hand, generated by a language model, or produced by a script moving charts between sites — so it carries no internal identifiers and nothing a person would not type.

Signed in, you can import a chart, and download any chart you own from My charts or its editor.

A complete example

format: iceberg-chart
version: 1
title: Video Game Iceberg
description: Box art everyone knows, down to a leaked build.
topics: [games, internet]
layout: poster-classic
licence: cc-by-sa-4.0
nsfw: false
attribution:
  name: u/someone
  url: https://example.com/the-original
tags: [Speedrun, Myth]
tiers:
  - label: Surface
    items:
      - Mario is a plumber
      - title: Sonic goes fast
        tags: [Speedrun]
  - label: The Abyss
    items:
      - title: The Polybius cabinet
        url: https://en.wikipedia.org/wiki/Polybius
        tags: [Myth]

Items can be written two ways

An item is either plain text — which is its title — or a mapping with title and optionally url and tags. Most items are just text, which is what lets a chart read like the list it is.

Fields

format requiredAlways iceberg-chart.
version requiredAlways 1. This is here so the format can change later without breaking files and scripts written against it today.
title requiredThe chart’s title, up to 200 characters.
descriptionA sentence or two about the chart, up to 2000 characters.
topicsUp to 5 ids from the fixed list below. Topics describe the whole chart and link it to others.
layoutHow the chart is drawn. One of the ids below.
licenceThe reuse terms you are offering. One of the ids below.
attributionA mapping with name (up to 120 characters) and an optional url, naming whoever made the work this chart was adapted from. Leave it out for an original chart.
nsfwtrue to keep the chart out of the browse grid, search and topic listings for readers who have not asked to see adult content. It stays readable by direct link.
tagsThis chart’s own labels for its items — up to 8 of them, each up to 40 characters. Readers use them to filter the chart while reading it.
Optional. Leave it out and the list is built from the order tags first appear on the items below; include it and that order is yours to set.
tiers requiredAt least one, and at most 8. Each is a mapping with a label (up to 100 characters) and items (up to 200). Order is the order you write them in — surface first, deepest last.
tiers[].items[].title requiredThe item, up to 200 characters. Write the item as plain text and this is what it means.
tiers[].items[].urlAn optional http:// or https:// link to more about the item.
tiers[].items[].tagsUp to 4 tag labels, matching the chart’s tags. Written as labels, not identifiers, and matched regardless of capitalisation.

What the file does not carry

There are no identifiers in the file — tiers, items and tags get them when the file is imported, derived from their own labels. Nothing outside a chart refers to them, so a round trip changes every one and nothing notices.

Nor is a chart’s published state part of the format. An imported chart is always created private, so publishing stays something you do deliberately in the editor rather than something a file can do to you. A file that names visibility is refused rather than quietly ignored — as is any field this page does not list, because a typo that is silently dropped looks exactly like a successful import.

Likes, view counts, timestamps and the chart’s owner are the site’s to keep and are never read from a file. Importing over an existing chart leaves all of them, and its address, alone.

Topics

A fixed list. Use the id on the left, not the label.

Layouts

Licences

Writing a chart with a language model

Paste this in front of whatever you want a chart about. It is the format above, cut down to the parts a model needs.

Write me an iceberg chart as a YAML file in this exact format.
An iceberg chart is a set of ordered tiers, from things everyone
knows at the surface down to the obscure at the bottom.

format: iceberg-chart
version: 1
title: <the chart's title>
description: <a sentence about it>
topics: [<up to 5 of these ids>]
tiers:
  - label: <the tier's name>
    items:
      - <an item, as plain text>
      - title: <an item that needs more>
        url: <an optional http(s) link>

The topic ids are:
  film, tv, music, games, anime, books, comics, art,
  internet, technology, science, space, nature, history,
  mythology, conspiracy, unsolved, lost-media, horror, food,
  sport, places, language

Rules: at most 8 tiers; at most 200 items in a tier;
a title is at most 200 characters. Output the YAML and nothing else.

Check what comes back before you publish it. A model will invent plausible-sounding entries, and the chart goes out under your name.