89 lines
4.7 KiB
Markdown
89 lines
4.7 KiB
Markdown
# Secured Context — the kind of hold a pawn is under
|
||
|
||
The suite has a rule that looks small and is load-bearing: **nothing keys off "is this a prisoner."**
|
||
It keys off the *kind of hold* a pawn is under. That one step of indirection is why a ward patient, a
|
||
slave, and (later) anyone inside a secure zone get the same concealment, search, schedule, and needs
|
||
machinery for free, without any feature hard-coding a single pawn status.
|
||
|
||
A pawn's secured context boils down to one of three kinds and the question "who, if anyone, may search
|
||
them." Everything downstream reads that, so a new feature works across every kind of hold the day it's
|
||
written, and a new *kind of hold* works across every existing feature the day it's added.
|
||
|
||
---
|
||
|
||
## The three kinds
|
||
|
||
| Kind | Who it is | May search them | Can conceal? | Held against their will? |
|
||
|---|---|---|---|---|
|
||
| **Free** | a free colonist | *no one* — until a secure-area or policing layer grants standing | **yes** — they can hoard | no |
|
||
| **Prisoner** | a prisoner of the colony | the **warden** | yes | **yes** |
|
||
| **Slave** | a slave (Ideology DLC) | the **overseer** | yes | **yes** |
|
||
|
||
Two subtleties fall out of this table:
|
||
|
||
- **Free colonists can still conceal.** A free colonist can hoard contraband, but no one has standing
|
||
to search them until a secure-area or policing layer grants it. Freedom isn't innocence — it's only
|
||
the absence of an authority allowed to check.
|
||
- **Prisoner and Slave differ only in who holds the keys.** Both are "held"; the search authority is
|
||
the warden for one and the overseer for the other. Features that only care "is someone entitled to
|
||
search this pawn" read whether the pawn is *held* and never branch on which.
|
||
|
||
## Two questions, two axes
|
||
|
||
The context answers two different questions, and picking the right one is the whole skill of using it:
|
||
|
||
| Question | True for | Ask it when you care about… |
|
||
|---|---|---|
|
||
| **Is this pawn held?** | Prisoner, Slave | **custody** — who is under the colony's control, who can be disciplined, whose cell can be searched |
|
||
| **Could this pawn be hiding something?** | Free, Prisoner, Slave (any real pawn) | **contraband** — who could be *hiding* something, regardless of status |
|
||
|
||
For example, [Propensity](Propensity.md)'s Nurture uses *held* in its "held & unhappy compounds" lever
|
||
— it only wants to pile the ×1.4 penalty on a pawn the colony actually holds and mistreats, not on a
|
||
grumpy free colonist. A warden-search feature, by contrast, cares who *could* be hiding something to
|
||
decide who's even worth checking, and then checks standing to decide whether it's *allowed* to.
|
||
|
||
---
|
||
|
||
## How a pawn gets classified
|
||
|
||
Any pawn resolves to one context, or to **nothing at all** if the suite doesn't model them:
|
||
|
||
- Animals, mechs, and the dead are simply not the suite's business — they resolve to nothing, and
|
||
every sweep and check skips them without a special case.
|
||
- A pawn is tested as **prisoner** first, then **slave**, then **free colonist**. So a pawn who is
|
||
somehow both a colonist and imprisoned is classified by their *hold* first.
|
||
|
||
Keeping "nothing at all" separate from "a free pawn we track" is deliberate: there's a real difference
|
||
between "a free pawn we watch" and "a pawn we don't model at all," and collapsing them would let
|
||
non-colony pawns leak into colony machinery. A single sweep can walk every prisoner, slave, and
|
||
colonist on a map in one pass, skipping everything that resolves to nothing.
|
||
|
||
---
|
||
|
||
## Why not just "prisoner"?
|
||
|
||
This is the design decision the whole page exists to justify. If every feature checked "is this pawn a
|
||
prisoner" directly, then:
|
||
|
||
- adding **slaves** to a feature would mean revisiting every feature;
|
||
- adding a **ward patient** mode would mean revisiting every feature;
|
||
- adding a future **secure-zone** concept would mean revisiting every feature.
|
||
|
||
By routing all of them through one question — *what kind of hold is this?* — a new kind of hold is
|
||
added *once*, and every existing feature inherits it. The concealment, search, and needs machinery
|
||
never has to learn what a slave is; it only ever asked whether the pawn is *held* and whether they
|
||
*could conceal*.
|
||
|
||
### The deliberately-absent Ward kind
|
||
|
||
There's no separate "ward patient" kind, and its absence is intentional. A committed ward patient
|
||
**is** a prisoner in the game's own sense — Institution: Ward builds its committed-patient mode on top
|
||
of vanilla's prisoner system — so such a pawn already counts as **Prisoner** here, with no special case
|
||
and no dependency from Core (or Contraband) onto Ward. Every feature treats a ward patient exactly as
|
||
it treats any prisoner. The right amount of new work to support Ward's hold semantics was zero, and
|
||
that's the payoff of keying off the kind of hold instead of the label.
|
||
|
||
---
|
||
|
||
*Part of the **Institution** suite.*
|