babylon.engine.dialectics.distribution

DistributionDialectic — Wages ↔ SurplusShares (Grundrisse moment).

This is the Grundrisse-level distribution dialectic, distinct from the V3 SurplusDistributionDialectic which handles the decomposition of surplus into profit, interest, rent, and taxes.

Classes

DistributionDialectic(**data)

Wages ↔ SurplusShares distribution (Grundrisse moment).

SurplusShares(**data)

Surplus shares distributed among claimants.

Wages(**data)

Wage component of distribution.

class babylon.engine.dialectics.distribution.DistributionDialectic(**data)[source]

Bases: Dialectic[Wages, SurplusShares]

Wages ↔ SurplusShares distribution (Grundrisse moment).

Weight semantics:

weight < 0 → wages dominate surplus claims. weight > 0 → surplus claims squeeze wages (profit squeeze).

Parameters:
type_tag: str
step(inputs, world)[source]

Motion law T for distribution dynamics.

Parameters:
  • inputs (TickInputs) – Upstream outputs. Looks for profit_squeeze events.

  • world (WorldView) – Read-only world context.

Return type:

DistributionDialectic

Returns:

New DistributionDialectic with updated weight.

observe()[source]

Project distribution state for downstream dialectics.

Emits: - wages_paid: total wages from pole A (→ Consumption) - surplus_distributed: total surplus from pole B (→ Consumption)

Return type:

dict[str, Any]

Returns:

Base observation extended with distribution outputs.

model_config: ClassVar[ConfigDict] = {'frozen': True}

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

id: UUID
pole_a: A
pole_b: B
weight: float
parent_id: UUID | None
tick_created: int
tick_updated: int
class babylon.engine.dialectics.distribution.SurplusShares(**data)[source]

Bases: BaseModel

Surplus shares distributed among claimants.

Parameters:
profit_distributed

Profit of enterprise distributed.

interest_paid

Interest on borrowed capital.

rent_paid

Ground rent paid to landowners.

model_config: ClassVar[ConfigDict] = {'frozen': True}

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

profit_distributed: float
interest_paid: float
rent_paid: float
class babylon.engine.dialectics.distribution.Wages(**data)[source]

Bases: BaseModel

Wage component of distribution.

Parameters:

wages_paid (Annotated[float, Ge(ge=0)])

wages_paid

Total wages paid in the distribution round.

model_config: ClassVar[ConfigDict] = {'frozen': True}

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

wages_paid: float