world.animals is 0 on every server tested while get_region tracks live populations #246
Labels
No labels
burndown-2026-06
headless
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
c#
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-gaming/eco-app#246
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Split out of #237, which fixed the
totalCulture: 0half of the same shape and left this one recorded rather than guessed at.Observed
get_server_status→world.animals: 0on both servers tested during the 2026-08-12 sweep (Eco via Sirens and GreenLeaf Prime), whileget_regionon the same fetch tracks real animal populations: Deer 248, Wolf 167, Bison 114.Animalsis present in/info's key list, so this is a reported zero rather than an absent field — the null-not-zero pass in #214 does not cover it.Why it was not fixed alongside the culture half
TotalCulturehad a reconciliation source sitting in the same/infopayload:ServerAchievementsDictcarries milestone progress, soresolve_total_culture()could prefer the milestone floor without a second fetch.Animalshas no such in-payload counterpart. The only contradicting evidence lives inget_region's worldlayers/species data plane, whichto_payload()does not fetch and should not start fetching just to sanity-check one scalar — that would put a species-list round trip behind every status call.Options
to_payload.get_server_statuscould annotate the field when a cached region snapshot disagrees. Costs a cache read, not a fetch./info.Animalscounts something other than tracked fauna, or is simply unpopulated in 0.13. Worth one look at Eco's source before building anything on top of it.(3) then (2) is the cheap order. (1) only earns its keep if a consumer actually wants the number.
Acceptance
world.animalscarries a number a reader can trust, or the payload says the field is not reliable.Refs: #237 (parent), #214 (absent-vs-zero), #240 (sweep tracking).