A trustworthy batch tells you what it accepted and what it rejected. It also leaves its owned resources closed and its saved state independent of references held elsewhere. Those obligations remain the same when the input comes from a repair manifest rather than the earlier appointment examples.
Use specific failure categories and keep validation ahead of success accounting. A parsed zero is valid data, a quantity exactly at capacity is allowed, and an inclusive point interval has length one. The cleanup tasks use observable in-memory resources because this workspace doesn't expose a filesystem. You will also revisit constructor and getter copies. There are no guided steps. Check the case with no records as carefully as the ordinary case, then test a failure followed by a valid row.