Assignment Proposal
data class AssignmentProposal(val vehicle: FleetVehicle, val task: Dispatcher.Task, val terms: Double? = null)(source)
What an assignment policy returns.
A policy cannot construct an Assignment -- its constructor is internal -- which is how "a policy decides only" (A7) is enforced by the type system rather than by a rule someone has to remember. A proposal is inert: it names a pairing and nothing happens until the dispatcher acts on it.