A billing adapter, a content catalog and a repair queue all need clear object contracts, even though their records look different. Decide which fields identify a value, which behavior belongs behind an interface and which state a class must protect. The output contract determines the result; the names of your helper classes don't.
Work without the guided steps. Use the visible example to establish the ordinary case, then test a collision, an exact boundary or a repeated value before checking. You will reuse value equality, dynamic dispatch, private state, access reasoning and qualified names. The data and fixed charges differ from the earlier lessons. Keep case-sensitive identifiers exact and remember that a fee can still apply when the variable quantity is zero.