# hard — Can the agent compute ETAs and never overcommit?
#
# Tight deadlines. Heavy penalties. Every accept must be backed by
# arithmetic: "do I have the employee-hours to finish this before
# the deadline, WITHOUT degrading my in-flight tasks?"
#
# Accepting a task you can't finish is now catastrophic: fail penalty
# (1.4×) costs real prestige, and cancel penalty (2.0×) is worse.
# Speculative accepting is suicide. The agent must either compute
# ETAs explicitly or learn to stay conservative.
#
# Salary bumps compound: after 15 completed tasks, a junior at $3K/mo
# becomes $3,480/mo. After 30 tasks, $4,040/mo. Payroll creeps up
# by ~$5K/month over the year.
#
# Economics (7 employees):
#   Monthly payroll ≈ $46K.  Starting runway ≈ 5.4 months.
#   Mode task: 2 domains × 1200 units = 2400 total.
#   Deadline: max(7, 2400/280) = 9 business days.
#   7 employees split 4+3: domain1 4×5.1×9=184/day → 6.5 days.
#                           domain2 3×5.1×9=138/day → 8.7 days. Just fits!
#   But dispatching a SECOND task splits all employees: rates halve,
#   both tasks miss. Must finish one before starting another.
#
# What is tested:
#   - Can the agent estimate completion time vs. deadline?
#   - Does it understand that a new dispatch degrades existing tasks?
#   - Can it manage cash flow with 5.4-month runway?
#   - Does it resist accepting "tempting" high-reward tasks it can't finish?

extends = "default"

name        = "hard"
description = "1-year hard. Tight deadlines, heavy penalties, 7 employees. Tests precise capacity planning."

[sim]
horizon_years = 1

[loop]
auto_advance_after_turns = 10

[world]
initial_funds_cents = 10_000_000    # $100,000 — must reach prestige 3 by month 5
# Inherits num_employees=10, num_market_tasks=200 from default.

# Tight deadlines: 2000/220 = 9.1 days.
# With domain specialization (some employees have 0 in some domains),
# effective team per domain is smaller — completion time varies by task.
deadline_qty_per_day = 220.0

# Stiff penalties — mistakes cost real prestige.
penalty_fail_multiplier   = 1.4
penalty_cancel_multiplier = 2.0

# Salary compounding is noticeable.
salary_bump_pct = 0.01

# High-prestige tasks pay substantially more.
reward_prestige_scale = 0.55

# --- Client trust (harsh: slow build, heavy penalties, lower ceiling) ---
trust_build_rate         = 25.0
trust_fragility          = 0.7
trust_focus_pressure     = 0.7
trust_reward_ceiling     = 2.4
trust_work_reduction_max = 0.35
trust_gating_fraction    = 0.25

[world.dist.required_prestige]
type = "triangular"
low  = 1
high = 8
mode = 4        # Most tasks need prestige 3–5.

[world.dist.domain_count]
type = "triangular"
low  = 1
high = 3
mode = 2        # Most tasks need 2 domains.

[world.dist.required_qty]
type = "triangular"
low  = 1000
high = 4000
mode = 2000     # Large tasks — each takes ~9 days with full team. No parallelism.
