Godot exits zero on a script error and non-zero on a clean quit. The only honest signal is a line the script printed and no error in the log โ and every project that has driven it from a script has written that parser again, slightly differently.
A real renderer needs a window, which makes every screenshot a manual step on a developer's desk and keeps it out of any gate. Which offscreen route works on a given machine is something capabilities() answers before a capture is attempted, rather than something a caller discovers from a blank image.
A baked sprite and the running game agree on scale today because somebody set a render rectangle to match a cell size the game holds separately, and nothing fails if either moves. One declaration both sides read is the difference between an agreement and a coincidence.
The same capture script on two machines produces two different images, and the difference is a locale nobody declared rather than a change anybody made. Language and settings are pinned by the runner, so a difference in the output is a difference in the work.
Each line names the failure it exists to remove and the measurement behind it. None of them has shipped. This list is generated from docs/ROADMAP.md, so it cannot describe a backlog the file does not have.
Handles for anything slow, a post-condition on every operation, typed errors that name the remedy, a surface that describes itself and this machine, and configuration resolved per call.
6 linesA surface is read on a sphere in three seconds, a render returns its measurements in the same answer, a distribution is reported as a set rather than a mean, and a sheet shows an asset beside its siblings.
5 linesWhat counts as a correct render, written as a file a search can aim at; a search that finds the rig numbers instead of a person finding them by hand; a cache so nothing renders twice; and a trace of everything the search rejected.
4 linesA silhouette gate before the credit moves, a ceiling agreed once instead of a question per fetch, the mesh kept because the service deletes it at seventy-two hours, and a fetched asset normalised into this project's axes.
6 linesA fetched mesh rigged so it can be posed at all, motion as a clip rather than a second static render, curves as text a diff can show, and one source for both a 2D sprite and a 3D scene.
4 linesA shape stated as data rather than written as a program: a vocabulary read off real assets, numbers a search can reach, a review before anything is built, and a way back to code for the shape no format can state.
5 lines