Zebra danio
The zebra danio (Danio rerio) is the hardiest fish in the roster and the species EcoSym recommends for fish-in cycling. It is a small (~3–4 cm), active, mid-water schooling cyprinid from the floodplains and streams of South Asia — a habitat that swings widely in temperature and water quality across the monsoon cycle, which is exactly why the fish is so tolerant. It is also the world's most-studied laboratory fish, so its physiology and toxicology are unusually well documented.
In EcoSym a fish carries a real, bioenergetic body: you stock it as a number of individuals, and each carries a condition (its weight relative to a healthy adult) and a health ∈ [0, 1], on top of the bioload it puts on the tank. Fed a normal ration a danio holds its weight; underfed it wastes; refed it puts the weight back on. At a steady adult size it is not growing, so essentially every nitrogen atom it assimilates is excreted as ammonia — which is what makes a well-conditioned danio a clean, mechanistic ammonia source for the cycling simulation (during active grow-out or recovery some nitrogen is legitimately retained in new tissue instead).
Starvation tolerance. The danio is forgiving of a missed meal: left completely unfed it is only lightly thinned after a one-to-two-week fast (the holiday case — it recovers fully once fed) and crosses the terminal wasting floor only at around six weeks. The starvation timescale is set by maintenance metabolism, which is per-mass the same across the roster — EcoSym does not yet make a small tetra starve faster than a larger fish. See scenarios/fish_v2_wasting.yaml.
Why it is the fish-in-cycling workhorse
The danio's tolerances are among the widest in the roster: it is stressed only above ~0.068 mg/L of unionized ammonia (lethal ~0.51), tolerates nitrite to ~1.1 mg/L NO₂-N before stress and ~11 before death, is comfortable from 15 to 32 °C, and is comfortable from pH 6.0 to 8.5. This is what lets it ride out the ammonia and nitrite spikes of a new tank's nitrogen cycle — its health dips during the spike and then climbs back toward 1.0 as the nitrifiers establish (see scenarios/fish_in_cycle_hardy_danio.yaml). That recoverable dip is the model's signature "the tank cycled and the fish were fine" story, and it is why a danio (or a similarly hardy fish) is the responsible choice for fish-in cycling — and why the fragile neon tetra is not.
Where those numbers come from. Being the world's most-studied laboratory fish finally pays off here: the ammonia threshold is set from three published 96-hour lethal-concentration studies rather than inferred from the pH of the water the species is usually kept in, which is what the simulator has to do for most fish. The comfortable pH and temperature bands are likewise the two standard laboratory husbandry references for the species (24–29 °C and pH 6.5–8.0, widened into stress and lethal bands by the usual rule), not a hobby care sheet — and that correction matters, because the aquarium care sheets top out at 24 °C and pH 7.5 for a fish every zebrafish facility on earth keeps at 28.5 °C. All of it is cited in the Parameter Reference → the fish roster.
Diet and bioload
The danio is a water-column feeder: it eats the prepared feed the keeper adds (a planktonic danio nibbling biofilm is a second-order effect). It takes flake and small pellets avidly (preference 1.0), assimilates ~80 % of it, and excretes the assimilated nitrogen as ammonia while egesting the rest as feces that decay to detritus and mineralize to ammonia too — so the whole feed-nitrogen load eventually becomes ammonia, the bioload the tank must cycle.