---
id: connection-and-sync/005
title: Area connectivity — single_player, multiplayer, either
epic: connection-and-sync
state: done
priority: 1
blocked_by: []
estimate: M
created: 2026-08-18
updated: 2026-08-19
claimed_by: null
claimed_at: null
delivers: []
review_artifact: land-of-lor/docs/handoff/connection-and-sync/005-area-connectivity.md
---

## What to do

- `schema.sql`: `ALTER TABLE areas ADD COLUMN IF NOT EXISTS connectivity TEXT NOT NULL DEFAULT
  'multiplayer';` homes set to `either` at creation and by a `[migrate]` backfill.
- `worldContent.ts`: `AreaContentSchema.connectivity` (enum, default `multiplayer`); the
  validator insists the hub is `multiplayer` and homes are `either`. `spellgrove.world.json`
  unchanged (defaults apply).
- World editor: a segmented control in the Area inspector; a visual on the ball.
- `publicMap.ts` exposes it (it isn't a secret); `hello_ack.area.connectivity`; the in-game
  world map screen marks Areas that need a connection.
- `portal_blocked` gains reason `OFFLINE` — "That way needs a connection" — used by 006.

## Definition of done

Schema, loader and public-map round trips in tests; validator refusals; the editor writes and
reads the field; `verify-world-map` still green.

## Where the work lands

`land-of-lor/game/director/`, `tools/world-editor/`, `game/world/`.