Welcome to Happa, Anonymous Friday, October 09 2026

DEVELOPMENT SNAPSHOT #48 — When a Treaty Limit Meets a Shipment: Annual Quotas in Motion

A treaty’s “per year” figure is not inventory deducted at the moment of signing. In the current Ashwind Chronicle implementation under development, quota use is recorded when a real shipment is dispatched, and the amount is restored if an inspection rejection cancels that shipment. Here is how a promise in the negotiation screen connects to dispatch and cancellation in the game logic.

When two countries agree on an annual export amount, what makes that number move in the simulation? The system we are developing does more than display a treaty limit: it records quota use when a shipment is dispatched and restores that use when the transport does not go through.

The promise moves at dispatch, not at signature

Signing a treaty does not subtract goods from a country’s inventory. Once an agreement is active and a real shipment is dispatched, the game records usage for the exporter, resource, and applicable annual period. The contractual ceiling and the stock in a warehouse remain separate quantities.

The period is not a simple January-to-December calendar year. In the current implementation, it follows the agreement’s start date and its anniversary in the in-game calendar. Usage is checked for each export direction and resource. A dispatch beyond the remaining amount is blocked, and the same transport task cannot consume quota twice. A resource marked unlimited is not constrained by a finite amount.

The resource cards show the terms configured during negotiation; this screen does not display quota usage history.

If inspection rejects the cargo, the quota comes back

Reducing the quota at dispatch is only half of the lifecycle. If inspection rejects a shipment and the transport is cancelled, leaving its quota use behind would make the ceiling shrink even though the goods were not accepted. The cancellation path therefore marks that task’s use as released and subtracts it from the annual total. The task ID makes the release idempotent: the same shipment cannot return its amount twice.

In short: accept the agreement → dispatch a real shipment → record annual usage → if inspection rejects it, cancel the transport and release that usage. The goal is for a cancelled delivery not to cast a lingering shadow over the treaty’s remaining allowance.

The screen shows the promise; the transport service keeps the ledger

The negotiation screen lets the player review duration, offered resources, requested resources, and proposal status. Quota consumption and release are recorded in the transport services instead. Keeping pre-signature negotiation separate from post-agreement shipment processing helps prevent mismatches such as using quota while talks are still pending, or leaving a rejected shipment counted against the limit.

These screenshots are crops from the actual game Debug build. They show treaty configuration, not a visual readout of quota consumption or release; that accounting currently happens in the shipment logic.

For the resource-card negotiation flow, see DEVELOPMENT SNAPSHOT #44: One Resource Card, Two Directions. For the game’s distribution and download information, visit the Downloads page.