Modules
One resource, bound to one session, over one interval.
One way a session could be held — a time, and a resource for every role.
Laying out a whole programme — a placement for every session, with nothing clashing.
When a resource is open, and what of that is still free.
Which constraints are jointly to blame.
Why a session cannot be held.
One resource would like a session with another.
A programme laid out as far as it would go — what was placed, and what was left out.
What is currently allocated, and to whom.
How much of a resource may — or must — be claimed over a period.
A place — a named location that contains resources and other places.
Working out when and where a session could be held.
One session must finish before another starts.
The attribute predicate vocabulary — the words a requirement is written in.
What makes one workable layout better than another.
Everything being laid out at once — the tracks, the standalone sessions, and the span they all fall inside.
Whether a resource's claims account for the time it owed.
Narrowing free time — the verbs that turn "when is this open?" into "when is this actually bookable?"
A requirement — what a session demands of the resources allocated to it.
A resource — a named thing that can be allocated to a session.
A session that repeats — a weekly stand-up, a fortnightly clinic, a daily hand-over.
A session — the thing being scheduled.
A family of sessions constrained against each other.