lib/game/seed.ts: REWARD_PER_KG0.5 → 2.0. The weight term was small vs base+distance, so per-kg rate fell as jobs got heavier (€4.59/kg at 500 kg → €1.01/kg at 4,000 kg) and heavy jobs barely paid more — "no sense to get heavier jobs". With the retune the weight term dominates:
1000 km leg
before
after
500 kg
€3,250
€4,000
4,000 kg
€5,000
€11,000
Fuel burn (lib/sim/movement.ts) is weight-independent, so this only raises income — starter plane stays viable; heavier jobs are now clearly worth taking. Linear form kept (no tiers), one-constant diff.
Tests
seed.test.ts: stale "0.5 * weightKg" test name → generic; added literal pins rewardFor(1000, 4000) === 11_000 and rewardFor(1000, 500) === 4_000 so future retunes are deliberate. All other assertions recompute through the exported constants (pass unchanged).
Grep confirmed no usages of REWARD_PER_KG/rewardFor outside seed.ts/seed.test.ts; generic "per-kg payout" prose in state.ts/schema.ts/openapi.ts has no literal rates — untouched.
Verification
Local: tsc clean · vitest 373/373 · playwright --list 58 tests. Full e2e runs in CI per AGENTS.md.
Closes #90
## Change
`lib/game/seed.ts`: `REWARD_PER_KG` **0.5 → 2.0**. The weight term was small vs base+distance, so per-kg rate *fell* as jobs got heavier (€4.59/kg at 500 kg → €1.01/kg at 4,000 kg) and heavy jobs barely paid more — "no sense to get heavier jobs". With the retune the weight term dominates:
| 1000 km leg | before | after |
|---|---|---|
| 500 kg | €3,250 | **€4,000** |
| 4,000 kg | €5,000 | **€11,000** |
Fuel burn (lib/sim/movement.ts) is weight-independent, so this only raises income — starter plane stays viable; heavier jobs are now clearly worth taking. Linear form kept (no tiers), one-constant diff.
## Tests
- `seed.test.ts`: stale "0.5 * weightKg" test name → generic; added literal pins `rewardFor(1000, 4000) === 11_000` and `rewardFor(1000, 500) === 4_000` so future retunes are deliberate. All other assertions recompute through the exported constants (pass unchanged).
- Grep confirmed no usages of `REWARD_PER_KG`/`rewardFor` outside seed.ts/seed.test.ts; generic "per-kg payout" prose in state.ts/schema.ts/openapi.ts has no literal rates — untouched.
## Verification
Local: tsc clean · vitest 373/373 · playwright --list 58 tests. Full e2e runs in CI per AGENTS.md.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Closes #90
Change
lib/game/seed.ts:REWARD_PER_KG0.5 → 2.0. The weight term was small vs base+distance, so per-kg rate fell as jobs got heavier (€4.59/kg at 500 kg → €1.01/kg at 4,000 kg) and heavy jobs barely paid more — "no sense to get heavier jobs". With the retune the weight term dominates:Fuel burn (lib/sim/movement.ts) is weight-independent, so this only raises income — starter plane stays viable; heavier jobs are now clearly worth taking. Linear form kept (no tiers), one-constant diff.
Tests
seed.test.ts: stale "0.5 * weightKg" test name → generic; added literal pinsrewardFor(1000, 4000) === 11_000andrewardFor(1000, 500) === 4_000so future retunes are deliberate. All other assertions recompute through the exported constants (pass unchanged).REWARD_PER_KG/rewardForoutside seed.ts/seed.test.ts; generic "per-kg payout" prose in state.ts/schema.ts/openapi.ts has no literal rates — untouched.Verification
Local: tsc clean · vitest 373/373 · playwright --list 58 tests. Full e2e runs in CI per AGENTS.md.