Record dish, course and served state
Synthetic restaurant serves course C1 with dishes D1/D2, then C2 with D3. A course may be released only when all its dishes are ready and its preceding course is served; C1 has no predecessor. D3 ready alone cannot release C2 while C1 is unserved. These are fictional service-coordination rules, not food preparation guidance.
| Constraint | Required record | Example decision rule |
|---|---|---|
| Membership | Order + course + dish IDs | C1 contains D1/D2 |
| Readiness | State per dish | All dishes on that course ready |
| Sequence | Preceding course served event | C2 requires C1 served |
Test ready dishes and course sequence
| Case | Input | Expected decision |
|---|---|---|
| C1 release | D1/D2 ready; C2 not ready | C1 may release |
| C2 release | D3 ready; C1 unserved | Hold C2 |
- Identify requested course
- Check its dish readiness
- Check predecessor served event
- Record actual course release
Cancelled dishes require an explicit course-membership update; they must not be counted ready by default.
C1 is now served but D3 is still not ready. Can C2 release?
Show the worked answer
No. The sequence condition is met, but C2’s own dish readiness is not.
Demonstrate a ready first course while later food is pending, and a ready later course blocked by sequence.