Skip to content

Collapse BRA/ARG/USA producers into one PDL-derived producer archetype #33

Description

@Hackatro

After #31 the three producer archetypes are behaviorally identical, surviving only as
hand-maintained wiring identity. Collapse them — and the place-named transport/sea-lane
roles — into one generic set differentiated only by PDL entity id, so a new entity wires
itself with no topology.py edit.

Archetypes are declared in data (sidecar until the PDL carries the field), not inferred
from (type, sector). Wholesalers become one per producer. Fertilizer binds all producers,
derived from dependencies — behavior change, needs re-baseline.

Producer list names are the output schema, including DB table names in tick_writer.py.

Two silent traps. _peer_list() is an if/elif over the 8 place-named roles: rename the
roles first and every peer count is wrong, silently corrupting every volume division.
And origin switching came from the wholesaler's demand target, not the price sort — a
greedy sort at Rotterdam without one changes nothing.

Acceptance staged: byte-for-byte pure refactor first, behavior changes after. Supersedes #19.

Metadata

Metadata

Assignees

No one assigned

    Labels

    improvementFor everything that improves an already existing feature.simulation logicFor everything related to the internal simulation logic

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions