CHAPTER 51: Reject false financial reasons and preserve a draft

Boards: 51a and 51b.
Read the surrounding chapter before this lab. All examples are original and synthetic.

PREDICT
Predict the sign of each contribution without AI. Then predict which attempts create, reuse or reject a draft. The script calls the actual reference validator and build function inside a temporary output folder.

RUN
From the companion root, run:
python visual_labs/ch51/walkthrough.py
Use python3 if that is your configured command.

COMPARE
Compare the printed values and explanations with both boards. Read expected_output.txt after making your prediction. An assert checks a known expected result and stops if it differs. Temporary output folders are removed after the demonstrations; original course files are not edited.

CHANGE ONE THING
Change C103's checked contribution to zero only in the lab dictionary. The positive reason must now fail because zero is not positive. Explain why adding a neutral reason also requires changes to the contract, validation, rendering and checks.

EXPLAIN
State which input changed, which instruction handled that change, and why the resulting output is appropriate. If your prediction differs, identify the first step at which it diverges. Return to the surrounding lesson before adding more complexity.
