Plen.Core#

The Plen.Core package schedules, edits, levels and scores projects. Every call is synchronous and CPU-only, with no I/O, no clock, no Task-returning methods and no CancellationToken parameters. The package targets net10.0 and has nullable reference types enabled.

dotnet add package Plen.Core

Every public type lives in the Plen namespace. The folders below group types by topic. They aren't namespaces.

using Plen;

JSON#

The package has no optional features and no JSON support of its own. JSON decoding and encoding live in the separate Plen.Wire package; see Exchange JSON with a client.

Public types outside the contract#

The static class Inspect is public but hidden from IntelliSense ([EditorBrowsable(Never)]). It holds diagnostic hooks for benchmarks. Engine.ScheduleState and the StateDoc, StateTask, StateConflict and StateMeta classes it returns are an internal comparison format without a stable shape. None of these are part of the API contract or documented here. Everything else in the assembly (calendar, graph, planner, resources, normalizer) is internal.

The enums Basis, CalendarMode and TimeUnit have their own pages under data. ConstraintType is documented on TaskData, and GapBehavior on SchedulingConfig.