results#

The output model. ScheduleResult is what Project.Solve, Project.Preview, Project.Analyze and Engine.Schedule return. Project.Level wraps one in a LevelingResult with a round count.

The other types in this folder are its parts: Mutation entries with new dates, the Reason a task moved, Cycle, Conflict and Note diagnostics, and Analytics with the critical path and slack. Cycles and conflicts are data in the result, not exceptions.

Reason, Conflict and Note are abstract records with one sealed record per variant, so you read them with switch pattern matching. The other result types are mutable classes, but a ScheduleResult is read-only by contract: see ScheduleResult before you change one. Every type here is in the Plen namespace.

  • AnalyticsCritical path and slack of a schedule, present when the call's analytics options request them
  • ConflictA scheduling conflict reported in a result, a constraint that overrode a link or a task placed on non-working time
  • MutationOne task's new dates, duration or leveling edits in a scheduling result
  • NoteA non-fatal note about input that was left out of the schedule or repaired
  • ReasonWhy the planner placed a task where it did, as one variant per cause
  • ScheduleResultThe result of a solve, preview, analyze or level - changed tasks, cycles, conflicts, notes, analytics and overallocations