2160 lines
166 KiB
JSON
2160 lines
166 KiB
JSON
{
|
||
"_comment": "SIDE QUESTS — the contracts posted on the JOB BOARD (the Explore drawer's Job Board slot — every SURFACE WORLD EXCEPT in the home system, data/actionbar.json → surface.explore.items). The board is a VIEW over js/quests/SideQuests.js: `sideQuestPostingsFor(seed, record, worldKey)` derives 1–3 deterministic postings from the galaxy seed + the system record + the WORLD (a planet's p<ordinal> / a station's s<n> — two worlds in one system stand two DIFFERENT boards; the same world posts the same contracts across visits, scene restarts, and saves), and the run's accepted/completed set rides the saves as the SideQuestState ledger (registry 'sidequests', record.sidequests). Note: the board went PER-WORLD (from per-system) — old per-system ids (sq-<sys>-<cat>-<slot>) no longer stand a board, and in-flight contracts in old saves drop on load (a documented Path A trade). CATEGORIES — the four job types (→ categories): patrol / delivery / bounty / escort. Every category is ACCOUNTED FOR (its slot machinery, its description pool below, its reward band, the window's row + contract readout, the ledger, the accept seam) behind its OWN `enabled` gate. PATROL is the first live type (enabled:true — its rules: → patrol below, js/quests/SideQuests.js → buildPatrolRoute + patrolTargetSystem, the scene's updatePatrol); the other three stay OFFLINE until their objective/completion rule sets land. The gate is the contract: a category's jobs appear on the board ONLY when its rules land and its flag flips (flip enabled:true in this file — the board's standby plate lifts and its postings stand). FLAVOR — the variant pools split by SYSTEM CONTEXT (→ descriptions): NEUTRAL systems post about keeping their system safe from PIRATES; a FACTION's systems post about pushing the OTHER factions out of their space (the pools carry {faction}/{issuer}/{enemies} placeholders — {enemies} resolves to the other two factions' labels; {issuer} to the faction's board name below; {system} to the system's name — resolved at generation, js/quests/SideQuests.js → resolveSideQuestText). Each pool holds 3+ variants so different boards read different contracts.",
|
||
"enabled": true,
|
||
"board": {
|
||
"_comment": "perWorld = the postings-per-surface-world roll [min,max] (seeded per world — Rng.derive(seed, seedLabel, <sysId>, <world>); the roll itself is stable for the run). seedLabel = the Rng fork label under the galaxy seed (the worldgen determinism contract: a labelled fork, independent of call order).",
|
||
"perWorld": [
|
||
1,
|
||
3
|
||
],
|
||
"seedLabel": "sidequests"
|
||
},
|
||
"categories": {
|
||
"_comment": "The four job types. ORDER = the canonical slot order (patrol, delivery, bounty, escort). `enabled` is the per-type availability gate — OFFLINE until that type's objective + completion logic is built (patrol and BOUNTY HUNT are live — their rules under → patrol / → bounty; delivery and escort are stubs); flip a category to true and its jobs stand on the board with their pool + reward band already wired. `accent` = the row's category chip + the contract title (data colors, js/quests/SideQuests.js reads them through). A category may carry TWO MORE GATES beyond `enabled`: `minLevel` (the combat level the board demands — under it the posting still stands, but as a greyed LOCKED row whose accept is refused) and `contexts` (the boards that post it at all — ['neutral'] keeps a pirate-voice contract off the faction boards entirely; an omitted list means every context posts it).",
|
||
"patrol": {
|
||
"enabled": true,
|
||
"label": "PATROL",
|
||
"accent": "#00e5ff"
|
||
},
|
||
"delivery": {
|
||
"enabled": false,
|
||
"label": "DELIVERY",
|
||
"accent": "#ffc94d"
|
||
},
|
||
"bounty": {
|
||
"enabled": true,
|
||
"label": "BOUNTY HUNT",
|
||
"accent": "#ff2d6f",
|
||
"minLevel": 2,
|
||
"contexts": [
|
||
"neutral",
|
||
"faction"
|
||
]
|
||
},
|
||
"escort": {
|
||
"enabled": true,
|
||
"label": "ESCORT",
|
||
"accent": "#7ce8a4",
|
||
"minLevel": 3,
|
||
"contexts": [
|
||
"neutral",
|
||
"faction"
|
||
]
|
||
}
|
||
},
|
||
"rewards": {
|
||
"_comment": "The per-category CREDITS band [min,max] at the home rim — the base payout; it scales OUT with the system's home→far diagonal d (record.d) as (1 + d * distanceScale) — the economy's 'a hop is a hop, and danger pays' rule (the far systems' boards pay more for the same risk). The band is rolled seeded per posting (round to 5 CR, floor 5 CR). The XP payout rides beside the credits: it is NOT a band — it is the contract's combat's WORTH, fixed on the route record at the accept (route.xp — js/quests/SideQuests.js → patrolEncounterXp: the patrol's defeated contacts × the wave's total × the band's roster xp, data/combat.json → enemy.xp / enemyTypes), and the claim (GameScene.claimSideQuest) grants it into the run's XP bank (js/combat/XpManager.js — the 'sidequest' source, beside the kills' 'kill' grants) in addition to paying the credits. A category without a route pays credits-only (its XP payout is 0 — the old saves' shape). Tune per category as the types' rules land; a category with no band here falls back to [40,80] in code.",
|
||
"distanceScale": 0.75,
|
||
"patrol": [
|
||
40,
|
||
70
|
||
],
|
||
"delivery": [
|
||
50,
|
||
90
|
||
],
|
||
"bounty": [
|
||
80,
|
||
140
|
||
],
|
||
"escort": [
|
||
120,
|
||
175
|
||
]
|
||
},
|
||
"factions": {
|
||
"_comment": "The faction boards' ISSUER names (the {issuer} placeholder in the faction pools — data/factions.json's faction ids: apex / mindweave / zenith).",
|
||
"apex": "Apex War Ministry",
|
||
"mindweave": "MindWeave Chorus",
|
||
"zenith": "Zenith Concord"
|
||
},
|
||
"patrol": {
|
||
"_comment": "The PATROL category's rules — js/quests/SideQuests.js → buildPatrolRoute + patrolTargetSystem; the scene's updatePatrol/check-ins read visitRadius. WAR MODEL: the patrol is ALWAYS the posting's OWN system (patrolTargetSystem stands home — the old neighbor rule is gone): the board's own space, cleaned of the sighted rival's fighters. The sighted enemy is ONE seeded opposing faction (the posting's enemyFaction — js/quests/SideQuests.js's seededOpposingFaction), and the encounter roster draws from THAT faction's combat.factions roster (patrolEnemyRoster's first rule; the bands below stand for neutral boards only). ACCEPT builds the route in the posting's system: waypoints [min,max] of plain coordinates inside the system's UNLOCKED tether regions (the live tether field's union, the player's range there). Placement keeps the points ISOLATED: anchorClearance px clear of every anchor (planet/station/gate center) and minSeparation px apart, retrying seeded, relaxing the clearance and separation (never the region) if the field is tight. visitRadius = the ship is this far from a waypoint when it counts as REACHED (checked off IN ORDER — the route is a PATH flown 1, 2, 3, …; only the first unvisited waypoint logs). compass + marker = the in-game face of the active patrol: the yellow next-waypoint arrow on the off-screen compass (js/ui/DiscoveryCompass's color override — the route gate's orange precedent) and the in-world waypoint beacons (unvisited = pulsing, visited = the dimmed done mark).",
|
||
"waypoints": [
|
||
3,
|
||
5
|
||
],
|
||
"visitRadius": 420,
|
||
"anchorClearance": 1100,
|
||
"minSeparation": 1500,
|
||
"regionInset": 96,
|
||
"encounters": {
|
||
"_comment": "The patrol's ENEMY ENCOUNTERS — the contract's hostile CONTACTS standing on route waypoints (the data contract: data/sidequests.json → patrol.encounters; the logic: js/quests/SideQuests.js → derivePatrolEncounters + patrolEncounterScript; the firing: the scene's updatePatrol → _firePatrolContact — the wave starts when the ship checks in at a CONTACT's waypoint, and the cleared mark lands on the wave run's COMPLETION — the witness is the completion, not the attempt: a mid-fight quit re-arms the contact on return, the combatDone precedent — and the route's completion, with the reward's door, waits for every contact). COUNTS — the odds of how many CONTACTS a patrol carries (1 contact on 20% of patrols, 2 on 20%, 3 on 60%): [count, odds] pairs, drawn SEED-STABLE at the accept from the labelled fork (seed, 'sidequests', <targetSystemId>, 'patrol', <jobId>, 'encounters') and fixed on the route record — a signed contract is a signed contract: a later re-tune of the odds can't re-roll a standing contract's combat. WAVE — each contact's fight: ONE rolling wave of the band's roster (equal weights — a single-type band is a pure type + total), the data's shape — six hostiles, three at a time, each kill replaced — the combat.waves rolling mechanic (js/combat/Waves.js); the script is built by patrolEncounterScript (no named entry in data/combat.json — the roster comes from the band below). BANDS — the difficulty's first axis (the player's COMBAT level × the target system's HOPS from home — the jump network's tree depth, galaxy.jumpNetwork.depth — the 'systems 1–2 hops out' rule): the FIRST band in list order whose levels AND hops windows both contain the player stands, and its enemyTypes are the hostiles its contacts fly (validated against combat.enemyTypes — js/combat/EnemyTypes.js — an unknown id never ships). No band stands, or a roster empties, → fallbackEnemyTypes. TODAY the low band — levels 1–5 at 1–2 hops from home — flies the ESTABLISHED type only (raider — the base craft's named id, the 'Pirate Problems' wave's own type); the farther/higher bands — with the enemy types they introduce — append to this list when those types land, and the other difficulty axes (the distance's own scaling, the level's bonus) wire onto this same seam. POSITIONING — the contacts stand on route waypoints SPREAD evenly across the route (patrolEncounterPositions): for ≥ 2 contacts, the most evenly spread subset of the route's waypoints (scored by its MINIMUM pairwise separation — maximin — then its total: on a near-linear route that's the ends and the middle; a 3–5-point route's contacts never cluster); a single contact stands on the waypoint nearest the route's centroid (the patrol's middle). Deterministic — a pure function of the seed, the contract, and the route's geometry. XP REWARD — beside the credits, the claim pays the XP these defeated contacts are WORTH (js/quests/SideQuests.js → patrolEncounterXp: the contacts × the wave's total × the roster's type xp, data/combat.json → enemy.xp / enemyTypes): fixed on the route record at the accept (route.xp, beside route.credits — a signed contract is a signed contract) and granted into the run's XP bank on the claim (XpManager's 'sidequest' source — the kills' 'kill' grants' sibling).",
|
||
"enabled": true,
|
||
"counts": [
|
||
[
|
||
1,
|
||
0.2
|
||
],
|
||
[
|
||
2,
|
||
0.2
|
||
],
|
||
[
|
||
3,
|
||
0.6
|
||
]
|
||
],
|
||
"wave": {
|
||
"kind": "rolling",
|
||
"total": 6,
|
||
"maxConcurrent": 3,
|
||
"replacePerKill": 1
|
||
},
|
||
"bands": [
|
||
{
|
||
"_comment": "TIER 1 (levels 1–5, 1–2 hops) — the established type only. The low patrols never change: raiders, one rolling six, three at a time.",
|
||
"levels": [
|
||
1,
|
||
5
|
||
],
|
||
"hops": [
|
||
1,
|
||
2
|
||
],
|
||
"enemyTypes": [
|
||
"raider"
|
||
]
|
||
},
|
||
{
|
||
"_comment": "TIER 2 — THE LEVEL-6 JUMP: the wave grows 6→10 with four at a time, and the pack turns into a mix — raiders stay the anchor, spitters (spray) and bombers (lances) land. hops 1–99: past level 5 the LEVEL is the axis (any system the board can post).",
|
||
"levels": [
|
||
6,
|
||
8
|
||
],
|
||
"hops": [
|
||
1,
|
||
99
|
||
],
|
||
"roster": {
|
||
"raider": 5,
|
||
"spitter": 3,
|
||
"bomber": 2
|
||
},
|
||
"wave": {
|
||
"kind": "rolling",
|
||
"total": 10,
|
||
"maxConcurrent": 4,
|
||
"replacePerKill": 1
|
||
},
|
||
"xpScale": 0.7
|
||
},
|
||
{
|
||
"_comment": "TIER 3 (9–12) — the wave grows to 14 at five; stingers (bursts) and gunners (rapid fire) join the mix.",
|
||
"levels": [
|
||
9,
|
||
12
|
||
],
|
||
"hops": [
|
||
1,
|
||
99
|
||
],
|
||
"roster": {
|
||
"raider": 4,
|
||
"spitter": 2,
|
||
"stinger": 2,
|
||
"gunner": 2,
|
||
"bomber": 1
|
||
},
|
||
"wave": {
|
||
"kind": "rolling",
|
||
"total": 14,
|
||
"maxConcurrent": 5,
|
||
"replacePerKill": 1
|
||
},
|
||
"xpScale": 0.55
|
||
},
|
||
{
|
||
"_comment": "TIER 4 (13–18) — 18 at six; hunters (missiles) join. The contact-count odds skew toward three (every waypoint carrying a contact).",
|
||
"levels": [
|
||
13,
|
||
18
|
||
],
|
||
"hops": [
|
||
1,
|
||
99
|
||
],
|
||
"roster": {
|
||
"raider": 3,
|
||
"spitter": 2,
|
||
"stinger": 2,
|
||
"gunner": 2,
|
||
"hunter": 2,
|
||
"bomber": 1
|
||
},
|
||
"wave": {
|
||
"kind": "rolling",
|
||
"total": 18,
|
||
"maxConcurrent": 6,
|
||
"replacePerKill": 1
|
||
},
|
||
"counts": [
|
||
[
|
||
1,
|
||
0.1
|
||
],
|
||
[
|
||
2,
|
||
0.3
|
||
],
|
||
[
|
||
3,
|
||
0.6
|
||
]
|
||
],
|
||
"xpScale": 0.5
|
||
},
|
||
{
|
||
"_comment": "TIER 5 (19+, the cap) — 20 at six, the seats' ceiling; barrages (ring bursts) round out the mix. Past here the count holds and the mix's weight is the pressure.",
|
||
"levels": [
|
||
19,
|
||
99
|
||
],
|
||
"hops": [
|
||
1,
|
||
99
|
||
],
|
||
"roster": {
|
||
"raider": 3,
|
||
"spitter": 2,
|
||
"stinger": 2,
|
||
"gunner": 2,
|
||
"hunter": 2,
|
||
"barrage": 2
|
||
},
|
||
"wave": {
|
||
"kind": "rolling",
|
||
"total": 20,
|
||
"maxConcurrent": 6,
|
||
"replacePerKill": 1
|
||
},
|
||
"counts": [
|
||
[
|
||
1,
|
||
0.1
|
||
],
|
||
[
|
||
2,
|
||
0.3
|
||
],
|
||
[
|
||
3,
|
||
0.6
|
||
]
|
||
],
|
||
"xpScale": 0.45
|
||
}
|
||
],
|
||
"fallbackEnemyTypes": [
|
||
"raider"
|
||
]
|
||
},
|
||
"compass": {
|
||
"color": "#ffd60a",
|
||
"typeLabel": "Patrol"
|
||
},
|
||
"marker": {
|
||
"color": "#ffd60a",
|
||
"doneColor": "#67e863",
|
||
"contactColor": "#ff5c77"
|
||
}
|
||
},
|
||
"bounty": {
|
||
"_comment": "The BOUNTY HUNT category's rules (the second live type — the model: js/quests/SideQuests.js → deriveBountyPlan / bountyEngagements / bountyHuntXp / bountyRouteComplete / nextBountyWaypoint; the scene: GameScene._establishBountyHunt + updateBountyHunt). A hunt is a PATROL WITH A NAME ON IT: three waypoints along one pirate leader's recent travel lanes, flown IN ORDER (a patrol's waypoints too — the shared sequential law — and the chain's odds read a first, second and third leg), with the ending hidden from the player: the mark stands on ONE of the legs and the fight around them IS the contract. minLevel = the combat level the board demands before the contract can be taken (js/combat/XpManager.js's level; under it the row is LOCKED and GameScene.acceptSideQuest refuses it). contexts = the boards that post it — ['neutral','faction']: the neutral boards post the 20 pirate dossiers below (unchanged), and the FACTION boards post the WAR MODEL hunt (→ descriptions.faction.bounty) — the mark is a member of the TARGET system's own faction (one of the board's two rivals), the target system is a NEIGHBOR that faction controls (a jump-gate link — js/quests/SideQuests.js's hostileNeighborSystem), and the posting is LOCKED until the player's jump-gate capability is unlocked INTO that system (gates.jump.factionLock.minLevel — the posting's gateLevel, beside minLevel). The mark's frame + its pickets draw from the mark's OWN faction roster (deriveBountyPlan's opts.faction rule — the neutral pirate frames stand for neutral boards). waypoints = the leg count [min,max]: the design is exactly three, and the chain's guarantee reads the LENGTH (the LAST leg always holds the mark), so raising the max lengthens the hunt without touching code. Route placement reuses patrol's anchorClearance / minSeparation / regionInset unless this block overrides them; visitRadius = how close the ship must come for a leg to LOG.",
|
||
"minLevel": 2,
|
||
"contexts": [
|
||
"neutral"
|
||
],
|
||
"waypoints": [
|
||
3,
|
||
3
|
||
],
|
||
"visitRadius": 420,
|
||
"encounters": {
|
||
"_comment": "The hunt's CHAIN — rolled ONCE at the accept on the labelled fork (seed,'sidequests',<targetSystemId>,'bounty',<jobId>,'chain') and FIXED on the route record: a signed contract is a signed contract, so re-tuning these odds never re-rolls a standing hunt (and the plan is invisible until it fires — no UI, marker, compass entry or toast names the leg that holds anything). LEGS — every leg but the last rolls bountyChance for the mark; the LAST leg stands it at 100%. With bountyChance 0.2 and three legs that reads 20% on leg 1, 20% of what missed on leg 2 (16% overall), everything left on leg 3 (64%). A leg that does NOT hold the mark rolls skirmishChance for a pirate wave of its own — the leader's pickets working their own lane; the bounty leg never rolls pickets (the mark IS the fight), and once the mark is down no later leg owes anything. SKIRMISH — one rolling wave of the frame-0 established type, three at a time, each kill replaced: the patrol contact's shape with no elite in it. BOUNTY — one rolling wave of `total` NINE, three at a time: `raiders` frame-0 fighters plus ONE elite, the mark itself, flying the craft its own dossier names (→ descriptions.neutral.bounty[].craft, an id from data/combat.json → enemyTypes), buffed by healthScale × hull+shields and damageScale × its weapon's damage, deployed WITH the opening group (never buried at the back of the queue) and tagged `elite` so a kill that MATTERED is recognizable. An elite id that isn't in combat.enemyTypes (a data typo) falls back to a seeded pick from eliteFrames. TERMINATION — killing the mark halts every further deployment and replacement of that fight (js/combat/CombatSystem.js → haltWaves: the survivors already on the field stay hostile and must be put down); when the last of them drops the hunt is COMPLETE, every leg checks off at once, no further wave fires, and the reward stands ready to claim.",
|
||
"enabled": true,
|
||
"bountyChance": 0.2,
|
||
"skirmishChance": 0.5,
|
||
"skirmishWave": {
|
||
"kind": "rolling",
|
||
"total": 6,
|
||
"maxConcurrent": 3,
|
||
"replacePerKill": 1,
|
||
"roster": [
|
||
"raider"
|
||
]
|
||
},
|
||
"bountyWave": {
|
||
"kind": "rolling",
|
||
"total": 9,
|
||
"raiders": 8,
|
||
"maxConcurrent": 3,
|
||
"replacePerKill": 1,
|
||
"raiderType": "raider",
|
||
"eliteFrames": [
|
||
"bomber",
|
||
"spitter",
|
||
"stinger",
|
||
"hunter",
|
||
"gunner",
|
||
"barrage",
|
||
"warden"
|
||
],
|
||
"elite": {
|
||
"healthScale": 2,
|
||
"damageScale": 2
|
||
}
|
||
},
|
||
"bands": [
|
||
{
|
||
"id": "hunter",
|
||
"levels": [
|
||
2,
|
||
5
|
||
],
|
||
"_comment": "THE LIVE BAND — the level 2–5 bounty hunt this pass tunes: three legs, the chain's odds above, frame-0 pickets and a dossier-named mark at double armor and double damage. No wave overrides here (the band inherits the encounter block above); a band MAY carry its own skirmishWave / bountyWave / bountyChance / skirmishChance to retune a level window without touching the others."
|
||
},
|
||
{
|
||
"id": "marksman",
|
||
"levels": [
|
||
6,
|
||
10
|
||
],
|
||
"_comment": "TIER 2 — THE LEVEL-6 JUMP (the stub's pass, landed): the pickets grow 6→10 with four at a time and turn into a mix (spitters + bombers beside the raiders); the hunt grows 9→13 — a twelve-strong escort in the same three-at-a-time pressure with one more seat, and the mark's armor/damage scale steps 2→3. escortRoster = the hunt's escort MIX (weighted — js/quests/SideQuests.js → bountyEngagementScript draws it; a band without one is the plain raiderType count). xpScale — the tier's subtle XP dial (the fatter wave's worth, trimmed so the payout's pace stays with the curve): the tier's payout ≈ 298 XP (vs the base 372).",
|
||
"skirmishWave": {
|
||
"kind": "rolling",
|
||
"total": 10,
|
||
"maxConcurrent": 4,
|
||
"replacePerKill": 1,
|
||
"roster": {
|
||
"raider": 5,
|
||
"spitter": 3,
|
||
"bomber": 2
|
||
}
|
||
},
|
||
"bountyWave": {
|
||
"kind": "rolling",
|
||
"total": 13,
|
||
"raiders": 12,
|
||
"maxConcurrent": 4,
|
||
"replacePerKill": 1,
|
||
"escortRoster": {
|
||
"raider": 5,
|
||
"spitter": 2,
|
||
"bomber": 2
|
||
},
|
||
"elite": {
|
||
"healthScale": 3,
|
||
"damageScale": 3
|
||
}
|
||
},
|
||
"xpScale": 0.8
|
||
},
|
||
{
|
||
"id": "deadeye",
|
||
"levels": [
|
||
11,
|
||
14
|
||
],
|
||
"_comment": "TIER 3 (11–14) — pickets 14 at five (stingers + gunners join the mix); the hunt 17 — a sixteen-strong escort, the mark at 3.5× armor and damage.",
|
||
"skirmishWave": {
|
||
"kind": "rolling",
|
||
"total": 14,
|
||
"maxConcurrent": 5,
|
||
"replacePerKill": 1,
|
||
"roster": {
|
||
"raider": 4,
|
||
"spitter": 2,
|
||
"stinger": 2,
|
||
"gunner": 2
|
||
}
|
||
},
|
||
"bountyWave": {
|
||
"kind": "rolling",
|
||
"total": 17,
|
||
"raiders": 16,
|
||
"maxConcurrent": 5,
|
||
"replacePerKill": 1,
|
||
"escortRoster": {
|
||
"raider": 4,
|
||
"spitter": 2,
|
||
"stinger": 2,
|
||
"gunner": 2
|
||
},
|
||
"elite": {
|
||
"healthScale": 3.5,
|
||
"damageScale": 3.5
|
||
}
|
||
},
|
||
"xpScale": 0.7
|
||
},
|
||
{
|
||
"id": "apex",
|
||
"levels": [
|
||
15,
|
||
99
|
||
],
|
||
"_comment": "TIER 4 (15+, the cap) — pickets 18 at six (hunters join); the hunt 21 — a twenty-strong escort with barrages in the mix, the mark at 4× armor and damage. Past here the seats hold and the mix's weight + the mark's scales are the pressure.",
|
||
"skirmishWave": {
|
||
"kind": "rolling",
|
||
"total": 18,
|
||
"maxConcurrent": 6,
|
||
"replacePerKill": 1,
|
||
"roster": {
|
||
"raider": 3,
|
||
"spitter": 2,
|
||
"stinger": 2,
|
||
"gunner": 2,
|
||
"hunter": 2
|
||
}
|
||
},
|
||
"bountyWave": {
|
||
"kind": "rolling",
|
||
"total": 21,
|
||
"raiders": 20,
|
||
"maxConcurrent": 6,
|
||
"replacePerKill": 1,
|
||
"escortRoster": {
|
||
"raider": 3,
|
||
"spitter": 2,
|
||
"stinger": 2,
|
||
"gunner": 2,
|
||
"hunter": 2,
|
||
"barrage": 2
|
||
},
|
||
"elite": {
|
||
"healthScale": 4,
|
||
"damageScale": 4
|
||
}
|
||
},
|
||
"xpScale": 0.65
|
||
}
|
||
],
|
||
"fallbackBand": "hunter"
|
||
},
|
||
"compass": {
|
||
"color": "#ff2d6f",
|
||
"typeLabel": "Hunt"
|
||
},
|
||
"marker": {
|
||
"color": "#ff2d6f",
|
||
"doneColor": "#67e863",
|
||
"_comment": "NO contact color, deliberately: a patrol paints its contact waypoints red (→ patrol.marker.contactColor) because those contacts are the job; a hunt's legs must look IDENTICAL until something shoots at you, so only the NEXT leg in sequence lights and nothing marks where the mark is."
|
||
}
|
||
},
|
||
"escort": {
|
||
"_comment": "The ESCORT category's rules (the third live type — the model: js/quests/SideQuests.js → escortDestinationFor / deriveEscortPlan; the ship: js/combat/TransportShip.js + data/combat.json → transport; the scene: GameScene._establishEscort + updateEscort). An escort is a CONVOY JOB: a neutral TRANSPORT (its own ship class — ~2.5x the fighter's size, far heavier armor, a heavy lance) plus 1–2 escort fighters stands at a single RENDEZVOUS waypoint in the posting's own system (waypoints [1,1] — the route builder's shared placement law, the 'escort' fork). The player flies to the waypoint within visitRadius and the convoy LINKS (phase 'rendezvous' → 'transit') — from then on the transport + fighters hold their escort ring around the player through EVERY remaining leg, re-forming across jumps (the route record carries the transport's armor — a signed contract is a signed contract: a jump or a save never re-rolls a standing convoy). The DESTINATION is a planet or a free-space station 1–2 gate hops away (destinationHops [min,max], a seeded walk of the jump network — js/galaxy/JumpTravel.js's gate graph, the same links the player can actually fly), fixed at the accept and never re-rolled; the player flies the legs (1–2 jumps) and arrives at the destination object with the convoy intact. ENCOUNTERS — the lane is HOT: while the convoy is linked, the escort director (its own EncounterDirector instance — a short roll interval every 20–30 s at a middling chance, a long quiet) fires WAVES of mixed fighter types (bands, by the player's combat level — a weighted roster of enemyTypes ids, validated like the patrol's) with LARGER concurrent counts than a normal encounter (wave.total / maxConcurrent) — one at a time, the wave run's completion the quiet's gate, exactly the patrol contact's law. The TRANSPORT is the job: it fights alongside (its own lance, js/combat/TransportShip.js), it is a legal enemy target (the allies roster — pickEnemyTarget's escort aggro), and if it is DESTROYED the contract fails (phase 'failed', the convoy breaks off) — the player must LAND ON A PLANET to reset it (GameScene.startLanding's escort reset — a fresh rendezvous, a fresh transport, the same destination: retry the run). COMPLETION — the destination world (planet/free-space station) is VISIBLE ON SCREEN (circleInView against the camera's world rect — the player has flown it into view, not merely near it) with NO enemy fighter up (the craftVisible roster rule — the bounty field-clear's law): the contract enters its DELIVERY (phase 'delivering') — the convoy BREAKS OFF the wing, flies in beside the world, and FADES OUT (the touchdown: the transport + its fighters land, they are through, not destroyed; a fixed time-driven fly-in then fade, GameScene._runEscortDelivery), and on the fade's close the contract completes, the reward stands ready to claim. compass + marker = the escort's in-game face: the magenta next-stop arrow (the RENDEZVOUS waypoint pre-link, then the DESTINATION gate, then the destination object itself) and the in-world beacons (rendezvous = pulsing until linked, then the destination object's mark).",
|
||
"enabled": true,
|
||
"minLevel": 3,
|
||
"contexts": [
|
||
"neutral"
|
||
],
|
||
"waypoints": [
|
||
1,
|
||
1
|
||
],
|
||
"visitRadius": 460,
|
||
"destinationHops": [
|
||
1,
|
||
2
|
||
],
|
||
"escortCount": [
|
||
1,
|
||
2
|
||
],
|
||
"transportFrame": [
|
||
0,
|
||
3
|
||
],
|
||
"encounters": {
|
||
"_comment": "The escort's LANE COMBAT (the director's numbers + the wave's shape + the roster's bands): rollIntervalMin/Max + chanceMin/Max + cooldownMin/Max are the EscortDirector's own EncounterDirector config (data/combat.json → encounters' shape — seconds), tuned to a HOT lane: a short 20–30 s roll interval × a middling chance, a 15–30 s quiet after each fight — frequent engagements while the convoy is linked (roughly 2–8 per run, scaling with how long the legs take); wave = one rolling wave of `total` mixed fighters, `maxConcurrent` on screen at a time, each kill replaced (replacePerKill) — the patrol contact's rolling shape, bigger; bands = the roster by the player's COMBAT level (levels [lo,hi], roster = a weighted { type: weight } table over combat.enemyTypes ids — the unknown-id rule is the patrol's: a type that isn't in combat.enemyTypes never ships, a roster that empties takes the established type); no band standing → the fallback band's roster.",
|
||
"enabled": true,
|
||
"rollIntervalMin": 20,
|
||
"rollIntervalMax": 30,
|
||
"chanceMin": 0.4,
|
||
"chanceMax": 0.6,
|
||
"cooldownMin": 15,
|
||
"cooldownMax": 30,
|
||
"wave": {
|
||
"kind": "rolling",
|
||
"total": 8,
|
||
"maxConcurrent": 4,
|
||
"replacePerKill": 1
|
||
},
|
||
"bands": [
|
||
{
|
||
"levels": [
|
||
0,
|
||
4
|
||
],
|
||
"roster": {
|
||
"raider": 3,
|
||
"bomber": 1,
|
||
"spitter": 1
|
||
}
|
||
},
|
||
{
|
||
"levels": [
|
||
5,
|
||
99
|
||
],
|
||
"roster": {
|
||
"raider": 2,
|
||
"bomber": 1,
|
||
"spitter": 1,
|
||
"stinger": 1,
|
||
"hunter": 1
|
||
}
|
||
}
|
||
],
|
||
"fallbackRoster": {
|
||
"raider": 3,
|
||
"bomber": 1,
|
||
"spitter": 1
|
||
}
|
||
},
|
||
"compass": {
|
||
"color": "#e87cf5",
|
||
"typeLabel": "Escort"
|
||
},
|
||
"marker": {
|
||
"color": "#7ce8a4",
|
||
"doneColor": "#67e863"
|
||
}
|
||
},
|
||
"descriptions": {
|
||
"_comment": "The variant pools: context (neutral | faction) × category. The generator picks ONE variant per posting, seeded on (galaxy seed, system id, world key, category, slot) — a world's contract is STABLE (the board doesn't reshuffle between visits or saves), and different worlds draw different ones (3+ variants per pool keeps the galaxy's boards from reading as one repeated ad). Placeholders (resolved at generation, never stored): {system} = the system's name; in the faction pools {faction} = the system's faction label (data/factions.json), {issuer} = that faction's board name (→ factions above), {enemies} = the OTHER two factions ('MindWeave and Zenith'), and {enemy} = the ONE rival this posting is actually about — the sighted patrol faction, the mark's own faction, or the transport's captors (the posting's enemyFaction; empty on a neutral board). THE NEUTRAL POOLS are the pirate-safety voice; the FACTION pools are the push-the-other-factions-out voice. THE WAR MODEL — every faction pool exists THREE DEEP: descriptions.faction.<factionId>.<category> is the faction's OWN voice (apex / mindweave / zenith, 20 variants each of patrol + bounty + escort — 180 listings in all), and js/quests/SideQuests.js → descriptionPool() draws that pool first, then the shared descriptions.faction.<category> war-voice pool below (the documented fallback for a faction with no voice of its own — it stays live so an unknown or hand-added power still posts in words), then the neutral pool as the last resort. A faction's dossier pool never declares `craft`: a declared craft id OVERRIDES the engine's frame pick, so a hard-coded rival airframe would fly against a differently-seeded opponent — leaving it unset lets deriveBountyPlan draw the mark's frame from ITS OWN faction's roster (data/combat.json → factions), which is why a {enemy}-written hunt always fights the faction its copy names. THE BOUNTY POOLS ARE DIFFERENT — descriptions.neutral.bounty is the BOUNTY HUNT's WANTED LIST: 20 dossiers, each a named pirate leader with an epithet, a crime, and the craft it flies (`craft` = a data/combat.json → enemyTypes id, spread across all seven frames, so the copy and the fight agree; `craftLabel` is the readout's plain words for it). WRITTEN TO THE PANEL'S REAL ESTATE (dev/jobboard-voice-shot.mjs proves it): js/ui/JobBoardWindow.js fits the body through fitText() at ~147 characters a line and gives a patrol/escort contract up to five lines (~735 chars), but a HUNT's dossier block (WANTED / epithet / CHARGES / CRAFT + DESTINATION) leaves the body only TWO lines (~294 chars) — so faction hunt copy runs short and lets the dossier carry the names; longer copy ships with an ellipsis eating the sentence. NO ARTICLE MAY STAND IN FRONT OF A PLACEHOLDER: `an {enemy} hull` resolves to “an Apex hull”, and `{enemy} {enemy}` resolves to a doubled name — both ship looking like a generator fault. dev/lib/faction-voice-lint.mjs owns that rule (article agreement, doubled words, unresolved braces) and runs on EVERY resolution a line can take: the hunt's craft label is therefore written article-free (“{enemy} hull, rigged for the long intercept”), which reads correctly against all three rivals.",
|
||
"neutral": {
|
||
"patrol": [
|
||
{
|
||
"title": "Lane Watch",
|
||
"issuer": "The Harbormaster",
|
||
"body": "Three raiders keep running the outer gate at night, and the toll keepers are done pretending they aren't there. Work the lane, keep your lights up, and make the run a bad idea. We don't want their bodies, we want them gone — the board pays for the silence, and the board pays on time."
|
||
},
|
||
{
|
||
"title": "Quiet the Field",
|
||
"issuer": "The Warden Guild",
|
||
"body": "The {system} belt is a graveyard with a population. Something in the debris has been firing at passing hulls, and the Guild is paying for a field where the wrecks are the only thing that shoots. Work the rocks until they're quiet — and mind your hull out here, the field is as honest as the rest of this system."
|
||
},
|
||
{
|
||
"title": "The Lighthouse Run",
|
||
"issuer": "The Station Keeper",
|
||
"body": "The buoy out past the ice line keeps going dark, and it isn't breaking — someone is cutting its fuel line. Find out who and convince them to stop, in whatever order you like. That light runs every safe lane in the system, and the pirates out here only like it for one reason: it's on. Keep it on."
|
||
}
|
||
],
|
||
"delivery": [
|
||
{
|
||
"title": "Dead Freight",
|
||
"issuer": "The Tally",
|
||
"body": "A sealed crate for the keeper at the edge of the system. It isn't marked, and that isn't an accident. The raiders who want it are already circling the lane, and they're better funded than they look. Get it there before they get to you — or get it there through them. The Tally pays either way the crate arrives."
|
||
},
|
||
{
|
||
"title": "The Long Way Home",
|
||
"issuer": "The Harbormaster",
|
||
"body": "Supply drops for the outer watch posts. The direct lane has been a pirate kill-box for a week, so you take the long way, fly slow, and keep your engines quiet. Nobody asks what's in the crates, and nobody asks what the watch posts are for either. That's the whole job — the cargo moves, the posts stay lit."
|
||
},
|
||
{
|
||
"title": "Fuel for the Wards",
|
||
"issuer": "The Warden Guild",
|
||
"body": "Two drums of fuel for the sentinel posts, and the posts need them before the moon turns. A raider skiff was seen nosing around the fuel depot an hour ago — assume it was a scout and move the fuel like it was. The Guild's accounts are open and the Guild's patience isn't. Get the drums there and the wardens keep the lanes honest."
|
||
}
|
||
],
|
||
"bounty": [
|
||
{
|
||
"title": "The Ninth Bell",
|
||
"issuer": "The Fuel Wardens",
|
||
"name": "Ilse Vanturi",
|
||
"epithet": "Ninth Bell",
|
||
"crime": "Taxing the halcyon run at cannon point",
|
||
"craft": "bomber",
|
||
"craftLabel": "salvade heavy bomber, one long lance",
|
||
"body": "Ilse Vanturi rang the chapel bell nine times for every ship she let through, and when the chapel burned she kept the bell. Now the fuel tanker crews count nine chimes on the emergency band before a single heavy bolt walks the length of their hull — that lance reaches further than our wardens' radios, and she knows it. Six tankers have paid her toll and two of them are still burning. The Wardens pay for the pirate who invented the bell to stop ringing. Bring her down and we'll ring it once more for you."
|
||
},
|
||
{
|
||
"title": "Nine Winters",
|
||
"issuer": "The Salvage Court",
|
||
"name": "Ostvik Halvardson",
|
||
"epithet": "Nine Winters",
|
||
"crime": "Shelling the Kite Line harvest",
|
||
"craft": "bomber",
|
||
"craftLabel": "icebreak-turned gun platform, slow and patient",
|
||
"body": "Nine winters Ostvik Halvardson has sat his patched icebreaker off the Kite Line, patient as weather, dropping one enormous bolt into whatever the haulers thought was cover. The Court has written off nine salvage claims and eleven bodies. He is not a pirate with a conscience — he is an icebreaker with a grudge. He will not maneuver with you. He will not outrun you. He will sit exactly where he is and make you come into a lance that has been aiming at the same spot since the last moon. End the count at nine."
|
||
},
|
||
{
|
||
"title": "Protection Money",
|
||
"issuer": "The Pilots' Guild",
|
||
"name": "Berta Ondaine",
|
||
"epithet": "The Slow Smile",
|
||
"crime": "Selling insurance nobody agreed to buy",
|
||
"craft": "bomber",
|
||
"craftLabel": "bulk-bodied bomber with a fuse like a eulogy",
|
||
"body": "Berta Ondaine delivers her quotes in person: a fat hull on your wing, a smile on the open channel, and a bolt already cook-off on the long lance if you decline. Three Guild pilots took the quote anyway and are now part of the belt. The Guild has paid off raiders before; it refuses to start with her. We want the collection stopped, and we want it stopped in the order she prefers — nobody quoting our members ever again."
|
||
},
|
||
{
|
||
"title": "Two Of A Kind",
|
||
"issuer": "The Ledger House",
|
||
"name": "Sable & Rue Spidleau",
|
||
"epithet": "the sisters who finish each other's sentences",
|
||
"crime": "Strafing the passenger ferry lane for sport",
|
||
"craft": "spitter",
|
||
"craftLabel": "twin-seat skiff, a fan of bolts per sentence",
|
||
"body": "One steers, one shoots, and neither stops talking. The Spidleau sisters cross the ferry lane screaming and open up with a fan of cheap bolts wide enough that dodging is a rumour — they've never hit anything worth hitting, which the Ledger House considers a moral emergency rather than luck. Two ferry hulls are patched so full of bolt-holes they fly in daylight. Take the pirate sisters off the lane before arithmetic does it for us."
|
||
},
|
||
{
|
||
"title": "The Firefight",
|
||
"issuer": "The Station Keeper",
|
||
"name": "Cassia Drumm",
|
||
"epithet": "Firehose",
|
||
"crime": "Putting out a depot fire by spraying the depot",
|
||
"craft": "spitter",
|
||
"craftLabel": "pump-rigged skiff throwing a wide cone",
|
||
"body": "Cassia Drumm was the best fire response on this station until she answered her own alarm with her ship's pump and a bad idea. Now she works the lane for the same instinct: get close, open a cone across everything you see, call it done. The keeper who let her keep the rig is the keeper who owes us a barge, and every hauler on the lane now pays a raider's rate in delay. Put the fire out for good."
|
||
},
|
||
{
|
||
"title": "Fan Favourite",
|
||
"issuer": "The Tally",
|
||
"name": "Havelock Vane",
|
||
"epithet": "Nine-Finger",
|
||
"crime": "Point-blank shakedown at the ore moorings",
|
||
"craft": "spitter",
|
||
"craftLabel": "ore-hauler refit, spray bars welded on",
|
||
"body": "Havelock Vane lost four fingers to his own spray rig and wears the rest as a threat — he'll show you the hand on the channel while the fan warms up. He shakes the ore moorings for whatever the crews have on them and paints the bulkheads when they don't. The Tally counts his takings in scraped hull plate and has decided that the count of this pirate is finished."
|
||
},
|
||
{
|
||
"title": "Three For The Road",
|
||
"issuer": "The Relay Masters",
|
||
"name": "Aruna Sekh",
|
||
"epithet": "Needle",
|
||
"crime": "Sprint-killing light freight above the relay field",
|
||
"craft": "stinger",
|
||
"craftLabel": "courier-racer hull, a tight three-shot burst",
|
||
"body": "Aruna Sekh used to fly mail for us and knew every relay gate in this system by sound. Now she comes off the relay field at racing speed, puts three bolts into your engine block in about a heartbeat, and is gone before your gunner has picked a side of the ship. The Masters pay for the pilot who taught them this lane to stop teaching it."
|
||
},
|
||
{
|
||
"title": "The Dark Side Visit",
|
||
"issuer": "The Warden Guild",
|
||
"name": "Ketch Marlowe",
|
||
"epithet": "Get-Dark",
|
||
"crime": "Ambush from moon-shadow with no running lights",
|
||
"craft": "stinger",
|
||
"craftLabel": "stripped scout, burst cannon and no transponder",
|
||
"body": "Ketch Marlowe flies dark on the shadow side of this system's moons and reads your approach like a menu — the burst lands while you're still calling out on an honest channel. Two wardens have gone chasing the dark and come back with fewer hulls than they left with. The Guild wants the dark side of these moons to be empty again, and it wants Marlowe to be the reason."
|
||
},
|
||
{
|
||
"title": "The Long Sting",
|
||
"issuer": "The Harbormaster",
|
||
"name": "Vessa Nkemdi",
|
||
"epithet": "Stingtail",
|
||
"crime": "Running the toll on the ice road",
|
||
"craft": "stinger",
|
||
"craftLabel": "fast picket with a burst tail-gun",
|
||
"body": "Vessa Nkemdi works the ice road alone and calls it a toll booth; harbor law says pirate, she says independent traffic warden. She hangs off your stern where your cameras are worst, stings three bolts into your drive every time you slow for the ice, and invoices the wrecks she makes. The harbor has paid her invoice twice. It would prefer to pay you instead."
|
||
},
|
||
{
|
||
"title": "He Never Loses A Scent",
|
||
"issuer": "The Remand Office",
|
||
"name": "Aurelian Costa",
|
||
"epithet": "The Bloodhound",
|
||
"crime": "Killing bond-jumpers who owed him nothing",
|
||
"craft": "hunter",
|
||
"craftLabel": "hunting craft with a heat-seeker on a long leash",
|
||
"body": "Aurelian Costa was a bounty hunter before he was a pirate and never saw the difference. His missile finds whatever is running, and it does not get bored — out-turn it if you can, but he has watched a lot of people try. He has been collecting people the Remand Office owed nobody. Bring him in and the Office stops apologising for what its own paperwork caused."
|
||
},
|
||
{
|
||
"title": "Last Confession",
|
||
"issuer": "The Longshore Chapel",
|
||
"name": "Marilou Dax",
|
||
"epithet": "The Confessor",
|
||
"crime": "Absolving nine crews from the inside of their own ships",
|
||
"craft": "hunter",
|
||
"craftLabel": "chapel-hulled hunter, one missile per blessing",
|
||
"body": "Sister Marilou opens a channel, asks for the truth of your voyage, hears it all the way down, and then launches a seeker she calls absolution. Nine crews have been absolved. The Chapel that unfrocked her is paying from its own box, which tells you how seriously it takes the habit. Make her finish her own penance."
|
||
},
|
||
{
|
||
"title": "Toll Hound",
|
||
"issuer": "The Tally",
|
||
"name": "Baz Ferreira",
|
||
"epithet": "Foxhound",
|
||
"crime": "Hunting smugglers who skipped his toll",
|
||
"craft": "hunter",
|
||
"craftLabel": "tracker with a missile and infinite patience",
|
||
"body": "Baz Ferreira charges smugglers for the privilege of being robbed by him, and his seeker is how he audits. The trouble is he has begun auditing honest traffic too, on the theory that anyone flying this lane owes somebody. The Tally finds the reasoning unsound and pays for a correction."
|
||
},
|
||
{
|
||
"title": "Collect In Full",
|
||
"issuer": "The Ledger House",
|
||
"name": "Sefane Adu",
|
||
"epithet": "Two Ledgers",
|
||
"crime": "Debt collection with a machine gun",
|
||
"craft": "gunner",
|
||
"craftLabel": "fast interceptor, rapid cannon, no patience for instalments",
|
||
"body": "Sefane Adu keeps two ledgers: one for what you owe, one for what the interest costs. When the second one opens she walks a stream of bolts down your spine until something gives, and she has never once lost a balance. The Ledger House disowned her paperwork and would like the collection agency retired."
|
||
},
|
||
{
|
||
"title": "Dead Air",
|
||
"issuer": "The Relay Masters",
|
||
"name": "Moira Bellamy",
|
||
"epithet": "Static",
|
||
"crime": "Jamming distress, then finishing the job",
|
||
"craft": "gunner",
|
||
"craftLabel": "jam-topped interceptor, rapid bolts on a short cooldown",
|
||
"body": "Moira Bellamy kills your radio before she kills anything else — static first, then a machine gun while you're still trying to raise somebody. Two wrecks in this system died calling into dead air. The Masters built the relay network and are paying for the one voice on it that ought to be silenced forever."
|
||
},
|
||
{
|
||
"title": "The Mill",
|
||
"issuer": "The Warden Guild",
|
||
"name": "Isaac Vowell",
|
||
"epithet": "The Miller",
|
||
"crime": "Grinding convoys down until something breaks",
|
||
"craft": "gunner",
|
||
"craftLabel": "long-burn interceptor that never lifts off the trigger",
|
||
"body": "Isaac Vowell does not ambush, taunt, or bargain. He gets on your wing and pours bolts at you for as long as either ship lasts, which he has calculated will always be him. Three convoy escorts have run out of shields before he ran out of ammunition. The Guild would like his arithmetic tested by somebody with better armor."
|
||
},
|
||
{
|
||
"title": "Do Not Approach",
|
||
"issuer": "The Salvage Court",
|
||
"name": "Gwendolane Fisk",
|
||
"epithet": "Hedge",
|
||
"crime": "Ring-fire at a salvage crew that came alongside",
|
||
"craft": "barrage",
|
||
"craftLabel": "armored barge that answers boarding with a full ring",
|
||
"body": "Gwendolane Fisk welded armor to an already slow hull and solved the problem of close-quarters combat by firing outward in every direction at once. A salvage crew went alongside to cut her loose and did not come back. The Court would like a ruling that nothing may be approached at point-blank, and this is the only way it gets one."
|
||
},
|
||
{
|
||
"title": "The Halo",
|
||
"issuer": "The Longshore Chapel",
|
||
"name": "Kaleo Tui",
|
||
"epithet": "Sunburst",
|
||
"crime": "Claiming a pilgrimage lane and everything on it",
|
||
"craft": "barrage",
|
||
"craftLabel": "armored pilgrim craft that blooms into a ring of bolts",
|
||
"body": "Brother Kaleo declared the pilgrimage lane his own diocese, and every ship that uses it pays tithe or eats a halo of bolts fired in every direction at once. He broadcasts hymns while he does it, which the Chapel says is not what hymns are for. Take his little kingdom apart and take the sound off the air."
|
||
},
|
||
{
|
||
"title": "The Widow's Claim",
|
||
"issuer": "The Pilots' Guild",
|
||
"name": "Dorra Vance",
|
||
"epithet": "Anvil",
|
||
"crime": "Claiming the belt on behalf of a dead husband",
|
||
"craft": "barrage",
|
||
"craftLabel": "heavy barge, ring gun, unbothered by return fire",
|
||
"body": "Dorra Vance says the belt belonged to her husband and that his death transferred the deed to anyone stubborn enough to collect it. She collects in bolts — a full ring each time, since she stopped bothering to aim at anything so small as a ship. The Guild has never once seen a title this thick, and would like it voided with extreme prejudice."
|
||
},
|
||
{
|
||
"title": "The Meridian Line",
|
||
"issuer": "The Warden Guild",
|
||
"name": "Kazimir Vohl",
|
||
"epithet": "Black Meridian",
|
||
"crime": "The Sable Convoy massacre",
|
||
"craft": "warden",
|
||
"craftLabel": "warden-class heavy — a lance and a seeker on every volley",
|
||
"body": "Admiral Vohl, self-appointed, commanded the escort that let the Sable Convoy burn and then wrote the report blaming the convoy. He flies like a man with a warship's patience: a heavy lance to hold you in place and a seeker to follow wherever you dodge. The Guild has buried four of its own who went after him. This contract is written by people who are done burying anybody else."
|
||
},
|
||
{
|
||
"title": "Grey Judgement",
|
||
"issuer": "The Harbormaster",
|
||
"name": "Sera Alkantari",
|
||
"epithet": "Grey Judgement",
|
||
"crime": "Executing three launch marshals on the pad",
|
||
"craft": "warden",
|
||
"craftLabel": "judicial warden, lance and missile fired like a sentence",
|
||
"body": "Sera Alkantari holds court in open space: she reads the charge, gives you one channel to answer, and then fires a heavy lance and a seeker whether your defence was good or not. Three launch marshals were executed for calling her hull unsafe. The harbor she served is paying for the last word on this one to be somebody else's."
|
||
}
|
||
],
|
||
"escort": [
|
||
{
|
||
"title": "See Her Home",
|
||
"issuer": "The Station Keeper",
|
||
"body": "A refugger out of the outer belt is asking for a pilot who can outrun pirates, and the lane is theirs right now. She's carrying people, not cargo, and the keeper is paying in gratitude first and credits after. Fly her through to the gate, keep her hull in one piece, and stay on her wing long enough that she forgets to be afraid. That's the job."
|
||
},
|
||
{
|
||
"title": "Convoy Night",
|
||
"issuer": "The Tally",
|
||
"body": "A freighter and her screen stand ready at the buoy, and every pirate in the system knows the lane is theirs tonight. The Tally pays for hulls that arrive, and the Tally counts them at the gate — not for the story of the ones that didn't. Keep the big one in one piece, and count them yourself too."
|
||
},
|
||
{
|
||
"title": "The Long Dark",
|
||
"issuer": "The Warden Guild",
|
||
"body": "A courier ship has a sealed manifest and a hard deadline, and the lane she has to cross is pirate country. Escort her across and stay on her wing until the gate swallows her. Whatever she's carrying, it's worth more than your ship — that's probably why the Guild wants you, not their own pilots."
|
||
},
|
||
{
|
||
"title": "Patient Hull",
|
||
"issuer": "The Salvage Court",
|
||
"body": "The Court's arbitration barge is the slowest ship in three systems, and the pirates know exactly what that means. She carries a verdict, not a cargo — a ruling that three of their toll posts are forfeit, sealed and witnessed. The barge has armor and she has guns, and she will get there eventually, one slow mile at a time. Your job is to make sure the eventually is short, and the miles stay quiet."
|
||
},
|
||
{
|
||
"title": "The Choir Ship",
|
||
"issuer": "The Longshore Chapel",
|
||
"body": "A pilgrim ship out of the chapel is carrying the season's choir — twelve voices and a pipe organ, all of it — to the far station for the solstice service. The lane is a kill-box and the organ does not fit in a fighter. Keep the ship honest, keep the choir alive, and the service happens. The chapel doesn't pay in credits first; it pays in the fact that you were the reason the music made it."
|
||
},
|
||
{
|
||
"title": "Bones in the Hold",
|
||
"issuer": "The Remand Office",
|
||
"body": "The Office is moving twelve condemned pirates off the local block to a proper holding station, sealed in the hold under a full guard. The transport is armed to the bulkheads and it does not ask forgiveness. Pirates are circling the lane because a kill like that is worth the fuel. Fly the point, keep the hold sealed, and deliver the whole lot — alive, guilty, and in one piece. The Office pays for the count, and the count has to match."
|
||
},
|
||
{
|
||
"title": "The Fuel King's Daughter",
|
||
"issuer": "The Harbormaster",
|
||
"body": "A refueling tender is running a full load of refined fuel to the outer post, and the tender is carrying the fuel king's daughter home with it. She's in the cabin, she's reading, and she doesn't know that the lane is a kill-box. The harbor master is paying for the fact that the king's daughter arrives reading, not on fire. Keep the tender in one piece, keep the fuel lit, and keep your wing where the pirates can see it."
|
||
},
|
||
{
|
||
"title": "The Ledger's Own",
|
||
"issuer": "The Ledger House",
|
||
"body": "The House is moving its own books — the physical ledgers, three seasons of every transaction in the system — to the archive station. The books are the House's memory, and the pirates know that a ledger in the wrong hands is a weapon. The transport is slow, it is armored, and it is carrying something that cannot be reprinted. Escort it across and the House will remember your name in the only book that matters — the one that lists who it trusts."
|
||
},
|
||
{
|
||
"title": "The Wrecker's Debt",
|
||
"issuer": "The Tally",
|
||
"body": "A wrecker's ship is carrying a full hold of salvaged hull plate to the smelting station, and the pirates who put it in that shape want it back. The Tally has already paid for the salvage, and the wreckers have already signed the deed. The ship is fast enough, the cargo is heavy, and the lane is the problem. Put the plate through and the Tally's books stay honest — that's the whole job, and the whole reward."
|
||
},
|
||
{
|
||
"title": "The Quiet Passenger",
|
||
"issuer": "The Pilots' Guild",
|
||
"body": "A courier is carrying a single sealed crate across the lane, and the crate has a passenger inside it who is not supposed to exist. The Guild won't say what's in the crate, and it won't say who's paying for the silence. What it will say is this: the lane is hot, the crate is heavy, and the pilot who puts it through gets paid in credits and in the fact that the Guild will never forget who kept the secret. Fly the wing, keep the crate sealed, and don't ask."
|
||
},
|
||
{
|
||
"title": "The Harvest Run",
|
||
"issuer": "The Warden Guild",
|
||
"body": "A harvest barge out of the outer field is carrying three seasons of grain to the depot, and the field is done producing — this is the last run of the season. The barge is slow, the grain is heavy, and the pirates know that a starving system is a system that pays. The Guild is paying for the fact that the grain arrives and the season doesn't end in a fire. Keep the barge moving, keep the hold dry, and put it through before the ice closes the lane."
|
||
},
|
||
{
|
||
"title": "The Marshal's Charge",
|
||
"issuer": "The Remand Office",
|
||
"body": "A marshal's transport is moving a full warrant of evidence — the physical records of a piracy case, sealed and witnessed — to the trial station. The pirates in the case know what's on that ship, and they know that the evidence is the only thing standing between them and the block. The transport is armed, the marshal is not asking forgiveness, and the lane is the problem. Escort the charge through and the Office will file your name in the record — as the reason the case held."
|
||
},
|
||
{
|
||
"title": "The Slow Smile's Freight",
|
||
"issuer": "The Tally",
|
||
"body": "A freighter is running a full load of ore to the smelting station, and the freighter has a pilot who used to fly for the pirates. The Tally doesn't care about the pilot's past, but the pirates care about the pilot's present — they want their old crew back, and they're willing to burn the freighter to get them. Keep the freighter in one piece, keep the ore moving, and the Tally will pay for the fact that the lane stayed open."
|
||
},
|
||
{
|
||
"title": "The Chapel Bell",
|
||
"issuer": "The Longshore Chapel",
|
||
"body": "A repair ship is carrying a new bell — the replacement for the one the pirates rang nine times for every ship they let through — to the chapel station. The bell is cast, it's blessed, and it's going to be rung for the first time at the solstice service. The lane is the problem and the bell is the weight. Put the bell through and the chapel will ring it once for you, in the only way it knows how — on the air, in every system, on the solstice."
|
||
},
|
||
{
|
||
"title": "The Toll Keepers' Pay",
|
||
"issuer": "The Harbormaster",
|
||
"body": "A pay transport is moving the season's toll payments to the outer posts, and the posts are three months behind on wages. The transport is carrying credits — not ore, not grain, credits — and the pirates know that a post with unpaid wardens is a post that can be bought. The harbor master is paying for the fact that the wardens get paid and the posts stay honest. Keep the transport moving, keep the credits sealed, and put it through before the wardens start to wonder."
|
||
},
|
||
{
|
||
"title": "The Courier's Last Run",
|
||
"issuer": "The Pilots' Guild",
|
||
"body": "A courier is making their last run before they retire, and the cargo is the Guild's own seal — the physical stamp, the one that makes a manifest real. The courier has flown this lane for twenty years and they know every gate, every shadow, every blind spot. The Guild is paying for the fact that the seal arrives and the courier retires with their name clean. Fly the wing, keep the seal sealed, and give the old pilot the send-off they earned."
|
||
},
|
||
{
|
||
"title": "The Ice Road Tender",
|
||
"issuer": "The Warden Guild",
|
||
"body": "A fuel tender is running a full load to the ice road post, and the post is the last honest fuel stop before the deep lane. The tender is slow, the fuel is volatile, and the ice road is a toll lane with a reputation. The Guild is paying for the fact that the post stays lit and the lane stays open. Keep the tender moving, keep the fuel safe, and put it through before the ice closes."
|
||
},
|
||
{
|
||
"title": "The Court's Witness",
|
||
"issuer": "The Salvage Court",
|
||
"body": "A witness transport is carrying a single witness — the only one who saw the Sable Convoy burn — to the trial station. The witness is alive, they are sealed in the cabin, and they are worth more than the ship that's carrying them. The pirates who burned the convoy know that a witness at the trial is a verdict, and they're willing to burn the transport to keep it. Escort the witness through and the Court will file your name in the record as the reason the truth held."
|
||
},
|
||
{
|
||
"title": "The Harbormaster's Tender",
|
||
"issuer": "The Harbormaster",
|
||
"body": "A harbor tender is carrying the season's repair parts to the outer dock, and the dock is the only honest repair yard in the system. The tender is slow, the parts are heavy, and the dock is three months behind on its parts order. The harbor master is paying for the fact that the dock gets its parts and the yard stays open. Keep the tender moving, keep the parts dry, and put it through before the dock starts to rust."
|
||
},
|
||
{
|
||
"title": "The Guild's Own Pilot",
|
||
"issuer": "The Warden Guild",
|
||
"body": "A Guild pilot is flying their own ship — the one they've flown for fifteen years — to the far station for the solstice service, and the lane is the problem. The ship is fast, the pilot is good, and the Guild is paying for the fact that the pilot arrives and the ship stays in one piece. The Guild doesn't pay for the story of the pilot who didn't make it. Fly the wing, keep the pilot alive, and put them through. That's the job, and the Guild will remember."
|
||
}
|
||
]
|
||
},
|
||
"faction": {
|
||
"patrol": [
|
||
{
|
||
"title": "Sighting Report",
|
||
"body": "Recon puts a {enemy} flight moving through {system} — fighters on a working pattern, not a transit. Sweep the grid and put them down. The {issuer} is paying for clean lanes and it doesn't care who asks twice."
|
||
},
|
||
{
|
||
"title": "Foreign Fighters",
|
||
"body": "Three of our outposts logged {enemy} transponders inside {system} this week. That's not a patrol line — it's a claim. Burn the claim out before it becomes a border. The {issuer} will credit the scrap to whoever files the wrecks."
|
||
},
|
||
{
|
||
"title": "Lane Watch",
|
||
"body": "The approach lanes run hot: {enemy} fighters have been working them at long range, taking nothing, watching everything. Show them which side of the lane pays. The {issuer} has a standing order that the lanes stay under our flag — this is the order, not a discussion."
|
||
}
|
||
],
|
||
"delivery": [
|
||
{
|
||
"title": "Flagged Cargo",
|
||
"body": "Parts for the gate works, under full {faction} flag. {enemies} runners will smell it and come for it, because that's what they do. Fly the direct lane, keep the flag on the hull, and don't let it off your wing. The works don't wait for delays, the {issuer} doesn't wait for excuses, and neither does the flag."
|
||
},
|
||
{
|
||
"title": "The Wrong Kind of Freight",
|
||
"body": "The crate is sealed and the manifest is sealed, and that's the whole job. {enemies} have two scouts in the system and they're bad at this — that's the good news. Deliver the crate to the depot before the scouts find out what it is. After that the crate belongs to them, and the job belongs to you. The {issuer} is paying for the order of operations."
|
||
},
|
||
{
|
||
"title": "Supply Run, War Terms",
|
||
"body": "The outer posts run on our rations and your nerve. {enemies} want the lane to starve them out, and they've said so in the intercepts. Run the lane anyway. Put the posts in the dark they wanted or in the light we pay for — the {issuer} is paying for the light, and only the light."
|
||
}
|
||
],
|
||
"bounty": [
|
||
{
|
||
"title": "WANTED — {enemy} Officer",
|
||
"issuer": "{issuer}",
|
||
"name": "The Reckoner",
|
||
"epithet": "First Officer of a {enemy} strike group",
|
||
"crime": "Raiding friendly lanes and holding their crews for ransom",
|
||
"craftLabel": "a {enemy} fighter — frame unknown, expect the works",
|
||
"body": "The {issuer} has a name for the officer who has been taking our lanes, and the name is a habit: same runs, same timing, same signature on the wrecks. Their base sits in a {enemy}-held system off our gates — the {issuer} will not send its own pilots there, so it is hiring yours. Find them, put them down, and file the hull. The {issuer} pays for the habit ending."
|
||
},
|
||
{
|
||
"title": "WANTED — {enemy} Officer",
|
||
"issuer": "{issuer}",
|
||
"name": "The Bellwether",
|
||
"epithet": "A {enemy} scout who leads other people's raids",
|
||
"crime": "Scouting the approach lanes and selling the timing",
|
||
"craftLabel": "a {enemy} fighter — fast, and it flies alone",
|
||
"body": "Every {enemy} raid we have lost this season started with a single long-dwell scout pass: one scout, long dwell, no weapons. The {issuer} wants the scout, not the wreckage of it. The scout lives in {enemy}-held space a gate-hop out — the {issuer} pays to have the question asked over their hull."
|
||
},
|
||
{
|
||
"title": "WANTED — {enemy} Officer",
|
||
"issuer": "{issuer}",
|
||
"name": "The Tollkeeper",
|
||
"epithet": "A {enemy} gunner taxing the outer lanes",
|
||
"crime": "Holding a friendly run at cannon point",
|
||
"craftLabel": "a {enemy} fighter — heavy on the guns, light on manners",
|
||
"body": "Something in a {enemy} hull has been standing on the outer lane and billing every ship that passes. Our manifest says the lane is ours, and the {issuer} says the bill is final — in their favor, against the tollkeeper. The tollkeeper's ground is a {enemy} system off our gates. Bring the ledger back. The {issuer} will settle the rest."
|
||
}
|
||
],
|
||
"escort": [
|
||
{
|
||
"title": "Stranded Freight",
|
||
"body": "A {faction} transport is sitting in {enemy}-held space, engines cold and its crew waiting it out. It flew in working, not hiding. Get to it, link the convoy, and fly it back through the gate into {system}. The {issuer} does not lose its freight to bad luck, and it will not let this one be the exception."
|
||
},
|
||
{
|
||
"title": "The Convoy That Stopped",
|
||
"body": "Our own freight ran a {enemy} patrol wrong and lost its escort wing; the ship is standing alone in {enemy}-held space with a full hold and a thin margin. Bring it home: link at its position, hold the lane, and put it down at {system} with its cargo intact. The {issuer} is paying for the run and for the lesson — in that order."
|
||
},
|
||
{
|
||
"title": "Freight Under Watch",
|
||
"body": "A {faction} freighter is trapped in {enemy} territory — the {enemy} have it under watch, not in tow, which means they are waiting for it to move. Make it move: link the convoy, and fly the whole run home through our gate to {system}. Keep the flag on the hull and the lane clear of {enemy} lights. The {issuer} considers the freight its own until it is back in its own system."
|
||
}
|
||
],
|
||
"apex": {
|
||
"_comment": "The apex board's OWN copy pools — 20 variants per live category, drawn by js/quests/SideQuests.js → descriptionPool() (this faction's pool → the shared faction pool → the neutral pool). Written in the {issuer}'s own voice; the RULES of that voice are fixed by doctrine, never by the rival: every body names the seeded opponent through {enemy} (the posting's enemyFaction, resolved like every other placeholder), and nothing a body says ABOUT the rival may assume a technology only one faction has — {enemy} is any of the other two powers, so the copy speaks of what they DO (watch, trespass, tax, rehearse, salvage) and keeps the tech talk on our own side of the sentence. {system} = the board's system; patrol copy stands in it, bounty + escort copy stands in {enemy}-held ground.",
|
||
"patrol": [
|
||
{
|
||
"title": "{enemy} Signature On The Grid",
|
||
"body": "Our lattice holds one {enemy} contact working inside {system} — not transiting, working. Slow burns, long dwells, every approach lane sampled and filed for someone else's war table. The Ministry calls it a survey and pays for surveys to end. Our cloaked pickets will hand you the intercept vectors; you bring the firepower we cannot spare from the line. Wrecks tagged inside our borders pay in full."
|
||
},
|
||
{
|
||
"title": "{enemy} Array In The Debris",
|
||
"body": "Something in the debris belt has been drinking our emissions for six days and giving nothing back. That is not salvage; that is an ear. Our models say {enemy}, and they want the ear cut out of {system} before the next convoy crosses it. Sweep the field, run your sensors cold, and do not stop shooting at the first rock that moves. The Ministry verifies the wreck, then pays."
|
||
},
|
||
{
|
||
"title": "Testing Our Blind Arcs For {enemy}",
|
||
"body": "Three picket shadows have gone silent along the outer ring in a week — nothing destroyed, nothing reported, just gaps where our watch should be. Somebody is learning the shape of our blindness. The Ministry's read is {enemy}. Fly the blind arcs in the open and make the lesson expensive. Augment your own scope from the depot; the {issuer} covers the cost against the contract."
|
||
},
|
||
{
|
||
"title": "{enemy} Claim Markers On Eight",
|
||
"body": "A survey boat put claim markers on belt eight — {enemy} issue, laid in a working pattern, with an escort that has been polite about it so far. Borders are not argued here. They are maintained by whoever is still flying at the end of the week. Burn the markers and the hulls that laid them. {issuer} records every serial you bring back and pays for each one separately."
|
||
},
|
||
{
|
||
"title": "{enemy} Overflight",
|
||
"body": "Two {enemy} fighters have taken to crossing our habitat rings at stand-off range, slow, in formation, lights up. No shots. They do not need shots — they are showing the dome crews that we cannot reach them. The Ministry finds that line of reasoning inefficient and intends to correct it. Meet them at altitude over {system} and finish the demonstration with a body count."
|
||
},
|
||
{
|
||
"title": "Strip The {enemy} Salvagers",
|
||
"body": "The Longshore wreck is ours, and something has been cutting plates out of it for eleven days. Our models match the cut pattern to {enemy} salvage doctrine: fast, quiet, and gone before a patrol cycles back. Whatever they pull out of that hull goes straight into a threat file. Take the salvage crew off our dead and finish dismantling anything that runs."
|
||
},
|
||
{
|
||
"title": "Hunt The Quiet One",
|
||
"body": "Every contact in this system reports on an honest channel except one. It has been riding our patrol codes for two weeks, close enough to count engines, quiet enough to be deliberate — {enemy} doctrine according to every model we run. Our models cannot build a picture of a hull that will not radiate, so the {issuer} is buying the kind of data only a kill provides. Find the silence in {system} and put it on the grid in pieces."
|
||
},
|
||
{
|
||
"title": "{enemy} Ran The Convoy Dark",
|
||
"body": "A fuel convoy logged for four hulls came back with three and no distress. Their last telemetry shows {enemy} intercept profiles: quick, coordinated, professional. That is not banditry; that is doctrine being rehearsed on our freight. Find the flight that did it inside our own space and break the rehearsal. The {issuer} pays double where a wrecksite matches the missing hull."
|
||
},
|
||
{
|
||
"title": "Buoy Nine Is Drinking",
|
||
"body": "The deep listening buoy at Nine stopped transmitting mid-sentence, and nothing on our side has touched it. Buoy traffic is passive; somebody wants what it hears, or wants us to stop hearing it. The Ministry's model puts {enemy} in the vicinity for the whole window. Sweep outward from Nine in both directions, log everything that runs, and treat anything that runs as a confession."
|
||
},
|
||
{
|
||
"title": "{enemy} Live-Fire On Our Border",
|
||
"body": "{enemy} flights have been running gun-drills along our own claim line at ranges that make accident impossible. Every pass is a capability test with our habitat ring for a backstop and our patience for a target. The Ministry sees no reason to let their season of practice continue undisturbed. Cross the line yourself, once, and take the whole flight off the roster."
|
||
},
|
||
{
|
||
"title": "{enemy} Are Counting The Picket Line",
|
||
"body": "We are holding two rings with three ships' worth of crews and half a ship's worth of hulls, and the {enemy} know it because they keep counting. Patrol the gaps in force until our build slots fill. What you fly is your business; what you leave dead in {system} is ours to bank. Contract credits clear on the salvage tag, not at the end of the week."
|
||
},
|
||
{
|
||
"title": "{enemy} Eyes On The Yard",
|
||
"body": "Something has been parking off our construction orbit at the exact dwell that harvests a new hull's launch signature. They are building a library of our frames, one keel at a time. Our models say {enemy}, and they want it stopped before the fourth launch. Run escort on every departure until the last reading we hand them is your guns."
|
||
},
|
||
{
|
||
"title": "{enemy} Warning On The Water Run",
|
||
"body": "A water hauler out of the ice line came in with a targeting laser stitched across her bow and no shot fired — a message with a delivery address. The signature matches {enemy} pickets that have been working {system} for a month. The Ministry does not negotiate with things that leave messages. Find the messenger, take off the safety, and file what happens."
|
||
},
|
||
{
|
||
"title": "Nine {enemy} Plots, One Pattern",
|
||
"body": "Nine anonymous contacts across nine days. Nine different vectors, one shared habit: they all cross our patrol handoff windows to the second. That is not luck; somebody has our schedule and is spending it, and our threat models land on {enemy} every time we ask. The Ministry wants the pattern read out of a flight recorder. Sweep its centre and put every contact down before the tenth window opens."
|
||
},
|
||
{
|
||
"title": "{enemy} Picket On Our Gate",
|
||
"body": "They have parked a picket just inside our own gate mouth, close enough to board traffic and far enough to claim it was an accident. Every merchant that clears reports them; every report makes us look patient. Patience is an option we are closing out. Fly the gate, hold nothing back, and let {enemy} explain to their own pilots why the border moved."
|
||
},
|
||
{
|
||
"title": "{enemy} Cache In The Ice",
|
||
"body": "Thermal says a cache has been dug into the ice shelf — fuel cells, spare armor plate, and enough stores to keep a fighter flight on station in {system} for months. A supply chain that far forward belongs to one power and our models name it: {enemy}. Locate the cache, then burn it with whatever comes back to defend it, and log what the wreckage says about who they support."
|
||
},
|
||
{
|
||
"title": "{enemy} Are Learning Our Voices",
|
||
"body": "A hauler answered a challenge from a station that had been dead for two days and did not notice the difference. Somebody is recording our handshakes and wearing them, and {enemy} has both the motive and the doctrine. Until we know how deep that runs, the Ministry holds {system} on voiceless protocol — you shoot first and file the discrepancy after. Keep your transponder off and trust nothing that hails you."
|
||
},
|
||
{
|
||
"title": "{enemy} Are Counting Our Dead",
|
||
"body": "After every wreck in this system a small craft shows up to log the wreckage, always at a respectful distance, never touching. They are building casualty tables — what it costs {enemy} to push here and what it costs us to hold. The Ministry would like those numbers to start lying. Take the counters out of {system} and replace their data with your guns."
|
||
},
|
||
{
|
||
"title": "Three Contacts, All Mine",
|
||
"body": "A confirmed {enemy} flight of three is inside our border on a working pattern, and the Ministry wants all three accounted for before diplomatic season opens. Nothing in the records can show a first shot. What happened will read as an encounter gone wrong on their side, which is exactly how we wrote it. Fly the intercept, hold your fire until they do, and finish it anyway."
|
||
},
|
||
{
|
||
"title": "Hold Meridian Against {enemy}",
|
||
"body": "Meridian station is the last honest fuel stop on the far arc and {enemy} pickets have taken to orbiting it at a range that starves the tanks below. No shots, no seals broken — just arithmetic with our people as the remainder. Break the arithmetic. The {issuer} will credit every hour you spend holding Meridian's traffic moving, plus a bounty per hull you leave outside it."
|
||
}
|
||
],
|
||
"bounty": [
|
||
{
|
||
"title": "WANTED — {enemy} Interdiction Officer",
|
||
"issuer": "{issuer}",
|
||
"name": "Captain Voss Rilkane",
|
||
"epithet": "the Ministry's first unfilled target of the season",
|
||
"crime": "Pulling our couriers out of transit and filing what she learns",
|
||
"craftLabel": "{enemy} hull, rigged for the long intercept",
|
||
"body": "Three couriers pulled from transit this quarter; all three filed reports before they went dark. Captain Voss Rilkane stops our traffic, reads it, and releases nothing she has learned. Find her ship inside {enemy} ground and end the collection."
|
||
},
|
||
{
|
||
"title": "WANTED — {enemy} Sensor Chief",
|
||
"issuer": "{issuer}",
|
||
"name": "Devi Maroqq",
|
||
"epithet": "the woman who learned our blind arcs",
|
||
"crime": "Cataloguing our patrol gaps and selling the map by the hour",
|
||
"craftLabel": "{enemy} scout, long-dwell fit, weapons added late",
|
||
"body": "Devi Maroqq has mapped our blind arcs by flying them repeatedly, which is a crime only because we keep letting her. Her buyers pay per gap and the map is current. She works out of {enemy} territory with full clearance. Correct her survey."
|
||
},
|
||
{
|
||
"title": "{enemy} Pack Leader",
|
||
"issuer": "{issuer}",
|
||
"name": "Sable Krent",
|
||
"epithet": "Six Wrecks And A Filing Fee",
|
||
"crime": "Running our freight lanes as a live-fire exercise",
|
||
"craftLabel": "{enemy} fighter, hardpoints forward and no escort patience",
|
||
"body": "Sable Krent runs our freight lanes as a live-fire exercise for his pack and files the wrecks as fees. Six hulls, one pattern: he hits where our response is slowest. Take the fight to {enemy} airspace before he grades a seventh."
|
||
},
|
||
{
|
||
"title": "WANTED IN {faction} SPACE",
|
||
"issuer": "{issuer}",
|
||
"name": "Ilu Festaine",
|
||
"epithet": "the courier that never arrived",
|
||
"crime": "Walking away with a sealed Ministry targeting core",
|
||
"craftLabel": "{enemy} courier fit — fast, quiet, and carrying our work",
|
||
"body": "Ilu Festaine walked out of a relay with a sealed Ministry targeting core and a Ministry transponder still warm. Sealed means it can be opened, and hers is heading toward {enemy} analysts. Recover the core; the courier is secondary."
|
||
},
|
||
{
|
||
"title": "{enemy} Wrecker",
|
||
"issuer": "{issuer}",
|
||
"name": "Onrik Vassel",
|
||
"epithet": "the plate collector",
|
||
"crime": "Stripping our dead for frames and testing what he finds",
|
||
"craftLabel": "{enemy} heavy, welded over with other people's armor",
|
||
"body": "Onrik Vassel strips our dead for armor plates and tests each one on the next wreck he makes. He keeps a collector's log of which shots worked. Take him inside {enemy} ground and let his own record close the loop."
|
||
},
|
||
{
|
||
"title": "WANTED — {enemy} Border Agitator",
|
||
"issuer": "{issuer}",
|
||
"name": "Tamio Ashgrave",
|
||
"epithet": "the message sender",
|
||
"crime": "Targeting-laser threats against our habitat traffic",
|
||
"craftLabel": "{enemy} picket ship, painted for intimidation",
|
||
"body": "Tamio Ashgrave paints habitat traffic with targeting lasers and calls it messaging. Our crews file it; he posts the footage. No one has been killed yet, which is precisely how he keeps the profit. Stop {enemy}'s sender before the next clip ships."
|
||
},
|
||
{
|
||
"title": "{enemy} Handler",
|
||
"issuer": "{issuer}",
|
||
"name": "Sorrel Vancek",
|
||
"epithet": "the voice on our own handshake",
|
||
"crime": "Running false station traffic to lure our pilots",
|
||
"craftLabel": "{enemy} interceptor with a broadcast rig where the cargo should be",
|
||
"body": "Sorrel Vancek writes station clearances in our own cadence from inside {enemy} ground. Two of our models flagged her traffic as friendly. Handlers like that do not retire, they reschedule. Close her frequency for good."
|
||
},
|
||
{
|
||
"title": "WANTED — {enemy} Logistics Raider",
|
||
"issuer": "{issuer}",
|
||
"name": "Brene Holtzard",
|
||
"epithet": "the fuel tax",
|
||
"crime": "Emptying our forward depots one manifest at a time",
|
||
"craftLabel": "{enemy} raider, long tanks and short manners",
|
||
"body": "Brene Holtzard empties forward depots one manifest line at a time, never enough to trip an alarm until the fuel is gone. The Ministry prices that slower than a raid and deadlier. Find her ledger in {enemy} territory."
|
||
},
|
||
{
|
||
"title": "{enemy} Assassin, Unlisted",
|
||
"issuer": "{issuer}",
|
||
"name": "Corvain Ashe",
|
||
"epithet": "no record until there was a wreck",
|
||
"crime": "Boarding our shuttles and leaving one witness, always the junior",
|
||
"craftLabel": "{enemy} hull with no unit markings at all",
|
||
"body": "Corvain Ashe boards our shuttles and always leaves the junior witness alive, because juniors are believed. There is no record of him until there was a wreck. {enemy} list him nowhere. Make that a mistake. Make that a mistake."
|
||
},
|
||
{
|
||
"title": "WANTED — {enemy} Gunnery Instructor",
|
||
"issuer": "{issuer}",
|
||
"name": "Halvard Renn",
|
||
"epithet": "the schoolmaster",
|
||
"crime": "Firing on our training arcs to grade his own students",
|
||
"craftLabel": "{enemy} trainer frame, guns retained, patience not",
|
||
"body": "Halvard Renn fires on our training arcs to grade his own students, and grades them well. Our pilots are learning to fear a range they were cleared to fly. End the schoolmaster inside {enemy} ground."
|
||
},
|
||
{
|
||
"title": "{enemy} Salvage Corsair",
|
||
"issuer": "{issuer}",
|
||
"name": "Petra Lundqvane",
|
||
"epithet": "she takes the record, not the cargo",
|
||
"crime": "Removing flight recorders from Ministry wrecks before recovery",
|
||
"craftLabel": "{enemy} salvage fighter, cutter arms and a long leash",
|
||
"body": "Petra Lundqvane lifts flight recorders from Ministry wrecks before recovery crews arrive, then sells the silence. Cargo she leaves. The record is the cargo now, and it is going to {enemy} handlers. Intercept her."
|
||
},
|
||
{
|
||
"title": "WANTED — {enemy} Provocation Flight Lead",
|
||
"issuer": "{issuer}",
|
||
"name": "Dax Orelien",
|
||
"epithet": "the one who never backs down first",
|
||
"crime": "Crossing our border on purpose and betting we blink",
|
||
"craftLabel": "{enemy} fighter, forward guns zeroed for a first salvo",
|
||
"body": "Dax Orelien crosses our border on purpose and bets the Ministry blinks first. He has won that bet eleven times. His wing follows his example rather th{enemy}'s own signature. Refuse the wager in the only currency he reads."
|
||
},
|
||
{
|
||
"title": "{enemy} Mass Table Officer",
|
||
"issuer": "{issuer}",
|
||
"name": "Ambrose Kel",
|
||
"epithet": "the accountant of our dead",
|
||
"crime": "Logging our casualty rates to set their next push",
|
||
"craftLabel": "{enemy} light escort, sensor-forward and gun-light",
|
||
"body": "Ambrose Kel logs our casualty rates to set the timing of the next push, which makes him a combatant with a desk. He works inside {enemy} lines and files daily. Close his table before the arithmetic turns."
|
||
},
|
||
{
|
||
"title": "WANTED — {enemy} Gate Runner",
|
||
"issuer": "{issuer}",
|
||
"name": "Nissa Havric",
|
||
"epithet": "the ghost of hop nine",
|
||
"crime": "Running our blockade logs in both directions",
|
||
"craftLabel": "{enemy} fast runner, armor traded for a hot drive",
|
||
"body": "Nissa Havric runs our blockade logs in both directions and charges for the difference. Nine hops, one ghost, no two identical transponders. She keeps moving through {enemy} space, but not through this contract."
|
||
},
|
||
{
|
||
"title": "{enemy} Habitat Intimidator",
|
||
"issuer": "{issuer}",
|
||
"name": "Rike Solmar",
|
||
"epithet": "the flypast",
|
||
"crime": "Crossing habitat rings at range and calling it navigation",
|
||
"craftLabel": "{enemy} picket, transponders scrubbed, mission log very full",
|
||
"body": "Rike Solmar crosses habitat rings at closing range and calls it navigation. The rings have started filing for evacuation. That is the weapon; a shot would only be an admission. Ground him in {enemy} air before a ring evacuates on its own."
|
||
},
|
||
{
|
||
"title": "WANTED — {enemy} Electronic Warfare Officer",
|
||
"issuer": "{issuer}",
|
||
"name": "Ysolde Karrer",
|
||
"epithet": "static with a rank",
|
||
"crime": "Blinding our picket line to teach it to blink",
|
||
"craftLabel": "{enemy} jam-topped hull, own sensors barely working",
|
||
"body": "Ysolde Karrer blinds our picket line to teach it to blink, then grades the recovery time. Static with a rank and a syllabus. She runs from inside {enemy} coverage, where we are politely not seen. Be impolite."
|
||
},
|
||
{
|
||
"title": "{enemy} Prize Captain",
|
||
"issuer": "{issuer}",
|
||
"name": "Marek Duvane",
|
||
"epithet": "he leaves them a ticket",
|
||
"crime": "Seizing our haulers, holding crews, and invoicing the release",
|
||
"craftLabel": "{enemy} heavy fighter with grapple gear bolted on",
|
||
"body": "Marek Duvane seizes our haulers, holds the crews, and invoices the release like a dockside crane. He files paperwork, which means he expects to keep winning. Take him off {enemy}'s lanes and close the account."
|
||
},
|
||
{
|
||
"title": "WANTED — {enemy} Recon Pilot",
|
||
"issuer": "{issuer}",
|
||
"name": "Ivo Strandqvane",
|
||
"epithet": "the fourteen-hour dwell",
|
||
"crime": "Holding a survey pattern on our construction orbit",
|
||
"craftLabel": "{enemy} long-endurance scout, weapons minimal, tanks enormous",
|
||
"body": "Ivo Strandqvane has held one survey pattern on our construction orbit for fourteen hours at a stretch. Nothing fired; everything measured. Long dwells mean somebody is building from his file. Finish the dwell inside {enemy} ground, early."
|
||
},
|
||
{
|
||
"title": "{enemy} Hunter of Hunters",
|
||
"issuer": "{issuer}",
|
||
"name": "Selka Roon",
|
||
"epithet": "she shoots at the shadow, not the ship",
|
||
"crime": "Killing our forward scouts by their sensor returns",
|
||
"craftLabel": "{enemy} ambush fit, built around one very long gun",
|
||
"body": "Selka Roon kills forward scouts by their sensor returns — she shoots the shadow, not the ship. Two of ours never knew they were spotted. She works {enemy} ground and reports to nobody. Trade her the same surprise."
|
||
},
|
||
{
|
||
"title": "WANTED — {enemy} Cadre Commander",
|
||
"issuer": "{issuer}",
|
||
"name": "Adrial Venn",
|
||
"epithet": "the season's whole problem",
|
||
"crime": "Coordinating every provocation we have absorbed this quarter",
|
||
"craftLabel": "{enemy} command fit — expect company and a plan",
|
||
"body": "Adrial Venn has coordinated every provocation we have absorbed this quarter: the lasers, the false clearances, the salvage raids. The Ministry does not negotiate with {enemy} staff. Remove the source of the season's orders."
|
||
}
|
||
],
|
||
"escort": [
|
||
{
|
||
"title": "Cold Start In {enemy} Air",
|
||
"body": "One {faction} tanker is sitting dark in {enemy}-held space, drive cold because a warm one is an invitation. Her crew has forty hours of air and the {issuer} has an opinion about whose sky she dies in. Link at her coordinates, hold her on your wing, and bring her through the gate into {system}. Every mile between there and here is theirs to defend. We pay for the miles."
|
||
},
|
||
{
|
||
"title": "{enemy} Are Waiting For Her To Move",
|
||
"body": "Our freighter Balmoraine has been under {enemy} watch for six days without being boarded, which tells you everything: they want to know who comes for her. Answer the question badly enough that they stop asking. Take the link and run her home to {system}. The Ministry does not abandon assets and does not forget contractors who keep its ledger clean."
|
||
},
|
||
{
|
||
"title": "The Convoy That Lost Its Screen",
|
||
"body": "One {faction} convoy crossed into {enemy} territory on a bad forecast and lost its escort wing over the last rock before the gate. Two hulls remain, one of them ours, both of them waiting. Rebuild the screen around what is left and get it back inside our own border at {system}. The Ministry will credit every hull you carry home and remember the ones you could not."
|
||
},
|
||
{
|
||
"title": "{enemy} Hold Our Salvage Claim",
|
||
"body": "The Ministry has already paid for that ship — insurance on a hauler trapped in {enemy} ground, settled and filed under our flag. Which makes it ours to collect. Her captain is refusing to run until somebody with teeth agrees to the route, and the {issuer} is offering yours. Bring her back to {system}; the salvage office handles the paperwork and you handle the sky."
|
||
},
|
||
{
|
||
"title": "{enemy} Want Our Flight Cores",
|
||
"body": "A courier hold full of recovered flight cores from this season's losses is standing in {enemy} space with a dead navigator and a working drive. Every core holds footage of how we lose fights, and {enemy} engineers would like nothing more than to review it. Fly out, link the convoy, and bring her home to {system} before anyone screens their own lessons back."
|
||
},
|
||
{
|
||
"title": "Repossession From {enemy} Ground",
|
||
"body": "The hull is ours, the flag is ours, and the fact that she is currently parked in {enemy} territory is a clerical error we intend to correct with thrust. No negotiation, no towing etiquette, and no waiting for a quiet window — there are none. The Ministry pays on delivery at {system}, plus whatever the {issuer} owes you for the hulls between here and there."
|
||
},
|
||
{
|
||
"title": "The Fuel King, Held By {enemy}",
|
||
"body": "A tender out of Nine stopped mid-run inside {enemy} ground with an engine fault and a full cargo — which is the worst possible combination in the worst possible sky. Her people are fine for now and dangerous to themselves later. The Ministry wants the fuel and the crew, in that order, delivered to {system}. Whatever is orbiting her will object on the way out."
|
||
},
|
||
{
|
||
"title": "{enemy} Have Our Test Frame In View",
|
||
"body": "A Ministry trials hull carrying a prototype drive went quiet on a demonstration run and reappeared inside {enemy} held space, intact and unboarded. If they learn what she does before we get her back, every tactic in our books gets an answer this season. Link her, screen her, and get her home to {system}. The {issuer} will pay in the currency of people who intend to do this again."
|
||
},
|
||
{
|
||
"title": "{enemy} Watching A Ship That Will Not Quit",
|
||
"body": "The hauler Cassian Reach has been broadcasting a refusal-to-surrender on our old emergency band since {enemy} moved onto her hull. Nobody boarded, because nobody could get within tow range without being read as part of the deal. Fly in, take the link, and let her crew finish arguing with someone who has engines. Destination is {system}, our sky, their berth."
|
||
},
|
||
{
|
||
"title": "{enemy} Hold Forty-One Of Ours",
|
||
"body": "Forty-one people are aboard a hull on {faction} registry that came out the wrong side of a gate into {enemy} territory, and the Ministry's ledger lists them as recoverable. That word does the work of a speech. Go get them: link the convoy, keep her hull between you and whatever rises to meet you, and put her down at {system}. The payout is per head and so is our thanks."
|
||
},
|
||
{
|
||
"title": "{enemy} Are Tow-Adjacent",
|
||
"body": "Our assets report {enemy} craft holding station alongside a stranded {faction} freighter — close, patient, and not yet boarding. They are waiting for the crew to give up or for us to try something, and either way they win information. Deny them both. Link first, run hard, and finish the delivery at {system}. The Ministry pays more for a clean tow than an autopsy."
|
||
},
|
||
{
|
||
"title": "{enemy} Hold The Whole Way Home",
|
||
"body": "There is no quiet route from where she sits to our gate. Our models plotted nine; all nine pass through ground that {enemy} holds and patrols on schedules we can only guess at. That is the whole contract: get the link, pick the least bad lane, and put her inside our own border at {system}. The {issuer} funds risk and does not fund excuses about odds."
|
||
},
|
||
{
|
||
"title": "{enemy} Broke The Safe-Passage Terms",
|
||
"body": "A medical tender left {system} under safe-passage terms and stopped in {enemy} space when those terms turned out to be fiction. Her patients are still breathing on schedule, which is a mercy nobody downwind of her intends to repeat. The Ministry is treating the paperwork as an act of war and the recovery as its first answer. Bring her home."
|
||
},
|
||
{
|
||
"title": "Two Hulls Under {enemy} Watch",
|
||
"body": "One {faction} tug is holding a dead hauler in {enemy}-held space with a broken tow rig and a crew that has started drawing straws. Our models give them days before they cut the line, and {enemy} patrol intervals suggest less. Take the link, carry what cannot fly, and get both of them back inside our own border at {system}. We pay per hull, alive."
|
||
},
|
||
{
|
||
"title": "{enemy} Have A Ministry Auditor",
|
||
"body": "A Ministry auditor went to inspect a forward depot and stayed there when {enemy} arrived. She carries the season's full loss ledger in her head and half of it on a sealed core that we cannot let get read. The hull she is stuck in belongs to us, which makes this a recovery and not a rescue. Bring the auditor home to {system}."
|
||
},
|
||
{
|
||
"title": "{enemy} Want Her Drive, Not Her Cargo",
|
||
"body": "What is parked in {enemy} territory is a bulk freighter with an unusual reactor — Ministry issue, export-prohibited, and currently sitting uncooled because her crew will not shut it down without someone covering them. They are right to worry. Take the convoy out under whatever guns you can keep alive between there and {system}, and let our engineers argue with the wreckage later."
|
||
},
|
||
{
|
||
"title": "Wreck-Off Then {enemy} Moved In",
|
||
"body": "Insurance called the hauler Meridian Grey a total loss three weeks ago. The Ministry bought the claim, which makes her ours at scrap prices and worth recovering at exactly the margin you are about to earn. She is sitting in {enemy} ground with a working crew and no escort. Take her home to {system}; the ledger will call it salvage and pay you like a contractor."
|
||
},
|
||
{
|
||
"title": "{enemy} Convoy Break, Cold Sky",
|
||
"body": "Three {faction} hulls went in on a convoy protocol and one came back out of {enemy} space. The other two are holding position, spread thin and hoping we are slower to react than they are patient. We are not. Link what is left, keep it in one formation, and deliver it into {system}. Anything that rises from {enemy} ground is a line item on your payout."
|
||
},
|
||
{
|
||
"title": "{enemy} Have One Of Our Pilots",
|
||
"body": "A Ministry pilot on loan to a civilian hauler is sitting in {enemy}-held space with a cracked fuel cell and the wrong flag painted on her bow. Under our doctrine that is a recovery, not a lost asset — we do not write down trained people. The {issuer} will pay for the hull and separately for the pilot. Get them both home to {system}."
|
||
},
|
||
{
|
||
"title": "Bring Her Through The Gate Firing",
|
||
"body": "The tender Ashcroft has air, cargo, and a crew willing to run on your signal, but she cannot clear {enemy} space alone and the Ministry will not commit a wing to a single hull. So we are buying yours instead. Link at her coordinates, hold the formation, and put her through our gate into {system}. If the run is quiet, you will find that suspicious and correctly paid."
|
||
}
|
||
]
|
||
},
|
||
"mindweave": {
|
||
"_comment": "The mindweave board's OWN copy pools — 20 variants per live category, drawn by js/quests/SideQuests.js → descriptionPool() (this faction's pool → the shared faction pool → the neutral pool). Written in the {issuer}'s own voice; the RULES of that voice are fixed by doctrine, never by the rival: every body names the seeded opponent through {enemy} (the posting's enemyFaction, resolved like every other placeholder), and nothing a body says ABOUT the rival may assume a technology only one faction has — {enemy} is any of the other two powers, so the copy speaks of what they DO (watch, trespass, tax, rehearse, salvage) and keeps the tech talk on our own side of the sentence. {system} = the board's system; patrol copy stands in it, bounty + escort copy stands in {enemy}-held ground.",
|
||
"patrol": [
|
||
{
|
||
"title": "{enemy} Lights Where Nothing Is",
|
||
"body": "Three towers report {enemy} craft entering {system} from the same edge, at the same minute, and no two reports agree on how many. Something out there is being generous with what our eyes are allowed to see. The Chorus does not argue with illusions; it finds the hull casting them. Work the reported vectors slowly, listen for the silence between returns, and put down whatever stops pretending."
|
||
},
|
||
{
|
||
"title": "The Grove Remembers {enemy}",
|
||
"body": "Our grove-ships have taken root along the outer shelf of {system} and they are frightened, which is not a word we use lightly. Something has moved through their listening threads and left the pattern wrong — a shape repeated too often, like a scar left by {enemy}. The Chorus asks you to find what frightened them and end it before the grove decides to defend itself in ways we cannot recall."
|
||
},
|
||
{
|
||
"title": "{enemy} Whispers On Our Own Band",
|
||
"body": "Our channels have begun finishing their own sentences. Nothing is being jammed; something is simply already knowing what we mean a half-second early and answering it. The Chorus recognises the shape of that and so should you — {enemy} do not scout with cameras when they can borrow a voice. Cut the affected relays, hunt the borrower, and speak only on hardline until it is done."
|
||
},
|
||
{
|
||
"title": "{enemy} Bait Pattern In The Belt",
|
||
"body": "A distress call, then silence, then a rescue shuttle guided exactly where guidance is worst. This has happened four times in {system}, always nearer the same belt shelf, and each time whatever answered was not the thing that called. The Chorus finds theatre tiresome. Fly the pattern anyway, but fly it with your wing behind you — and let {enemy} learn which of us is the bait."
|
||
},
|
||
{
|
||
"title": "{enemy} Are Teaching Our Children",
|
||
"body": "Settlement children along the inner ring report the same dream three nights running: lights crossing, a voice that was not theirs, a number counted down. The Chorus feels such reports before anyone files them and does not like their source. Whatever {enemy} are sowing in those young minds will harvest later at a price we pay. Sweep the inner ring and take the gardener."
|
||
},
|
||
{
|
||
"title": "{enemy} Footprints, No Feet",
|
||
"body": "Fuel drawn from two depots with no seal broken, no hull logged, and no heat on any scope in {system}. Somebody is travelling through our space without agreeing to be here. The Chorus has read the shape of their absence and it belongs to {enemy}. Walk the depots, follow the trail of small wrongnesses they leave behind, and make them choose a body to hide in."
|
||
},
|
||
{
|
||
"title": "The False Patrol",
|
||
"body": "One of our own picket flights is reporting honestly while our other towers insist that flight never launched. Somebody wearing our shapes is moving through {system} with our own tactics, and {enemy} are the only ones practising them. The Chorus will unpick the truth in its own time; you have less patience and better use for it. Confirm who is real at short range, and shoot what cannot prove itself."
|
||
},
|
||
{
|
||
"title": "Something Counted Our Gates",
|
||
"body": "The root-thread under the gate shrine went still for eleven seconds — not damaged, listening. In that window something touched the pattern hard enough to leave a fingerprint, and the Chorus reads it as {enemy} practice. We would prefer their next lesson be conducted at greater distance from our children's infrastructure. Find the teacher inside our own border."
|
||
},
|
||
{
|
||
"title": "{enemy} Are Practising Being Us",
|
||
"body": "Two haulers were challenged and cleared by a voice with our cadence, our phrasing, and none of our restraint — one of them complied right into a rock shelf. The Chorus hears its own accent in that report and takes it personally. Whatever {enemy} are rehearsing in {system}, stop the rehearsal mid-line. Wreckage is preferred over testimony."
|
||
},
|
||
{
|
||
"title": "The {enemy} Quiet Season",
|
||
"body": "Every {enemy} contact in this sector has gone silent at once, and our models are uneasy in the way models get before they are corrected by an event. Silence with intent is louder than any raid. The Chorus asks you to hold the outer ring of {system} alone for six days, see nothing if that is what there is, and burn anything that finally shows itself."
|
||
},
|
||
{
|
||
"title": "{enemy} Illusion Over The Hatchery",
|
||
"body": "The hatchery crews below have all seen the same wreck burning in low orbit for two mornings. There is no wreck; our sensors are certain and so are forty witnesses, which is the problem. {enemy} are rehearsing a mask over our food supply and calling it nothing. Find the projector's owner above the atmosphere and let the illusion go out with them."
|
||
},
|
||
{
|
||
"title": "{enemy} Thread-Cutters At The Relay",
|
||
"body": "A relay spire stopped carrying the Chorus and started carrying only itself — a hollow tower humming with our own recorded warmth so nobody below would notice. Whoever cut us out left in a hurry, and {enemy} are close enough to listen to what remains of the pattern for signs of pursuit. Cut deeper. The {issuer} pays for the tower back, not for the answer."
|
||
},
|
||
{
|
||
"title": "The Long Stare",
|
||
"body": "A single unmarked craft has been holding station off our third habitat at exactly the range where our patience thins and our laws blur. Our threads read {enemy} intention in it, though nothing she does is yet unlawful. The Chorus would like that resolved before the precedent sets. Take the staring craft out of {system} and out of the argument."
|
||
},
|
||
{
|
||
"title": "{enemy} Pull Our Roots Both Ways",
|
||
"body": "Our grove-ships read as hostile to our own traffic for the sixth time this month, and each confusion follows {enemy} transits by hours. Somebody has learned which threads to brush so that we raise guns at ourselves while they cross beneath. The Chorus is sorry for what our pickets will do on your wing. Do it anyway; pull the hand, not the roots."
|
||
},
|
||
{
|
||
"title": "{enemy} Are Borrowing Our Dead",
|
||
"body": "Beacons from wrecks we have not recovered are transmitting clearances in {system}, and each one leads a rescue boat somewhere empty and watched. They are using our dead as door hardware, which is {enemy} work to a signature. The Chorus does not forgive that, though forgiveness is not our objection — cost is. Find who wears those signals and add their hull to the count."
|
||
},
|
||
{
|
||
"title": "{enemy} Walk Through A Door We Left",
|
||
"body": "There is a gap in the listening weave over the far moon: narrow, deliberate, and kept open by something on this side of it. We did not make it and we cannot fully close it while it is fed from outside our border. {enemy} are walking through with remarkable confidence these days. Go stand on the near side and see who comes."
|
||
},
|
||
{
|
||
"title": "Nine Ships, One Direction",
|
||
"body": "Our towers agree for the first time in a month: nine {enemy} contacts entering {system} on a working line, evenly spaced, exactly one patrol interval apart. That is not a raid; it is a schedule being laid down to see who objects. Object. The Chorus will show you where the pattern bends and pay you for what you break there."
|
||
},
|
||
{
|
||
"title": "{enemy} Are Talking To Our Miners",
|
||
"body": "A mining crew in the belt has been taking instructions from a voice they trust more than their own supervisor, and it is not us. They have stopped answering our channels and started moving rock toward something they cannot see. We think {enemy} are opening a listening post through people who were kind enough to agree. Recover the crew without becoming the villain of their story."
|
||
},
|
||
{
|
||
"title": "{enemy} Between The Pulses",
|
||
"body": "Our sensor doctrine is honest: it pulses, it listens, it trusts the dark between pulses. Somebody has been travelling through those gaps in {system} close enough to touch our hulls, and only the grove suspects anything at all — {enemy} have learned precisely how much honesty we can afford. Fly blind-pattern sweeps with your own eyes and prove what the Chorus half-knows."
|
||
},
|
||
{
|
||
"title": "They Made Us Doubt Ourselves",
|
||
"body": "Two picket pilots reported the same {enemy} contact from opposite vectors, both correct, both with intact instruments. The Chorus has spent a day deciding whether we are being lied to or unwell, and would prefer you settle it physically. Sweep both vectors, take whatever you find on either, and file the answer in wreckage if that is what it takes."
|
||
}
|
||
],
|
||
"bounty": [
|
||
{
|
||
"title": "WANTED — {enemy} Thread-Cutter",
|
||
"issuer": "{issuer}",
|
||
"name": "Adrienne Vosskane",
|
||
"epithet": "the one who answers before we ask",
|
||
"crime": "Reading our traffic and replying as us",
|
||
"craftLabel": "{enemy} hull with an unusually confident approach vector",
|
||
"body": "Adrienne Vosskane reads our traffic and answers in our own cadence, sometimes before we send it. Three settlements obeyed an order that never existed. She works from inside {enemy} ground. Cut the thread she pulls on."
|
||
},
|
||
{
|
||
"title": "WANTED — {enemy} Mask Pilot",
|
||
"issuer": "{issuer}",
|
||
"name": "Erslow Marquane",
|
||
"epithet": "he wears our shapes",
|
||
"crime": "Flying false {faction} clearances into our shipping",
|
||
"craftLabel": "{enemy} fighter dressed in stolen silhouette",
|
||
"body": "Erslow Marquane flies false shapes into our shipping with clearances he did not earn. Two haulers have already parted for a stranger. He returns to {enemy} territory between performances. End the costume."
|
||
},
|
||
{
|
||
"title": "{enemy} Dream Instructor",
|
||
"issuer": "{issuer}",
|
||
"name": "Ilva Chremtane",
|
||
"epithet": "she teaches children our silences",
|
||
"crime": "Broadcasting into settlement sleep-cycles",
|
||
"craftLabel": "{enemy} light craft, far too patient for a patrol route",
|
||
"body": "Ilva Chremtane broadcasts into settlement sleep-cycles to teach children silences that are not ours. The settlements do not know they were taught. She is inside {enemy} ground; the chorus is not deaf forever."
|
||
},
|
||
{
|
||
"title": "WANTED — {enemy} Silent Runner",
|
||
"issuer": "{issuer}",
|
||
"name": "Bodivan Lusk",
|
||
"epithet": "no heat, no hull, no apology",
|
||
"crime": "Walking through our depots without being seen",
|
||
"craftLabel": "{enemy} runner, cold-stored and badly curious",
|
||
"body": "Bodivan Lusk has walked through two of our depots without a hull signature and left only inventory counts behind. He is not stealing, he is measuring. Take his silence away inside {enemy} territory."
|
||
},
|
||
{
|
||
"title": "{enemy} False-Signal Curator",
|
||
"issuer": "{issuer}",
|
||
"name": "Sarn Hallovane",
|
||
"epithet": "keeps a museum of our beacons",
|
||
"crime": "Reprogramming the transponders of our dead",
|
||
"craftLabel": "{enemy} salvage hull, lined with borrowed signals",
|
||
"body": "Sarn Hallovane reprograms the beacons of our dead and keeps them talking for company. Our rescue boats have flown to wrecks that were already empty. Collect {enemy}'s curator before she mounts another voice."
|
||
},
|
||
{
|
||
"title": "WANTED — {enemy} Provocation Choreographer",
|
||
"issuer": "{issuer}",
|
||
"name": "Odaly Kerrwan",
|
||
"epithet": "every raid has a stage direction",
|
||
"crime": "Staging incidents to make us look like aggressors",
|
||
"craftLabel": "{enemy} picket, camera-forward and gun-second",
|
||
"body": "Odaly Kerrwan stages incidents so that we appear to begin them, and the recording always agrees with her. Three borders now look like our fault. Her stage stands inside {enemy} ground. Strike the direction, not the actors."
|
||
},
|
||
{
|
||
"title": "{enemy} Weaver-Breaker",
|
||
"issuer": "{issuer}",
|
||
"name": "Konstance Ruvre",
|
||
"epithet": "she makes us doubt our own senses",
|
||
"crime": "Injecting false returns into our sensor groves",
|
||
"craftLabel": "{enemy} electronic-fit fighter, no visible gun and one idea",
|
||
"body": "Konstance Ruvre injects false returns into our sensor groves until our own reports argue with themselves. She makes us doubt a clean sky. Silence her source inside {enemy} territory and let the grove agree again."
|
||
},
|
||
{
|
||
"title": "WANTED — {enemy} Toll Shepherd",
|
||
"issuer": "{issuer}",
|
||
"name": "Aldric Vonnane",
|
||
"epithet": "he herds, we pay",
|
||
"crime": "Diverting our freight into watched holding lanes",
|
||
"craftLabel": "{enemy} heavy escort, patient as weather",
|
||
"body": "Aldric Vonnane diverts our freight into watched holding lanes and waits politely while we pay to leave. No guns, only patience and a chart of our habits. His flock grazes in {enemy} ground. Scatter it."
|
||
},
|
||
{
|
||
"title": "{enemy} Ghost Architect",
|
||
"issuer": "{issuer}",
|
||
"name": "Nivarda Cheel",
|
||
"epithet": "she builds doors where walls were",
|
||
"crime": "Cutting listening gaps in our coverage",
|
||
"craftLabel": "{enemy} long-range scout, unremarkable until reviewed twice",
|
||
"body": "Nivarda Cheel cuts listening gaps in our coverage and sells passage through them. Where her doors stand, our chorus hears nothing at all. She works inside {enemy} territory; close a door behind her this time."
|
||
},
|
||
{
|
||
"title": "WANTED — {enemy} Morale Officer",
|
||
"issuer": "{issuer}",
|
||
"name": "Teodor Ashvale",
|
||
"epithet": "the calm voice on our channels",
|
||
"crime": "Persuading our pilots to stand down mid-deployment",
|
||
"craftLabel": "{enemy} interceptor with a broadcast spine",
|
||
"body": "Teodor Ashvale talks to our pilots mid-deployment in a very calm voice and asks them to stand down. Two squadrons have hesitated on his kindness. He broadcasts from {enemy} ground. Answer him once, finally."
|
||
},
|
||
{
|
||
"title": "{enemy} Wreck Reader",
|
||
"issuer": "{issuer}",
|
||
"name": "Marisel Kanevane",
|
||
"epithet": "she hears what the dead saw",
|
||
"crime": "Pulling our pilots' last minutes out of their black boxes",
|
||
"craftLabel": "{enemy} light salvager with a very fast cutter",
|
||
"body": "Marisel Kanevane pulls our pilots' last minutes out of recovered black boxes and studies them like scripture. She learns what we did before we died, and teaches it to others. Take her out of {enemy} space."
|
||
},
|
||
{
|
||
"title": "WANTED — {enemy} Border Cartographer",
|
||
"issuer": "{issuer}",
|
||
"name": "Fabien Morvane",
|
||
"epithet": "he draws our borders moving",
|
||
"crime": "Charting our patrols as though they were coastlines",
|
||
"craftLabel": "{enemy} survey fighter with more memory than armor",
|
||
"body": "Fabien Morvane charts our patrols as though they were coastlines, drawing borders that move with our own ships. His maps are cited back at us in three sectors now. Correct {enemy}'s survey from its source."
|
||
},
|
||
{
|
||
"title": "{enemy} Choir Impersonator",
|
||
"issuer": "{issuer}",
|
||
"name": "Ysbel Frenderane",
|
||
"epithet": "she sings with our throats",
|
||
"crime": "Broadcasting false Chorus guidance to our own settlements",
|
||
"craftLabel": "{enemy} courier, sealed, fast, and full of borrowed voices",
|
||
"body": "Ysbel Frenderane broadcasts false Chorus guidance to our own settlements using throats that are not hers. A grove obeyed an instruction we never dreamed. Silence {enemy}'s singer before another grove listens proudly."
|
||
},
|
||
{
|
||
"title": "WANTED — {enemy} Bait Master",
|
||
"issuer": "{issuer}",
|
||
"name": "Gwyndrel Soskane",
|
||
"epithet": "every distress call is his handwriting",
|
||
"crime": "Running false rescues onto watched rocks",
|
||
"craftLabel": "{enemy} raider fit with an emitter where a conscience should be",
|
||
"body": "Gwyndrel Soskane writes distress calls in our syntax and runs rescues onto watched rocks. Our salvage has come back reduced twice. His hand is identifiable to anyone who looks. We are looking, inside {enemy} ground."
|
||
},
|
||
{
|
||
"title": "{enemy} Sleep-Watcher",
|
||
"issuer": "{issuer}",
|
||
"name": "Ambrose Tulliverne",
|
||
"epithet": "he knows which of us dream",
|
||
"crime": "Probing our crews for susceptible minds",
|
||
"craftLabel": "{enemy} scout, patient to a degree that is almost virtue",
|
||
"body": "Ambrose Tulliverne probes our crews for susceptible minds and keeps a guest list of names that answered. Two have stopped reporting the dreams. He works from within {enemy} territory; close his ledger by hand."
|
||
},
|
||
{
|
||
"title": "WANTED — {enemy} Pattern Smasher",
|
||
"issuer": "{issuer}",
|
||
"name": "Dominique Ferrovane",
|
||
"epithet": "she breaks the weave with noise",
|
||
"crime": "Screaming across our grove-links until they misreport",
|
||
"craftLabel": "{enemy} jam-frame built loud and flown louder",
|
||
"body": "Dominique Ferrovane screams across our grove-links until they misreport, then harvests what we say under noise. Our own honesty becomes her instrument. Take her channel down inside {enemy} ground."
|
||
},
|
||
{
|
||
"title": "{enemy} Guest List Officer",
|
||
"issuer": "{issuer}",
|
||
"name": "Petronel Haxane",
|
||
"epithet": "she decides who is allowed to be seen",
|
||
"crime": "Editing our sensor rosters from outside",
|
||
"craftLabel": "{enemy} command-light, escorted without being noticed",
|
||
"body": "Petronel Haxane edits our sensor rosters from outside, deciding which of our ships are allowed to be seen. Convoys have gone uncounted on her authority. Her desk sits in {enemy} territory. Empty it."
|
||
},
|
||
{
|
||
"title": "WANTED — {enemy} Fear Auditor",
|
||
"issuer": "{issuer}",
|
||
"name": "Cassiren Vemroane",
|
||
"epithet": "she measures how much we can take",
|
||
"crime": "Recording our reaction times to terror",
|
||
"craftLabel": "{enemy} observer pod with an irresponsible amount of endurance",
|
||
"body": "Cassiren Vemroane records how long our settlements take to panic and prices the answer for planners. She calls it research, and files it as ammunition. End the audit inside {enemy} ground."
|
||
},
|
||
{
|
||
"title": "{enemy} Mirror Pilot",
|
||
"issuer": "{issuer}",
|
||
"name": "Roswithe Danclere",
|
||
"epithet": "she flies like us, badly enough to be believed",
|
||
"crime": "Imitating our tactics to split our own formations",
|
||
"craftLabel": "{enemy} fighter flown with an uncomfortable amount of familiarity",
|
||
"body": "Roswithe Danclere flies like us, badly enough to be believed, and splits our formations by being recognisable. Two wings have turned on a mimic rather than risk being wrong. Break {enemy}'s mirror where it is hanging."
|
||
},
|
||
{
|
||
"title": "WANTED — {enemy} Cadre Seer",
|
||
"issuer": "{issuer}",
|
||
"name": "Magdal Orventine",
|
||
"epithet": "she answers for us before we speak",
|
||
"crime": "Directing every provocation in this sector from one chair",
|
||
"craftLabel": "{enemy} command fit, guarded by people who share her certainty",
|
||
"body": "Magdal Orventine answers for us before we speak and directs every provocation in this sector from one chair. The Chorus has read her calm a dozen times and never once moved first. Remove {enemy}'s chair from the board."
|
||
}
|
||
],
|
||
"escort": [
|
||
{
|
||
"title": "{enemy} Silence On {faction} Tender",
|
||
"body": "One {faction} grain tender stopped singing to the weave four days ago and reappeared in {enemy} ground, silent but whole. Nothing about that is accidental: she was moved by someone who wants her crew awake for what comes. The Chorus does not leave a voice unlistened-to. Link at her coordinates and carry her back into {system}, where our threads can reach her again."
|
||
},
|
||
{
|
||
"title": "{enemy} Are Asking Her Questions",
|
||
"body": "Our courier Thalassine has been holding position inside {enemy} territory with a boarding request outstanding and a crew that has learned to answer nothing. The Chorus has felt her fear at this distance for two days, which is longer than we intend to tolerate. Take the link, hold her close, and bring her home to {system} before someone else learns what she refuses to say."
|
||
},
|
||
{
|
||
"title": "{enemy} Watch Our Seed Ship",
|
||
"body": "A living seed ship of ours put down in {enemy} space on a root-survey and cannot lift without an escort she does not have; her grove is frightened of the sky around her. We cannot tell her to be brave from here. Fly out, link the convoy, and walk her home through whatever {enemy} rise to see her go. Destination {system}, where the soil is ours."
|
||
},
|
||
{
|
||
"title": "{enemy} Have A Borrowed Hull",
|
||
"body": "The hauler Quiet Sister left {system} under our flag and answered a challenge she was not qualified to answer, and now she sits in {enemy} ground with her crew bargaining politely. The Chorus finds negotiation with captors to be a slow form of surrender. Bring her out; you will be paid in credits first and in memory after."
|
||
},
|
||
{
|
||
"title": "{enemy} Have Forty Sleepers",
|
||
"body": "A medical tender carrying forty sleepers and the season's choir rehearsal is parked in {enemy} territory with a fault too small to matter and an audience too large to ignore. The sleepers do not know who is listening to them breathe. Neither should {enemy}. Take the convoy home to {system} and let the choir finish their piece at altitude over our own sky."
|
||
},
|
||
{
|
||
"title": "The Weaver's Own Daughter",
|
||
"body": "A Chorus weaver put her daughter on a family freighter bound for a relative's station and the route bent wrong into {enemy} ground. We are not above asking, and we are not going to pretend otherwise: bring her home. Take what guns you need from the depot, link the convoy at her coordinates, and finish the delivery in {system}. The Chorus remembers these things across years."
|
||
},
|
||
{
|
||
"title": "{enemy} Watching A Ship That Will Not Sing",
|
||
"body": "Our freighter Hush has refused every hail for six days — hers is a stubbornness we bred deliberately and now must rescue. Something in {enemy} space finds her silence insulting and is circling to correct it. Fly the lane, link her, and let both of them learn your voice at the same moment. Bring her back to {system} with her crew unconverted."
|
||
},
|
||
{
|
||
"title": "The Pilgrims' Lane Runs Through Them",
|
||
"body": "A pilgrim barge went out on the old root-road and came to rest inside {enemy} border while its passengers pray very audibly for exactly this kind of help. We find their aim true and their timing inconvenient. Link at her position, keep the convoy tight, and deliver them to {system}. The Chorus will hear about your conduct; that is the reward as much as the credit."
|
||
},
|
||
{
|
||
"title": "She Carries A Grove",
|
||
"body": "The last mature grove-stock outside our own border sits in a hold inside {enemy} ground,rooted in soil we spent thirty years growing and refusing to lift without someone she trusts overhead. The stock is not cargo; it is infrastructure with feelings. Fly out, link, and bring her home through whatever {enemy} think the forest is worth. Destination: {system}."
|
||
},
|
||
{
|
||
"title": "{enemy} Cut The Thread Mid-Sentence",
|
||
"body": "One {faction} freighter was talking to us one moment — naming her coordinates, naming her fear — and then simply stopped, with a hole in the weave shaped like a hand. That is {enemy} claiming this sector's silence in front of witnesses. Answer it by taking her convoy back into {system} loudly enough for everyone to hear."
|
||
},
|
||
{
|
||
"title": "{enemy} Edited Our Dream Route",
|
||
"body": "Our dream-lane through the outer belt has been rerouted twice in a week and now terminates inside {enemy} territory, where one of our own courier hulls is waiting for company she did not order. Somebody is editing our maps and hoping we fly blind into their patience. Do not. Link her, then take the lane home to {system} by whichever route costs them most."
|
||
},
|
||
{
|
||
"title": "{enemy} Have Us Outnumbered, Politely",
|
||
"body": "Our survey vessel Courtesy is holding station in {enemy} ground under escort she did not request, with a crew that reports being treated extremely well. That is the worst kind of captivity and we want them out before the courtesy becomes precedent. Link, do not escalate beyond necessity, and bring her back to {system}. If courtesy fails, your guns are acceptable."
|
||
},
|
||
{
|
||
"title": "{enemy} Have Two Young Listeners",
|
||
"body": "Two young listeners were sent out on a listening barge to learn patience from the quiet edge of our territory. They learned it inside {enemy} border instead, and are now very frightened and too trained to say so. The Chorus feels them clearly enough to guide you in. Take the convoy back to {system} and let them finish their education at home."
|
||
},
|
||
{
|
||
"title": "{enemy} Want Our Recipe",
|
||
"body": "A food-barge out of our agri-ring carries starter cultures, seed-stock, and one very nervous botanist who has understood exactly what {enemy} would do with all three. She is parked in their ground with an engine problem she probably invented on purpose. The Chorus finds her instinct correct and her solutions insufficient. Bring them home to {system}, cultures first."
|
||
},
|
||
{
|
||
"title": "A Debt Run Through {enemy} Ground",
|
||
"body": "Three cycles ago a freighter on {faction} registry carried our wounded out of a bad season and was never repaid beyond words. She now sits in {enemy} territory with a broken regulator and the memory of having done us a kindness. The Chorus keeps no ledger it intends to default on. Link her, fly her lane, deliver her home to {system}, and be paid twice."
|
||
},
|
||
{
|
||
"title": "{enemy} Are Filming Us",
|
||
"body": "Our hauler Prospect is stranded in {enemy} ground while a camera-bearing craft holds her at range for what a very pleasant voice calls documentation. Whatever airs next will be about our flag and our choices. The Chorus objects to the edit and offers you as the correction: link the convoy, keep it moving, and finish the delivery at {system} unedited."
|
||
},
|
||
{
|
||
"title": "{enemy} Kept Her Crew Frozen",
|
||
"body": "One {faction} crew stopped mid-transit inside {enemy} space after hearing something on their own intercom that we did not put there. They are alive, armed, and no longer willing to move without company. Whatever spoke to them expects them to stay afraid of being alone. Prove it wrong: link, fly together, home to {system}."
|
||
},
|
||
{
|
||
"title": "{enemy} Have A Reason For Waiting",
|
||
"body": "Nothing has boarded our freighter Meridian Rose in eleven days, and the Chorus does not believe {enemy} patience comes free. Something wants her to leave in a specific way, at a specific time, into a specific place. Refuse the arrangement on your own schedule instead. Link her when it is inconvenient to them and bring her home to {system}."
|
||
},
|
||
{
|
||
"title": "{enemy} Have Our Choir In Range",
|
||
"body": "Our touring choir left for a guest performance at a station that no longer wishes to host them, and their barge sits in {enemy} ground with forty voices and a full repertoire. They have begun singing on open channels because they believe it helps. We love them and we are asking you to collect them before the audience arrives. Home is {system}."
|
||
},
|
||
{
|
||
"title": "{enemy} Tolls On The Way Home",
|
||
"body": "The last honest lane out of {enemy} territory passes a toll nobody wrote down, and our freighter Amber Root is on the wrong side of it with a crew that has started negotiating. Tell her captain the Chorus pays for passage once and never twice: link her convoy, ignore anyone charging us, and bring her through into {system}."
|
||
}
|
||
]
|
||
},
|
||
"zenith": {
|
||
"_comment": "The zenith board's OWN copy pools — 20 variants per live category, drawn by js/quests/SideQuests.js → descriptionPool() (this faction's pool → the shared faction pool → the neutral pool). Written in the {issuer}'s own voice; the RULES of that voice are fixed by doctrine, never by the rival: every body names the seeded opponent through {enemy} (the posting's enemyFaction, resolved like every other placeholder), and nothing a body says ABOUT the rival may assume a technology only one faction has — {enemy} is any of the other two powers, so the copy speaks of what they DO (watch, trespass, tax, rehearse, salvage) and keeps the tech talk on our own side of the sentence. {system} = the board's system; patrol copy stands in it, bounty + escort copy stands in {enemy}-held ground.",
|
||
"patrol": [
|
||
{
|
||
"title": "{enemy} Samples In Our Gravity",
|
||
"body": "Two {enemy} hulls entered {system} and took samples of our gravity well at the exact gradient our own survey ships use. That is curiosity with a budget, and curiosity this precise gets tested on us later at range. The Concord prefers its specimen data collected from its own stock. Sweep the survey vectors and return their instruments to them in a form they will find difficult to read."
|
||
},
|
||
{
|
||
"title": "Proving Ground",
|
||
"body": "For six days something out of {enemy} space has been running weapons trials against our outer markers, aiming carefully at nothing and calling it navigation. Trials are how a rival measures what our armor is worth before deciding to buy or break it. The Concord will not fund that arithmetic with our habitats as the backstop. Fly out, meet them on their range, and change the subject of their study."
|
||
},
|
||
{
|
||
"title": "{enemy} Are Editing Our Border",
|
||
"body": "Three beacons at the meridian have been moved — not destroyed, relocated by a few hundred kilometres in ways that make our own charts look sloppy to passing traffic. That is {enemy} patience with a surveyor's toolkit, and it works on weaker powers than ours. The Concord corrects errors. Find the crew doing this and file them along with their equipment, then reset the marks yourself."
|
||
},
|
||
{
|
||
"title": "The Slow Ones Are The Problem",
|
||
"body": "Our models flag two contacts in the outer field: one sprinting hard at our sensor edge, one crawling so slowly it barely registers. We know that pairing — fast to provoke, slow to measure the response. {enemy} are running tactics drills against {faction} reflexes, and we are obliged to be excellent students. Take the patient one first and let the fast one report what happened."
|
||
},
|
||
{
|
||
"title": "{enemy} Testing Our Patience",
|
||
"body": "{enemy} craft have crossed into our space eleven times in a fortnight, always retreating at the exact instant our pilots would have to fire first, which is a discipline we respect and intend to break. They are counting how long restraint lasts here. Answer the count inside {system}, where the ground and the law are both ours, and let them revise downward."
|
||
},
|
||
{
|
||
"title": "A Flaw In The Watch",
|
||
"body": "Our own picket rotation has a gap of four minutes twice a cycle — an inherited flaw we have meant to correct for two seasons. Somebody new to this system has found it and is flying through it with impressive regularity, and the pattern carries {enemy} fingerprints. Until engineering fixes us, hold the seam by hand. Whatever you catch in the gap belongs to your claim ledger."
|
||
},
|
||
{
|
||
"title": "{enemy} Count Our Berths",
|
||
"body": "A survey-grade pass has been made over our orbital yards at a dwell long enough to count berths, dry-dock cycles, and crew rotations. Building capacity is a weapon inventory and someone in {enemy} space now holds ours in readable form. The Concord does not permit audits. Find the auditor inside our own sky and cancel the engagement."
|
||
},
|
||
{
|
||
"title": "Perfection Has A Rival",
|
||
"body": "Something in this system is performing well — unnaturally so for unregistered traffic, holding formation tolerances that suggest either excellent breeding or excellent machinery, and the Concord does not care which. It cares whose it is. Our models le{enemy}. Identify the flight, test it at close range, and demonstrate the difference between competence and standards."
|
||
},
|
||
{
|
||
"title": "{enemy} In The Habitable Band",
|
||
"body": "Contacts in the habitable band are loitering above our agri-domes where the light is best and the witnesses are most numerous. Nothing has been fired; {enemy} footage is being made, and everyone below can see whose sky they are trusting to hold it. The Concord pays well for demonstrations of its own. Go up there and out-perform them in whatever manner you prefer."
|
||
},
|
||
{
|
||
"title": "They Keep Photographing The Yard",
|
||
"body": "Four separate {enemy} hulls have taken the same approach to our construction orbit in the same window, each for eleven minutes, each leaving before a formal challenge could be drafted. That is a data collection schedule and we are the subject. Somebody believes our next keel matters. Make their next collection attempt the last entry in the file."
|
||
},
|
||
{
|
||
"title": "{enemy} Are Teaching Us New Threats",
|
||
"body": "Every engagement report this month describes a manoeuvre no one has seen before, executed once, never repeated, always withdrawn from at a range we cannot close. Our analysts call it field testing; the tested material is our doctrine. The Concord does not appreciate being an examination. Find whichever {enemy} unit is conducting it and grade it in the only currency that closes a report."
|
||
},
|
||
{
|
||
"title": "A Patrol That Will Not Commit",
|
||
"body": "One {enemy} fighter has shadowed our picket line for two cycles, matching every turn without ever crossing a single metric we could lawfully cite. It is a contest of discipline and somebody hopes we will lose it loudly. The Concord does not lose composure and prefers not to lose pilots either. Fly the intercept with your safety on your nerve, and end the shadow by means that require no explanation."
|
||
},
|
||
{
|
||
"title": "{enemy} Wants Our Water Lane",
|
||
"body": "Our water hauls run a fixed lane for reasons of gravity, not sentiment, and something has learned the schedule. Two {enemy} near-misses in a week have already raised insurance across the whole ring, which is a way of taking a lane without firing. The Concord prices its thirst accordingly. Hold the lane and make the attempt expensive enough to be abandoned."
|
||
},
|
||
{
|
||
"title": "Twelve Hours Of Nothing",
|
||
"body": "For twelve hours our scopes will show nothing at all in the outer field — a scheduled calibration, unavoidable and completely invisible to anyone not in the know. Something in {enemy} space has noticed that we go blind on this rotation, and it would be unfortunate if they mistook the habit for an invitation. Stand patrol on the quiet side of our own blindness and correct any mistake they make."
|
||
},
|
||
{
|
||
"title": "{enemy} Are Naming Our Moons",
|
||
"body": "Long-range transmissions from this system have begun referring to our moons by names that are not ours, in a syntax that assumes agreement. Renaming is how a rival files a claim without ever launching anything, and the Concord has read enough {enemy} traffic to know where that ends. Locate the transmitter, silence it, and let the record show which names survived."
|
||
},
|
||
{
|
||
"title": "Refit Watch",
|
||
"body": "Our yards are mid-refit and for eleven days our pickets will fly light while their heavier frames hang open in dry-dock. Rivals read a yard schedule the way predators read a limping herd, and we have every reason to expect {enemy} arithmetic this cycle. Fly what you have, stay in company, and hold the field until the fleet closes its own gaps."
|
||
},
|
||
{
|
||
"title": "{enemy} Are Learning Our Voices Slowly",
|
||
"body": "A hauler was challenged in a cadence almost right and lived to describe it, which means the {enemy} rehearsal is early. Somebody is working our phrasing from recordings, badly enough that only a Concord pilot would catch it, and soon enough that they will not need to. Sweep the traffic lanes for the imitator before the accent improves."
|
||
},
|
||
{
|
||
"title": "The Border Is A Muscle",
|
||
"body": "A border is not a line, it is a muscle, and ours has been flexing in the same direction for a season while something on the far side measures the twitch. Our latest readings put {enemy} instruments at the exact point of our habitual response, waiting to see what we do once more. Do something they have not modelled. The Concord will fund the experiment gladly."
|
||
},
|
||
{
|
||
"title": "{enemy} Are Being Polite About It",
|
||
"body": "{enemy} flights entered our space, hailed correctly, held formation at a legally unimpeachable distance, and stayed nine hours. Every dome in {system} watched and none of us could do a thing by law. The Concord does not require you to be lawful in the same way we require you to be effective. Find a reason that survives review."
|
||
},
|
||
{
|
||
"title": "Whatever Is Under The Ice",
|
||
"body": "Our soundings under the fourth moon keep returning a hollow that was not on any survey and have stopped returning anything else, which is how concealment behaves when it is confident. Something has been installed in ground we own, and every model points toward {enemy} methods. Sweep downward as well as outward; the Concord pays for what you recover as much as for what you destroy."
|
||
}
|
||
],
|
||
"bounty": [
|
||
{
|
||
"title": "WANTED — {enemy} Adoption Officer",
|
||
"issuer": "{issuer}",
|
||
"name": "Magistrane Ilvo Kesh",
|
||
"epithet": "the collector of other people's work",
|
||
"crime": "Adapting captured Concord fittings for {enemy} frames",
|
||
"craftLabel": "{enemy} fighter wearing borrowed Concord plating badly",
|
||
"body": "Magistrane Ilvo Kesh strips Concord fittings and bolts them into {enemy} frames, then flies them at us to see which hold. The Concord does not license its work. Cancel the adoption where she keeps her tools."
|
||
},
|
||
{
|
||
"title": "WANTED — {enemy} Range Officer",
|
||
"issuer": "{issuer}",
|
||
"name": "Captain Ovid Rancke",
|
||
"epithet": "he measures us with a ruler",
|
||
"crime": "Firing test shots across our claim line to grade his own guns",
|
||
"craftLabel": "{enemy} long-barrel, slow on purpose",
|
||
"body": "Captain Ovid Rancke fires test shots across our claim line to grade his own guns, and files our restraint as windage. Three posts have been bracketed this month. Correct his measurements inside {enemy} ground."
|
||
},
|
||
{
|
||
"title": "{enemy} Defection Handler",
|
||
"issuer": "{issuer}",
|
||
"name": "Sylaine Perdrov",
|
||
"epithet": "the kind voice on our own band",
|
||
"crime": "Recruiting our disaffected pilots into {enemy} frames",
|
||
"craftLabel": "{enemy} courier, clean-hulled and unhurried",
|
||
"body": "Sylaine Perdrov speaks kindly to our disaffected pilots on our own band and offers them better frames. Four have taken the offer; two were carrying something. Her office sits in {enemy} territory. Close it, politely."
|
||
},
|
||
{
|
||
"title": "WANTED — {enemy} Bloodline Forger",
|
||
"issuer": "{issuer}",
|
||
"name": "Anselm Vochane",
|
||
"epithet": "he fakes what we breed",
|
||
"crime": "Selling forged Concord lineage papers to {enemy} pilots",
|
||
"craftLabel": "{enemy} escort, paperwork-forward and gun-light",
|
||
"body": "Anselm Vochane sells forged Concord lineage papers to {enemy} pilots, which is not fraud but theft of a kind we cannot reprint. His stock passes scans. Find the press before the paper becomes history."
|
||
},
|
||
{
|
||
"title": "{enemy} Attrition Analyst",
|
||
"issuer": "{issuer}",
|
||
"name": "Doctora Ilmaret Voss",
|
||
"epithet": "she counts what we can afford to lose",
|
||
"crime": "Modelling Concord losses to time the next push",
|
||
"craftLabel": "{enemy} observer, unarmed and unacceptably calm",
|
||
"body": "Doctora Ilmaret Voss models what the Concord can afford to lose and tells her commanders when we will have lost it. She counts our dead as inventory and files by week. Remove her from {enemy} ground early."
|
||
},
|
||
{
|
||
"title": "WANTED — {enemy} Weapon Proving Captain",
|
||
"issuer": "{issuer}",
|
||
"name": "Bram Quirovene",
|
||
"epithet": "new guns need old targets",
|
||
"crime": "Testing experimental loads on our forward posts",
|
||
"craftLabel": "{enemy} heavy with a barrel nobody has catalogued yet",
|
||
"body": "Bram Quirovene tests experimental loads on our forward posts because new guns need old targets, and ours are near. Two habitats have been used as a data set. Refuse the role inside {enemy} territory instead."
|
||
},
|
||
{
|
||
"title": "{enemy} Sensor Surgeon",
|
||
"issuer": "{issuer}",
|
||
"name": "Kelva Drummane",
|
||
"epithet": "she cuts the eyes out politely",
|
||
"crime": "Blinding our pickets without firing a shot",
|
||
"craftLabel": "{enemy} electronic hull with more cooling than armor",
|
||
"body": "Kelva Drummane blinds our pickets without firing a shot and leaves the crews conscious of the dark. She calls it surgery and charges for the lesson. Take her table apart inside {enemy} ground."
|
||
},
|
||
{
|
||
"title": "WANTED — {enemy} Freight Inspector",
|
||
"issuer": "{issuer}",
|
||
"name": "Marshal Odo Varncke",
|
||
"epithet": "he searches our hulls and keeps the interesting parts",
|
||
"crime": "Boarding Concord freight under someone else's authority",
|
||
"craftLabel": "{enemy} heavy escort with boarding claws bolted on",
|
||
"body": "Marshal Odo Varncke boards Concord freight under someone else's authority and keeps whatever interests him. His paperwork is excellent and borrowed. End {enemy}'s inspection round where the reports are filed."
|
||
},
|
||
{
|
||
"title": "{enemy} Doctrine Author",
|
||
"issuer": "{issuer}",
|
||
"name": "Commandant Severin Halek",
|
||
"epithet": "he writes the book we are in",
|
||
"crime": "Publishing tactics specifically for fighting Concord frames",
|
||
"craftLabel": "{enemy} command fit, escorted by people who memorised him",
|
||
"body": "Commandant Severin Halek publishes tactics for fighting Concord frames, chapter by chapter, using our last month as his notes. Our pilots have begun reading him first. Recall the author inside {enemy} territory."
|
||
},
|
||
{
|
||
"title": "WANTED — {enemy} Salvage Admiral",
|
||
"issuer": "{issuer}",
|
||
"name": "Rosalind Kerrovhane",
|
||
"epithet": "she raises our dead to fly again",
|
||
"crime": "Refitting Concord wrecks for {enemy} service",
|
||
"craftLabel": "{enemy} heavy, recognisably one of ours under the wrong colours",
|
||
"body": "Rosalind Kerrovhane raises our dead and paints them for {enemy} service, flying hulls whose crews she never bothered to name. The Concord remembers every registry number. Take her yard apart in her own sky."
|
||
},
|
||
{
|
||
"title": "{enemy} Pace Setter",
|
||
"issuer": "{issuer}",
|
||
"name": "Tovin Alderqsne",
|
||
"epithet": "he runs our lanes faster than we do",
|
||
"crime": "Running our courier schedule to prove it can be done",
|
||
"craftLabel": "{enemy} sprinter, tanks stretched past the warranty",
|
||
"body": "Tovin Alderqsne runs our courier lanes faster than their owners do, timing us from the inside of the schedule he stole. Speed we can answer; theft of tempo we cannot. Break his run in {enemy} ground."
|
||
},
|
||
{
|
||
"title": "WANTED — {enemy} Graft Surgeon",
|
||
"issuer": "{issuer}",
|
||
"name": "Doctor Cassilem Rhoate",
|
||
"epithet": "he installs what we grow",
|
||
"crime": "Grafting captured Concord biological fittings onto {enemy} crews",
|
||
"craftLabel": "{enemy} medical craft with a very busy theatre",
|
||
"body": "Doctor Cassilem Rhoate installs what we grow into {enemy} crews and calls the result improvement. Concord biological fittings are not trade goods; they are our people, borrowed. Recover them where he operates."
|
||
},
|
||
{
|
||
"title": "{enemy} Escort Breaker",
|
||
"issuer": "{issuer}",
|
||
"name": "Hendril Vauncker",
|
||
"epithet": "he takes the wingman first",
|
||
"crime": "Breaking our convoys by killing the closest escort",
|
||
"craftLabel": "{enemy} interceptor with a brutal merge rate",
|
||
"body": "Hendril Vauncke takes the wingman first, every time, because a convoy that grieves scatters faster than one that fights. Three escorts have learned this too late. Teach {enemy} the lesson in his own airspace."
|
||
},
|
||
{
|
||
"title": "WANTED — {enemy} Harbour Auditor",
|
||
"issuer": "{issuer}",
|
||
"name": "Mezza Fulcronne",
|
||
"epithet": "she knows which of our docks are empty",
|
||
"crime": "Auditing our berth occupancy for {enemy} planners",
|
||
"craftLabel": "{enemy} light, dressed as customs traffic",
|
||
"body": "Mezza Fulcronne audits our berth occupancy for planners who want to know which docks stand empty at shift change. Her tables are precise and sold. Close the audit inside {enemy} territory before the next census."
|
||
},
|
||
{
|
||
"title": "{enemy} Merit Broker",
|
||
"issuer": "{issuer}",
|
||
"name": "Iles Karamorev",
|
||
"epithet": "he buys our veterans",
|
||
"crime": "Purchasing trained Concord pilots with {enemy} credits",
|
||
"craftLabel": "{enemy} fast courier, never carrying anything traceable",
|
||
"body": "Iles Karamorev buys trained Concord pilots with {enemy} credits, which costs us years of grove-work per head. He recruits our best by paying them what we should. End his market in {enemy} ground."
|
||
},
|
||
{
|
||
"title": "WANTED — {enemy} Cold Trials Officer",
|
||
"issuer": "{issuer}",
|
||
"name": "Petra Nolvane",
|
||
"epithet": "she freezes our systems to see what fails",
|
||
"crime": "Probing Concord armor against experimental cold loads",
|
||
"craftLabel": "{enemy} hull with radiators too large for its class",
|
||
"body": "Petra Nolvane freezes our systems to see which fail first, then files the number against a habitat's shield budget. She has used two of our stations as a test bench. Run {enemy}'s trials officer off our stations, onto her own."
|
||
},
|
||
{
|
||
"title": "{enemy} Line Inspector",
|
||
"issuer": "{issuer}",
|
||
"name": "Adrienne Kelvock",
|
||
"epithet": "she walks our fences",
|
||
"crime": "Charting weak sectors of our picket line for {enemy} use",
|
||
"craftLabel": "{enemy} patrol frame flown with irritating legality",
|
||
"body": "Adrienne Kelvock walks our picket fence in eleven legal passes and charts the sectors that reinforce slowest. Her survey is better than ours and hers are the plans now. Correct {enemy}'s findings in person."
|
||
},
|
||
{
|
||
"title": "WANTED — {enemy} Break-In Pilot",
|
||
"issuer": "{issuer}",
|
||
"name": "Ronvel Sandorcke",
|
||
"epithet": "he flies our frames better than we do",
|
||
"crime": "Test-flying captured Concord hulls for {enemy} evaluation",
|
||
"craftLabel": "an a hull built to our lines by people who never earned them",
|
||
"body": "Ronvel Sandorcke flies captured Concord hulls better than their pilots did, which tells {enemy} planners exactly where our frames break. He enjoys the evaluation visibly. Ground his test airframe in his own sky."
|
||
},
|
||
{
|
||
"title": "{enemy} Attrition Poet",
|
||
"issuer": "{issuer}",
|
||
"name": "Livyra Honnome",
|
||
"epithet": "she writes our losses into song",
|
||
"crime": "Broadcasting Concord defeats to make defection fashionable",
|
||
"craftLabel": "{enemy} broadcast craft with no visible weapons and no shame",
|
||
"body": "Livyra Honnome writes our losses into broadcast song so that defection sounds fashionable by chorus. Our settlements hum her refrains without knowing the tune's source. Silence the singer inside {enemy} ground."
|
||
},
|
||
{
|
||
"title": "WANTED — {enemy} Cadre Prime",
|
||
"issuer": "{issuer}",
|
||
"name": "Valentin Morvacae",
|
||
"epithet": "the season's entire opposition",
|
||
"crime": "Directing every probe, trial and provocation against {faction} space",
|
||
"craftLabel": "{enemy} command frame with a screen of believers",
|
||
"body": "Valentin Morvacae directs every probe, trial and provocation against {faction} space from one desk and expects a promotion. The Concord promotes excellence too, but not at our expense. Remove {enemy}'s season-long opposition."
|
||
}
|
||
],
|
||
"escort": [
|
||
{
|
||
"title": "One Of Ours Is Parked In A Rival's Yard",
|
||
"body": "A Concord freighter took engine trouble into the wrong sky and now sits in {enemy}-held ground with a crew that has begun negotiating out of boredom. We do not negotiate; we pay recovery instead, which is cheaper and reads better. Link at her coordinates, take the convoy out under whatever guns you can keep warm, and deliver her back to {system}."
|
||
},
|
||
{
|
||
"title": "{enemy} Are Being Hospitable",
|
||
"body": "Our hauler Seren Reach has been invited to refuel by her {enemy} neighbours, on their terms, at their distance, with their cameras running. Hospitality like that is a receipt for whatever comes next. The Concord prefers its obligations unpaid. Fly in, break the invitation off politely or not, and bring her home to {system} with her registry unbroken."
|
||
},
|
||
{
|
||
"title": "The Gene Vault Run",
|
||
"body": "A vault ship carrying eleven generations of Concord stock is standing still inside {enemy} territory with a drive fault and a security doctrine that forbids towing by strangers. She will accept your link because we have told her to, which is the only introduction available. Bring her home through {enemy} whatever-rises, and let nothing be scanned on the way out. Destination: {system}."
|
||
},
|
||
{
|
||
"title": "{enemy} Have Seen Her Registries",
|
||
"body": "Our courier Adaline Voh has been held to a very polite inspection in {enemy} ground for nine days, and every hour she spends there her manifests get read by people who were trained to read them. Nothing is being taken yet, which means the plan involves her choosing to leave. Take the convoy out of that arrangement and deliver her to {system}, un-read."
|
||
},
|
||
{
|
||
"title": "A Debt Owed In {enemy} Ground",
|
||
"body": "Two Concord hulls are inside {enemy} border on a private contract nobody in our registry will sign for, and their people are now somebody else's leverage. They went as free pilots; they will come back as our problem, which we accept. Link them both, hold the formation tight, and get them home to {system}. The Concord pays debts it did not authorise."
|
||
},
|
||
{
|
||
"title": "{enemy} Are Waiting For A Better Cargo",
|
||
"body": "Our tender Meridian Fold is carrying reactor stock worth more than her own hull through ground that {enemy} hold and have, frankly, been studying. They will want the moment she moves and they will be wrong about how fast she can go. Fly escort from the link outward, keep her between you and whoever rises, and put her down at {system}."
|
||
},
|
||
{
|
||
"title": "Bring Back The Trials Pilot",
|
||
"body": "A Concord test pilot pushed an experimental frame two gate-hops past his welcome to prove a point about range and is now sitting in {enemy} space with the proof and no escort. We agree with his conclusion; we require the airframe back and unexamined. Link him, cover him, and finish the demonstration over {system}. His arrogance becomes doctrine if he survives it."
|
||
},
|
||
{
|
||
"title": "{enemy} Hold Our Medical Barge",
|
||
"body": "A medical barge out of our second ring crossed into {enemy} territory chasing a distress signal that we now believe was written for her. Her crew is intact, her patients are not, and something outside wants her to open up. The Concord does not leave its own healers to be examined by rivals. Bring her home to {system}, fast enough that the argument never starts."
|
||
},
|
||
{
|
||
"title": "The Long Walk Out Of {enemy} Ground",
|
||
"body": "One of our survey hulls lost her drive three jumps from anywhere friendly and drifted, under {enemy} watch, into a patience contest she is losing. She can be towed, she can be shielded, and she cannot do either herself. Take the link, hold her on your line, and deliver her into {system}. The Concord pays for endurance and doubles it for results."
|
||
},
|
||
{
|
||
"title": "{enemy} Would Like Our Crew Lists",
|
||
"body": "A Concord passenger run is standing in {enemy} ground with four hundred names aboard, and a very reasonable demand to file them for inspection. Our crews are the only record our rivals cannot fabricate, so we treat that request as what it is: an intelligence operation with manners. Link the convoy, ignore the demand, deliver the ship to {system}."
|
||
},
|
||
{
|
||
"title": "Our Own Ship, The Wrong Sky",
|
||
"body": "The hauler Perfection Waits is flying home under her own power and someone else's risk — she routed through {enemy} ground on a shortcut our own charts should never have printed. Somebody will make an example of her before she clears the border. Meet her at the last rock, hold the lane open, and bring her into {system} where the chart is ours."
|
||
},
|
||
{
|
||
"title": "{enemy} Are Timing Our Rescue",
|
||
"body": "We know exactly where our stranded tug sits inside {enemy} territory, and so, by the quality of their recent patience, do they. A rescue that arrives on schedule simply joins the exhibit. Arrive badly: come in fast, link early, and take her home to {system} at a time nobody has written down yet."
|
||
},
|
||
{
|
||
"title": "The Seedlings Are Awake",
|
||
"body": "A Concord agri-barge carries forty thousand dormant seedlings that have begun waking early because her hold lost heat inside {enemy} ground, and her captain will not leave until somebody guarantees the crop. He is right; a generation of work rides in those trays. Escort him out through whatever {enemy} think the harvest is worth, and set her down at {system}."
|
||
},
|
||
{
|
||
"title": "{enemy} Have A Reason To Be Polite",
|
||
"body": "Our freighter Aurelian took shelter in {enemy} territory during a drive failure and has been treated beautifully for eleven days, which means they have asked her captain something he has not yet answered. Politeness with a deadline is a countdown. Get her off that ground, link to your wing, and finish the delivery at {system}."
|
||
},
|
||
{
|
||
"title": "{enemy} Are Holding Our Chirurgeon",
|
||
"body": "A Concord surgeon was invited to consult across the border and has not been permitted to leave now that the consultation is finished; her knowledge of our biology is more useful to {enemy} alive than dead, which is why she will be moved tonight. Her transport waits at the given coordinates. Bring her and the ship home to {system}."
|
||
},
|
||
{
|
||
"title": "{enemy} Are Counting What We Rescue",
|
||
"body": "Every recovery we have run this season was watched, timed, and filed by {enemy} analysts — a running estimate of what a Concord hull costs us to fetch. Our people suggest the price is about to rise sharply, so let us set the last figure now. Link fast, hold nothing back, deliver to {system}, and be paid for the arithmetic."
|
||
},
|
||
{
|
||
"title": "Three Hulls Stuck In {enemy} Ground",
|
||
"body": "A tow pair went in past the border to help a stranded hauler and got stuck helping — three hulls now standing in {enemy} ground with increasingly theoretical options. The Concord does not write off crews who make that choice; it sends someone better than them. Link all three and bring the whole stubborn lot home to {system}."
|
||
},
|
||
{
|
||
"title": "{enemy} Are Asking For Our Flight Records",
|
||
"body": "Our courier Bellamy Voh has been asked, courteously and repeatedly, to surrender her flight records while she waits in {enemy} space for a repair that will never arrive. Those records hold the performance envelope of every frame we fly, and the request itself is an act of war with better table manners. Take her convoy out and deliver it to {system}."
|
||
},
|
||
{
|
||
"title": "The Family Barge",
|
||
"body": "A Concord family barge — three generations, one very old drive — crossed for a funeral and cannot leave without an escort she does not deserve to need, while {enemy} traffic makes a polite habit of passing close. Her crew will not abandon the ship and neither will we, at this price. Link at her coordinates and set them down in {system}."
|
||
},
|
||
{
|
||
"title": "{enemy} Inspection Scheduled In Fourteen Hours",
|
||
"body": "Rival authorities have scheduled an inspection of our freighter Halcyon Stand inside fourteen hours, and the Concord prefers its hulls examined by nobody. She is whole, her crew is armed and quiet, and the border between her and us belongs to {enemy} for the whole distance. Link, move before the paperwork arrives, and deliver her to {system}."
|
||
}
|
||
]
|
||
}
|
||
}
|
||
},
|
||
"ui": {
|
||
"_comment": "The board's contract copy (js/ui/JobBoardWindow.js). standby* = the state where NO category is live (the current one — the board's face until the first type flips on). accept* = the ACCEPT action's button + the scene's toasts (SurfaceScene.acceptSurfaceJob — the claimSurfaceQuest precedent: the ledger + sfx are the GameScene's, the note is the surface's).",
|
||
"standbyMain": "NO CONTRACTS ON FILE",
|
||
"standbySub": "THE BOARD’S POSTINGS LAND HERE",
|
||
"selectMain": "SELECT A JOB",
|
||
"selectSub": "PICK A LISTING TO READ ITS CONTRACT",
|
||
"statusStandby": "BOARD STANDBY — NO CONTRACTS ON FILE",
|
||
"statusLive": "{n} CONTRACTS ON FILE",
|
||
"rewardUnit": "CR",
|
||
"payout": "PAYOUT — {reward} CR",
|
||
"payoutXp": "PAYOUT — {reward} CR · +{xp} XP",
|
||
"accept": "ACCEPT CONTRACT",
|
||
"accepted": "CONTRACT ACCEPTED",
|
||
"active": "PATROL ACTIVE",
|
||
"activate": "SET PATROL ACTIVE",
|
||
"bountyActive": "HUNT ACTIVE",
|
||
"bountyActivate": "SET HUNT ACTIVE",
|
||
"escortActive": "CONVOY LINKED",
|
||
"escortActivate": "SET ESCORT ACTIVE",
|
||
"complete": "CONTRACT COMPLETE",
|
||
"claim": "CLAIM REWARD — {reward} CR",
|
||
"claimXp": "CLAIM REWARD — {reward} CR · +{xp} XP",
|
||
"claimed": "REWARD CLAIMED",
|
||
"destination": "DESTINATION — {name}",
|
||
"routeProgress": "ROUTE — {visited}/{total} WAYPOINTS LOGGED",
|
||
"contactProgress": "CONTACTS — {cleared}/{total} CLEARED",
|
||
"patrolContactToast": {
|
||
"glyph": "⚔",
|
||
"color": "#ff5c77",
|
||
"text": "HOSTILE CONTACT — {n} ENEMIES INBOUND"
|
||
},
|
||
"patrolContactClearedToast": {
|
||
"glyph": "✓",
|
||
"color": "#67e863",
|
||
"text": "CONTACT CLEARED — {i} OF {n}"
|
||
},
|
||
"acceptToast": {
|
||
"glyph": "◆",
|
||
"color": "#ffc94d",
|
||
"text": "CONTRACT ACCEPTED — {title}"
|
||
},
|
||
"acceptDenyToast": {
|
||
"glyph": "✗",
|
||
"color": "#ff5c77",
|
||
"text": "COMMISSION DENIED — CONTRACT NOT ON FILE"
|
||
},
|
||
"activateToast": {
|
||
"glyph": "▸",
|
||
"color": "#ffd60a",
|
||
"text": "PATROL ACTIVE — {title}"
|
||
},
|
||
"claimToast": {
|
||
"glyph": "✓",
|
||
"color": "#67e863",
|
||
"text": "REWARD CLAIMED — +{reward} CR",
|
||
"textXp": "REWARD CLAIMED — +{reward} CR · +{xp} XP"
|
||
},
|
||
"claimDenyToast": {
|
||
"glyph": "✗",
|
||
"color": "#ff5c77",
|
||
"text": "NOTHING TO CLAIM — ROUTE NOT COMPLETE"
|
||
},
|
||
"patrolWaypointToast": {
|
||
"glyph": "◈",
|
||
"color": "#ffd60a",
|
||
"text": "WAYPOINT {i} OF {n} LOGGED"
|
||
},
|
||
"patrolCompleteToast": {
|
||
"glyph": "✓",
|
||
"color": "#67e863",
|
||
"text": "PATROL ROUTE COMPLETE — ITS REWARD IS READY TO CLAIM"
|
||
},
|
||
"_commentEscort": "The ESCORT contract's face (js/ui/JobBoardWindow.js + GameScene.updateEscort). escortActive = the row's live badge once the convoy links (the patrol's 'active' slot, re-labelled). escortRouteProgress = the row's progress line: the rendezvous leg, then the lane. escortLinkToast = the convoy forming on the player's wing. escortArrivingToast = the destination reached with the convoy intact (the delivery begins). escortArrivedToast = the touchdown closed (the contract completes). escortFailToast = the transport lost — the reset's call. escortResetToast = the landing's reset (a fresh convoy stands). escortRendezvousToast = the pre-link pointing. escortJumpHoldToast = the jump's flat denial while the convoy is linked but OUT OF VIEW (transport + its surviving escorts + the gate must all be on screen before the player jumps — GameScene.jumpThroughGate's escort guard). escortDeliveringToast = the jump's flat denial while the convoy is on its touchdown (hold until it lands). escortLandingDenyToast = the destination world's door (GameScene.startLanding's escort guard) — the planet/station the convoy is being delivered to holds its landing until the transport has REACHED it (phase 'delivered') or been DESTROYED (phase 'failed' — the landing's reset remedy). Every escort denial (jump hold + landing door) also arms OAC's 'escortDeny' visual comm (data/comms.json → oac-escort-wait — assets/speech/oac/escort-wait.mp3, the denial's voice).",
|
||
"escortRouteProgress": "LANE — {visited}/{total} SECTORS CROSSED",
|
||
"escortRendezvousToast": {
|
||
"glyph": "◈",
|
||
"color": "#7ce8a4",
|
||
"text": "CONVOY STANDING BY — REACH THE RENDEZVOUS TO LINK"
|
||
},
|
||
"escortLinkToast": {
|
||
"glyph": "⚓",
|
||
"color": "#7ce8a4",
|
||
"text": "CONVOY LINKED — {name} HOLDS YOUR WING THROUGH TO {dest}"
|
||
},
|
||
"escortArrivingToast": {
|
||
"glyph": "✈",
|
||
"color": "#7ce8a4",
|
||
"text": "CONVOY INBOUND — {name} IS BREAKING OFF TO SET DOWN AT {dest}"
|
||
},
|
||
"escortArrivedToast": {
|
||
"glyph": "✓",
|
||
"color": "#67e863",
|
||
"text": "CONVOY DELIVERED — {name} IS THROUGH, ITS REWARD IS READY TO CLAIM"
|
||
},
|
||
"escortFailToast": {
|
||
"glyph": "✗",
|
||
"color": "#ff5c77",
|
||
"text": "TRANSPORT LOST — THE CONVOY HAS BROKEN UP. LAND ON A PLANET TO RESET THE CONTRACT"
|
||
},
|
||
"escortResetToast": {
|
||
"glyph": "⚓",
|
||
"color": "#7ce8a4",
|
||
"text": "CONTRACT RESET — A FRESH CONVOY STANDS AT THE RENDEZVOUS"
|
||
},
|
||
"escortJumpHoldToast": {
|
||
"glyph": "⚓",
|
||
"color": "#ff5c77",
|
||
"text": "CONVOY OUT OF VIEW — BRING THE TRANSPORT, ITS ESCORTS AND THE GATE INTO VIEW TO JUMP"
|
||
},
|
||
"escortDeliveringToast": {
|
||
"glyph": "✈",
|
||
"color": "#7ce8a4",
|
||
"text": "CONVOY SETTING DOWN — HOLD POSITION UNTIL TOUCHDOWN"
|
||
},
|
||
"escortLandingDenyToast": {
|
||
"glyph": "✗",
|
||
"color": "#ff5c77",
|
||
"text": "ACCESS DENIED — THE CONVOY'S DESTINATION HOLDS UNTIL THE TRANSPORT LANDS"
|
||
},
|
||
"_commentBounty": "The BOUNTY HUNT's face (js/ui/JobBoardWindow.js + GameScene.updateBountyHunt). NOTE THE SILENCE: nothing here names the leg that holds the mark or a picket wave — the chain is hidden until it fires, so these lines only ever speak of what the player has already flown into. bountyLockBadge = the greyed row's plate (and the detail's lock line) under categories.bounty.minLevel; bountyAcceptDenyToast = the scene's refusal when a locked contract is pressed anyway. {bounty,escort}GateLockBadge / …GateLockSub / …GateDenyToast = the GATE ACCESS lock's words (the faction boards' hunts + rescues behind a hostile neighbor — the posting's gateLevel): the greyed row's badge, the detail's lock line, and the scene's refusal, each naming the target system the player needs access to FIRST ({system}) and the combat level that access opens at ({level}).",
|
||
"bountyLockBadge": "LOCKED — REQUIRES LEVEL {level}",
|
||
"bountyLockSub": "BRING YOUR RECORD UP TO LEVEL {level} AND THE BOARD WILL LIST YOU",
|
||
"bountyAcceptDenyToast": {
|
||
"glyph": "✗",
|
||
"color": "#ff5c77",
|
||
"text": "COMMISSION REFUSED — BOUNTY HUNTS STAND AT LEVEL {level}"
|
||
},
|
||
"dossierWanted": "WANTED — {name}",
|
||
"dossierEpithet": "{epithet}",
|
||
"dossierCrime": "CHARGES — {crime}",
|
||
"dossierCraft": "CRAFT — {craft}",
|
||
"bountyRouteProgress": "TRAVEL LANE — WAYPOINT {visited} OF {total} LOGGED",
|
||
"bountyLegToast": {
|
||
"glyph": "◈",
|
||
"color": "#ff2d6f",
|
||
"text": "WAYPOINT {i} OF {n} LOGGED — NOTHING ON THE LANE"
|
||
},
|
||
"bountySkirmishToast": {
|
||
"glyph": "⚔",
|
||
"color": "#ff5c77",
|
||
"text": "PIRATE PICKETS — {n} HOSTILES INBOUND"
|
||
},
|
||
"bountySightedToast": {
|
||
"glyph": "☠",
|
||
"color": "#ff2d6f",
|
||
"text": "THE MARK IS HERE — {name}, {epithet} · {n} HOSTILES INBOUND"
|
||
},
|
||
"bountyBroughtToBookToast": {
|
||
"glyph": "✓",
|
||
"color": "#67e863",
|
||
"text": "{name} BROUGHT TO BOOK — PUT DOWN THE LAST OF THE ESCORT"
|
||
},
|
||
"bountyCompleteToast": {
|
||
"glyph": "✓",
|
||
"color": "#67e863",
|
||
"text": "BOUNTY HUNT COMPLETE — {name} IS DOWN, ITS REWARD IS READY TO CLAIM"
|
||
},
|
||
"bountyGateLockBadge": "LOCKED — ACCESS TO {system} REQUIRED",
|
||
"bountyGateLockSub": "ACCESS TO {system} OPENS AT COMBAT LEVEL {level}",
|
||
"bountyGateDenyToast": {
|
||
"glyph": "✕",
|
||
"color": "#ff2d6f",
|
||
"text": "COMMISSION REFUSED — ACCESS TO {system} OPENS AT COMBAT LEVEL {level}"
|
||
},
|
||
"escortGateLockBadge": "LOCKED — ACCESS TO {system} REQUIRED",
|
||
"escortGateLockSub": "ACCESS TO {system} OPENS AT COMBAT LEVEL {level}",
|
||
"escortGateDenyToast": {
|
||
"glyph": "✕",
|
||
"color": "#ff2d6f",
|
||
"text": "COMMISSION REFUSED — ACCESS TO {system} OPENS AT COMBAT LEVEL {level}"
|
||
}
|
||
}
|
||
} |