# Screens
Builds the UI host for every screen: title, HUD, interact prompt, examine overlay, journal, pause, victory and defeat. Placed once by `scenes/main.scene/build.luau` (`Screens` placement); reads `game.rules` state and events. Owned by the screens & sound slice.
# District
The Whitechapel crossroads Smog is played in, and the whole look of the night.
- **Streets:** wet cobbled carriageways (`art.cobbles`, puddled), flagstone pavements and kerbs.
- **Terraces:** soot-brick houses (two brick variants) with slate roofs, chimney stacks and pots, cornices and string courses. Each has sash windows (35% lit), a stucco door case and step, then either a shopfront (pub, pawnbroker, chemist, counting-house, with fascia signs and a warm shop glow) or a window, a poster and wrought-iron railings. Corner houses carry street-name signs and bills.
- **Clutter:** poster hoardings at the street ends, barrels, crates, bollards, a pillar box, a water pump, a handcart, a hansom cab, and washing lines across the streets.
- **Lamps:** a generated gas lamp at every `Rules.LAMP_SITES` entry, its flickering flame light `LampFlame_<i>` (`world.LampFlicker`) at `Rules.LAMP_HEIGHT`.
- **The north arm** stops at the gasworks wall (`GATE.z + 0.5`), with an end house filling to it.
- **Look:** a procedural night sky, a cold moon, ambient fill, and the `Smog` entity (green VolumetricLighting plus HeightFog; the rain-wet film, puddles and ripples come from `art.wet_tri` itself; `world.SmogThinner` easing the densities with `Rules.state.smogLevel`). The `Lens` entity adds GTAO, SSR, contact shadows, TAA, bloom, grade, chromatic aberration and vignette under display exposure 3.2.
`LOOK` at the top of `init.luau` is the single tuning table. Dressing keeps clear of every lamp site, evidence spot, oil can and the spawn. The scene places this once (`scenes/main.scene/build.luau`, the `District` placement). It is built on `world.kit` and owned by the world slice.
# rules
Smog's single shared module: every tuning constant, the layout anchors (spawn, lamp sites, evidence, gate, yard, Engine, valves), the round state (phase, health, oil, lantern, evidence, valves, smog), and the event bus the slices talk through.
Owned by the lead. Every slice `require("game.rules")`, reads the constants, calls the functions and subscribes with `Rules.on(event, fn)`; no slice edits it. The scene entrypoint calls `Rules.reset()` on load and `Rules.tick(dt)` each frame. The full event list, with who emits each one, is at the top of `init.luau` and in `/zero/source/design/spec.md`.
# Crane
Inspector Silas Crane's gameplay: input (cane, flare, interact, journal, menu), the lantern light and its oil, smog breathing, retry teleport and his look. Attached to the player prototype's `body` by `scenes/main.scene/build.luau`, on top of the builtin humanoid avatar that moves him. Talks to the rest of the game only through `game.rules`. Owned by the player slice.
# Soundscape
Builds the audio entities for music, ambience and every sound effect, played off `game.rules` events. Placed once by `scenes/main.scene/build.luau` (`Soundscape` placement). The AudioListener lives on the player's CameraRig. Owned by the screens & sound slice.
# Enemies
Builds everything the Choked and the Black Lung cultists need in the scene (director entity, AI components, stand-in bodies). Placed once by `scenes/main.scene/build.luau` (`Enemies` placement). Talks to the rest of the game through `game.rules`. Owned by the enemies slice.
# Investigation
Builds the evidence trail, oil cans, gasworks gate and the Miasma Engine with its three valves at the anchors in `game.rules`. Placed once by `scenes/main.scene/build.luau` (`Investigation` placement). Owned by the investigation slice.
# Gasworks
The Thames-side gasworks yard north of the district.
- **Walls:** a 5 m soot-brick boundary wall with stone coping and brick piers. A gap at `Rules.GATE` is flanked by stucco gate piers with ball finials, gate lamps, the company plaque and bills.
- **Yard:** a puddled cinder floor, coal heaps, barrels, crates and a handcart, and the counting-house with its lit window and sign.
- **Background:** the retort house glows orange at the back, with twin stacks. Pipes run along the east wall.
- **Gasholders:** two of them, in rusted guide-frames of columns and ring girders, tower over the side walls. A gas main crosses the west wall.
- **Lamps:** six yard lamps (`YardFlame_<i>`, flickering) and a firelight spill from the retort house.
The gate itself, the Miasma Engine and its valves belong to the investigation slice. This module leaves the gate gap open and keeps clear 9 m around `Rules.ENGINE`, the valve sites and the yard oil can. The scene places it once (the `Gasworks` placement). It is built on `world.kit` and owned by the world slice.
# smog_grade
The Smog night's colour grade: a display-space post-process that lifts the blacks toward a smog green, split-tones shadows to absinthe and highlights to gaslight amber, adds a filmic S curve and highlight bleach, and lays animated film grain over the frame. Registered on the District's `Lens` PostProcess after bloom.
# LampFlicker
Wavers a gas lamp's point Light intensity around `base` by up to `depth`, on a
per-lamp `seed` phase, so Smog's street lamps gutter like real gas flames. Put
it on the entity carrying the Light (world/District does, on every
`LampFlame_<i>`).
# SmogThinner
Ties the district's air to the plot. It sits on the `Smog` entity and eases its VolumetricLighting and HeightFog densities between their thick values (`volumeThick`, `fogThick`, at `Rules.state.smogLevel` 1) and their clear values (at 0). It runs in edit and play, and re-pushes the global fog passes if another entity's teardown cleared them.