route-*.json)Each route-*.json file pins one OD pair (one carrier combo) and sweeps it across a standard class × passenger-mix matrix of 12 bookings. Use these to answer "how does carrier X behave across different pax types and classes?" - they isolate one route so regressions cleanly point at a specific carrier.
All files share the same 12-item sweep - the only thing that changes between files is od (and market, where it matters for paris-origin routes).
All files live in docs/examples/batch/route/.
| File | OD | Carrier combo | Why it matters |
|---|---|---|---|
lon-par.json |
London → Paris (es) |
ES direct | The flagship route. If anything breaks, this is the loudest signal. |
lon-ams.json |
London → Amsterdam (er) |
ER direct | Second flagship, separate inventory/seat maps from ES. |
sncf.json |
London → Marseille (sncf) |
ES + SNCF connection | Tests through-fare leg-joining with an SNCF domestic. |
sncb.json |
London → Bruges (sncb) |
ES + SNCB connection | Same but for Belgian domestic. |
db.json |
Frankfurt → London (db) |
DB + ER (reverse direction) | DB-origin leg; historically the most fragile combination. |
lon-col.json |
London → Cologne (db-ret) |
ES + DB | DB-destination variant; distinct from Frankfurt-origin. |
par-bru.json |
Paris → Brussels (par-bru) |
ER-only intra-EU | No UK leg - purely ER inventory. |
par-ams.json |
Paris → Amsterdam (par-ams) |
ER-only long leg | Pricing smoke test for a non-UK ER route. |
par-col.json |
Paris → Cologne (par-col) |
ER + DB intra-EU | Paris-origin DB connection. |
Each route runs these 12 pax × class combos:
| # | Pax | Class |
|---|---|---|
| 1 | 1a |
STD |
| 2 | 1a |
PLUS |
| 3 | 1a |
PREMIER |
| 4 | 2a |
STD |
| 5 | 2a |
PLUS |
| 6 | 2a |
PREMIER |
| 7 | 1a,1c |
STD |
| 8 | 2a,2c |
STD |
| 9 | 1s |
STD |
| 10 | 1a,1y |
STD |
| 11 | 1a,1i |
STD |
| 12 | 1w,1comp |
STD |
bun book --batch docs/examples/batch/route/lon-par.json
Each file produces 12 bookings and writes to a sibling CSV (lon-par.csv, etc.) next to the JSON.
for f in docs/examples/batch/route/*.json; do
bun book --batch "$f"
done
→ 9 files × 12 combos = 108 bookings covering every carrier combo on every pax/class in the sweep.