feat(carriers): slice 3 regional, local, and Alaska carriers - #258
Merged
Merged
Conversation
Plan for carrier slice 3: sixteen new lower-48 regionals, an Alaska regional with Anchorage and Fairbanks terminals that opens AK home cities while BC and YT stay blocked, and two metro locals. Lists each carrier's key, tier, terminal city keys, hiring footprint, lane area, and the cities only it covers; the six cities left with nationals only; the coverage test; and open questions. No carrier data changes. [skip changelog]
Regenerate the plan without the duplicated sections 3-5 and regionals 6-16. Settle the count at 17 lower-48 regionals, keep the four wide spans, and add a Green Bay terminal so all 625 lower-48 cities get a regional. Replace the Milwaukee termination fallback with a home-city rule, add Knik Arm Cartage as a second Alaska carrier, keep the Alaska regional inside Alaska, and note ALCAN through-freight as future work. Record a trademark screen of every name; sixteen names are replaced. Add a ROADMAP row for TWIC on LA/Long Beach port drayage. [skip changelog]
Replace twelve plant, animal, and seaweed names with river, valley, and range names under the realism re-cut's name rule, and screen all 20 names against FMCSA SAFER, the USPTO trademark search (now reached through its public JSON endpoint), and the web. Record the Loonwater span, the thin Knik Arm Cartage footprint, and the fallback rule as resolved, add a no-AK-driver-on-a-lower-48-carrier test, and add a ROADMAP debt row for the Kenai Peninsula and Seward. [skip changelog]
Catawba Ridge Transport becomes Meherrin Transport (meherrin_transport): the Meherrin River runs on the VA/NC line between Richmond and Greensboro, inside the carrier's footprint, and the bare word screens clean where "Catawba" hit three freight-named registrants in the lane area. The Tehachapi name line no longer implies CA-58 is the LA-Fresno lane (that runs I-5 over Tejon Pass); CA-58 is inside the lane area, so the name stays. The open questions are resolved, sufferance is written into the fallback rule, and the local tier drops short_haul_bias. [skip changelog]
data/carriers.json grows to 24 carriers: 16 new regionals join Prairie Link (hire within 250 air mi, loads up to 600 mi), Chatanika Freight Lines hires across Alaska out of Anchorage and Fairbanks, and three locals (Des Plaines River Cartage, Basin Harbor Drayage, Knik Arm Cartage) hire within 50 mi with loads up to 150 mi. Loonwater Regional gets its Green Bay terminal. Every new carrier has a spoken lane area and a generated start option, so Alaska home cities open in the picker. A driver let go is taken on by a regional or local that hires at home, nearest terminal first and never the carrier that let them go, else by Great Lakes Training, else is home with no carrier. The new carrier keeps them on sufferance. With no carrier, the terminal offers "Apply to a carrier" in place of the dispatch board.
All 625 lower-48 map cities are hired into by a regional (and offered in the picker); every Alaska city is offered and hired into only by Alaska carriers; BC and YT stay closed. For every Alaska home and every firing carrier, neither the fallback nor the openings ever name a lower-48 carrier. The fallback is never the firer, prefers the nearest regional or local, and leaves a Fairbanks driver let go by Chatanika home with no carrier, with Knik Arm Cartage offered as a move. Tier bands, unique names, and terminal yard pins are pinned; Fairbanks is a carrier-owned terminal, no world pin needed. [skip changelog]
The regionals and coverage test rows are done. New rows: Loonwater's 636 mi terminal span (KEEP, Bismarck stays, loads obey the 600 mi band) and Fairbanks' missing world yard pin. Knik Arm's next-in-line row stays, and the orinks.net export row now names the 20 new carrier labels and the empty carrier fields an unassigned driver saves. [skip changelog]
Home terminals are carrier-owned yards synthesized from
terminal_city_keys, never a world pin, so Fairbanks is not an
exception. The terminal test now checks that terminal cities are real
map cities and that each has a carrier-owned "{Carrier} {City}
terminal", with Fairbanks shown as needing no world pin. The ROADMAP
Fairbanks row closes on the same wording.
Two slice 4 debts: hourly or per-move pay for local carriers, and a
short-haul board bias for locals under its own setting, not the
"training loads" one.
[skip changelog]
Carrier name no longer falls back to the starter carrier; the hub, objective, training, business and trust text speak a no-carrier state. Let-go wording says near your terminal when no home city is saved, and the fallback never writes home_city. No trust line with no carrier; the sufferance last-chance line says the seat will not be ended. Hub hides the truck menus with no carrier.
A clean record on sufferance speaks no record line. Resetting a career with no carrier picks the nearest carrier hiring at the home city (the current city when none is saved), so Alaska stays in Alaska. With no carrier, career stats and the dealer say there is no truck and the career list names the city only. A firing is said before the hub line, which now describes the terminal after it.
Orinks
force-pushed
the
wip/carrier-s3-data
branch
from
September 27, 2026 01:16
05798b5 to
5ebbdd2
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Carrier slice 3 data, per the approved plan (
docs/carrier-slice3-plan.md). This folds in the plan PR #257 (its three plan commits are the first three here), which is closed as superseded.Carriers (24)
meherrin_transport). The plan's sections 1, 2, 10, 11 and 12 are updated.lane_areaand a generated start option. That opens Alaska home cities in the picker; BC and YT stay closed.Fallback when a carrier lets a driver go (plan section 5)
A driver is let go by
check_carrier_termination, a debt termination, or a low-reputation repossession. The fallback is chosen from the driver's home city (home_city, elsehome_terminal_city, elsecurrent_city):Details:
DrivingRecord.sufferance_carrier_key). The same record can't end that job again, and debt stops at the ceiling, the same way it does at Great Lakes Training.Driver with no carrier. The save stores an empty
carrier_keyandcarrier_name.Tests
company_yard/terminalpin. It is named in the test with its reason and has a ROADMAP row.Docs
carrierLabelsand the empty carrier fields.profile_integrity_invariants.jsonis regenerated (carrierLabels).