Project Structure (current)

PayPort Labs monorepo layout as of Schema 2 + Dual-Mode.

ppd-labs/
├── app/                          # Platform (SIWE, town, arena, learn) — port 8121
├── alembic/                      # Schema migrations (Postgres only)
├── payport-merchant-template/    # Canonical merchant starter (Dual-Mode)
├── micro_services/
│   ├── anchor/weather/           # @town_weather_api — :8140
│   ├── districts/                # Commercial + District Zero demos
│   └── districts/_shared/        # Shared 402 + Dual-Mode helpers
├── notes/
│   ├── AUTHORITY.md              # Doc authority hierarchy
│   ├── Docs/academy|reference|…  # Live Learn content
│   └── archive/                  # Historical only — do not implement from these
├── deploy/                       # systemd unit templates (User=payport)
├── scripts/preflight.sh
└── tests/

Public URLs

SurfaceURL
Platformhttps://lab.payportdirect.com
Town UI/town
Claim/town/claim
Map API/api/v1/town/map
Learn/learn · /academy · /reference · /business

Ports (this VPS)

See /srv/PORTS-README.md and notes/Docs/Misc.md. Platform 8121; Weather Anchor 8140; District Zero HVAC practice 8141; active district seats use 8123–8139 and 8143–8146 (trades commercial 8143–8145; hospitality includes 8146). Official Player Zero / lead dispatcher examples may use 8122. Legacy trades 8126–8128 are deprecated.

Documentation authority

See notes/AUTHORITY.md.