[Canonical page](<https://docs.dhtmlx.com/planning-engine/java/api/assign/overview/>)
[Full documentation index](<https://docs.dhtmlx.com/planning-engine/llms.txt>)


# assign

The skill layer input. [`Pool`](<https://docs.dhtmlx.com/planning-engine/java/api/assign/pool.md>) lists the [`Worker`](<https://docs.dhtmlx.com/planning-engine/java/api/assign/worker.md>)s that can be assigned, and each worker holds the [`Skill`](<https://docs.dhtmlx.com/planning-engine/java/api/assign/skill.md>)s of one resource. A [`Requirement`](<https://docs.dhtmlx.com/planning-engine/java/api/assign/requirement.md>) says what a task needs: how many people, at what units, and which [`SkillMatch`](<https://docs.dhtmlx.com/planning-engine/java/api/assign/requirement.md#skillmatch>) conditions each of them must meet. [`SkillOp`](<https://docs.dhtmlx.com/planning-engine/java/api/assign/requirement.md#skillop>) picks the comparison. Pass the pool and the requirements to [`SkillLayer.slots`](<https://docs.dhtmlx.com/planning-engine/java/api/skill-layer-slots.md>). It returns the [`Slot`](<https://docs.dhtmlx.com/planning-engine/java/api/suggest/slot.md>) list that [`Project#suggestAssignments`](<https://docs.dhtmlx.com/planning-engine/java/api/project-suggest-assignments.md>) takes. Skills exist only in this layer, and the scheduling engine never sees them.

`SkillOp` is an enum. The other types are mutable classes with public fields and a fluent `withX(value)` setter per field. Each has a shallow `copy()` and implements [`DeepCloneable<T>`](<https://docs.dhtmlx.com/planning-engine/java/api/data/deep-cloneable.md>). Collection fields hold `Vec<T>`, and each collection setter also takes any `java.util.Collection`, so `List.of(...)` works. `SkillLayer.slots` throws [`MatchException`](<https://docs.dhtmlx.com/planning-engine/java/api/errors/match-exception.md>). Every type here is in the `org.dhtmlx.plen` package. For a walk-through, see [Skills and requirements](<https://docs.dhtmlx.com/planning-engine/java/resources-and-assignment/skills-and-requirements.md>).

:::category-index
:::
