Render by request state. Input JSON: {"loading": boolean, "error": string|null, "data": array|null}. Rules in priority: loading → Spinner; error → Error: MESSAGE; empty data array → Empty list; else → N items.
{"loading": boolean, "error": string|null, "data": array|null}
Spinner
Error: MESSAGE
Empty list
N items
Input: one JSON object. Output: one render line.
Your program reads from stdin and prints to stdout.
Example 1
Input: {"loading":true,"error":null,"data":null}
Output: Spinner
Hints