babylon.models.entities.territory

Territory entity model.

A Territory is the Phase 3.5 node type - the spatial substrate of the simulation. It represents a strategic sector in the world system, defined by: 1. Its sector type (industrial, residential, commercial, etc.) 2. Its ownership stack (host/parasite relationship) 3. Its operational profile (visibility stance) 4. Its heat level (state attention) 5. Its territory type (settler-colonial hierarchy classification)

Sprint 3.5.2: Layer 0 - The Territorial Substrate. Sprint 3.7: The Carceral Geography - Necropolitical Triad.

Classes

Territory(**data)

A strategic sector in the world system.

class babylon.models.entities.territory.Territory(**data)[source]

Bases: BaseModel

A strategic sector in the world system.

Territories are the spatial nodes of the simulation. Unlike SocialClass nodes which represent abstract class positions, Territory nodes represent physical locations that can be occupied, contested, and liberated.

The “Host/Parasite Stack” defines territorial control: - Host (Legal Sovereign): Recognized by State, collects rent/taxes - Occupant (De Facto User): Actually uses the space, may be revolutionary

The “Operational Profile” trades visibility for recruitment: - LOW_PROFILE: Safe from eviction, low recruitment - HIGH_PROFILE: High recruitment, high heat (state attention)

Parameters:
id

Unique identifier matching pattern ^T[0-9]{3}$

name

Human-readable sector name

sector_type

Economic/social character of the territory

territory_type

Classification in settler-colonial hierarchy (Sprint 3.7)

host_id

Optional ID of the Legal Sovereign (collects rent)

occupant_id

Optional ID of the De Facto Occupant (uses space)

profile

Operational profile (visibility stance)

heat

State attention level [0, 1]

rent_level

Economic pressure on occupants [0, inf)

population

Human shield count (sympathizers)

under_eviction

Whether eviction pipeline is active

model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'str_strip_whitespace': True, 'validate_assignment': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

id: str
name: str
sector_type: SectorType
territory_type: TerritoryType
host_id: str | None
occupant_id: str | None
profile: OperationalProfile
heat: Annotated[float]
rent_level: Annotated[float]
population: int
under_eviction: bool
biocapacity: Annotated[float]
max_biocapacity: Annotated[float]
regeneration_rate: float
extraction_intensity: float
property clarity_bonus: float

Recruitment bonus from profile visibility.

HIGH_PROFILE attracts cadre through ideological clarity. LOW_PROFILE is safe but boring.

Returns:

0.3 if HIGH_PROFILE, 0.0 if LOW_PROFILE

property is_liberated: bool

Whether territory is a Liberated Zone.

A territory is liberated when there is an occupant but no host (legal sovereign). This represents successful transition from parasitic to sovereign tenure.

Returns:

True if occupant exists and host does not

property is_sink_node: bool

Whether territory is a sink node in the displacement graph.

Sprint 3.7: The Carceral Geography - Necropolitical Triad.

Sink nodes are territories where displaced populations are routed. They have no economic value - only containment/elimination function. Population flows INTO these territories but does not flow OUT easily.

The three sink node types form the Necropolitical Triad: - RESERVATION: Containment (warehousing surplus population) - PENAL_COLONY: Extraction (forced labor, suppresses organization) - CONCENTRATION_CAMP: Elimination (population decay, generates terror)

Returns:

True if territory_type is RESERVATION, PENAL_COLONY, or CONCENTRATION_CAMP