# Flexible Survival: Ren'Py Edition

## Project Layout

```
FS-Renpy/
├── docs/                          ← Documentation
└── game/
    ├── images/                    ← GUI, characters, map backgrounds
    └── scripts/
        ├── Core/engine/           ← 28 gameplay systems
        └── Content/               ← Data-driven content (items, NPCs, quests…)
```

---

## Architecture

Content is registered via `register_*()` into global dicts — replacing Inform 7 tables. Each entry is wrapped in a data class for attribute access.

See [`docs/architecture.md`](docs/architecture.md) and [`docs/systems_index.md`](docs/systems_index.md) for details.

---

## Running

```bash
# Use the local Ren'Py launcher or SDK for your platform.
# See docs/porting_workflow.md for the current validated Windows lint command
# and the `python.exe renpy.py <project> lint` invocation used by tools/release_all.ps1.
```

---

## Contributing

- Writer guide: [`docs/writer_guide.md`](docs/writer_guide.md)
- Inform 7 porting guide: [`docs/inform_porting_guide.md`](docs/inform_porting_guide.md)
- Porting workflow: [`docs/porting_workflow.md`](docs/porting_workflow.md)
- Wolf-first queue: [`docs/wolf_first_port_queue.md`](docs/wolf_first_port_queue.md)

### Pre-submit checklist
- [ ] Ren'Py lint passes with the current local SDK/runtime
- [ ] New game reaches game loop
- [ ] Status, Inventory, Equipment, Body Status, Quest Log all open
- [ ] New scene triggers once and does not repeat
- [ ] No `TODO`, `DEBUG`, `Placeholder`, `pass` in files
