FrontPeriod
An interval during which one or more members were fronting. Most apps' native shape.
| Field | Type | Required | Notes |
|---|---|---|---|
| id | UUID | yes | |
| system_id | UUID | yes | |
| started_at | ISO8601 | yes | Sheaf: fronts[].started_at. Prism: frontSessions[].startTime. |
| ended_at | ISO8601 | null | no | Null = currently fronting. Sheaf: fronts[].ended_at (nullable). |
| assignments | FrontAssignment[] | yes | At least one. See FrontAssignment. |
| status | string | null | no | Optional period-level status — e.g. "sleep", "masking". Apps without this leave null. |
| note | string | null | no | Whole-period note — distinct from per-assignment note. |
| source_kind | "interval" | "event_pair" | "tiered" | "grouped" | "unknown" | no | How this period was derived. Helps importers reconstruct source semantics. |
| source_refs | SourceRef[] | no | |
| extensions | Record<string, unknown> | no |
{
"id": "front_01HV4Z...",
"system_id": "sys_01HV4Z...",
"started_at": "2026-04-29T12:00:00Z",
"ended_at": "2026-04-29T15:00:00Z",
"assignments": [
{ "member_id": "mem_01HV4Z...", "front_role": "primary", "note": null },
{ "member_id": "mem_01HV5A...", "front_role": "co_front", "note": null }
],
"status": null,
"note": null,
"source_kind": "tiered",
"source_refs": [{ "app": "plural_star", "collection": "frontPeriods", "id": "p_..." }],
"extensions": {}
}