Style books

Zone card template

Fill in every field for a zone added later, add it to zones.json, and check it against the rules at the end. Section 6 of README.md explains each field; the ten existing cards are the examples.

#### <order>. <Name> (<inside|outside>, <region>; look <0–1> if not 1)

- **Feeling:** <one sentence a child could say back to you>
- **Key reference:** <a real landscape type, and one named precedent from sources.md>
- **Palette:** `#……` <role> · `#……` <role> · … (5–7 colours; the first one or two take half to two thirds of a
  frame; name the darkest). Accent: <cyan | ember | violet | gold>, carried by <what glows>.
- **Motif:** <one shape, and three things that repeat it: land, plant, building>
- **Light and weather:** <hour, weather, what moves>. Sky share <… %>. Value key <lo–hi>.
- **Plant and ground:** <one signature plant found nowhere else as a drift>; <one ground>.
- **Architecture:** <shape, roof, wall, colour, detail>.
- **Creatures:** <who lives here, and what each wears or grows of the zone>.
- **Never:** <one thing>.
{ "id": "", "name": "", "side": "outside", "region": "", "order": 11, "look": 1,
  "feeling": "", "motif": "", "accent": "", "value_key": [0.0, 0.0], "frame": "art/zone-<id>.webp",
  "palette": [ { "hex": "#", "role": "" } ] }

The prompt for its proof frame

FAMILY + INSIDE or OUTSIDE (from prompt-blocks.md) + a zone line in this shape:

Zone: <Name>, <what it is>, <hour and weather; say "no sunset colours" unless it is evening>. <Six to ten things
that are there, the biggest first; one of them ten times her height>. <TINY or HERO> <where she is>. Two thirds of
the picture is <key colour one> and <key colour two>; then <three more>; <the accent, carried by what> is the one
glowing accent. Shape motif: <motif>. <One sentence on how it feels, and what it must not become.>

Checks before it counts

  1. The accent follows the compass rule (north ember, west cyan, south gold, high violet), or the card says why not.
  2. Against each neighbour it differs in at least two of: key hue by 40° or more, value key by 0.10 or more, warm or cool.
  3. Its motif, signature plant, roof and wall are not used by another zone.
  4. Its proof frame passes python3 tools/frame-stats.py art/zone-<id>.webp --zone <id>: median luma inside the value key, at most 3 % under luma 0.08.
  5. Its thumbnail is added to the colour script (art/colour-script.webp), and the strip still swings: no two neighbours in travel order share a value key and a hue.
  6. Each border it shares has a threshold marker designed (both zones' materials, the entering zone's accent in its lantern).
  7. One "never" that is checkable in a still.