People pillar · v0.8.1
person Person
Person record aligned with vCard/jCard (RFC 6350) and W3C ORG Membership.
$id · https://corpospec.com/schemas/v0.8.1/person.schema.json
Fields
| Field | Type | Required | Description |
|---|---|---|---|
| string | yes | Primary email address. | |
| id | PathRef | yes | PathRef of this record (e.g. `people/team/maik`). |
| name | PersonName | yes | Person's name in RFC 6350 vCard form. |
| status | PersonStatus | yes | Lifecycle status. |
| type | string | yes | W3C ORG / schema.org type discriminator. Currently always `"Person"`. |
| bio | string? | — | Short prose biography or summary. |
| custom | PersonCustom? | — | Typed custom extension fields (payroll, insurance, compliance). |
| date_of_birth | IsoDate? | — | Date of birth. |
| end_date | IsoDate? | — | Last day of employment. `null` while active. |
| equity | PathRef? | — | PathRef to this person's stakeholder record in the cap table (if any). |
| personal_address | PostalAddress? | — | Personal (non-work) postal address. |
| phone | string? | — | Primary phone number in E.164-compatible form. |
| role | PathRef? | — | PathRef to the `Role` this person holds (if any). |
| start_date | IsoDate? | — | First day of employment (may precede `compensation_start_date` when initial service is uncompensated). |
| unit | string? | — | Organisational unit (id of an `OrgUnit` within `people/org`). This is a local identifier, not a PathRef — the unit set is defined on `OrgStructure.units[].id`. |
Definitions
Shared types referenced within this schema.
DOInsurance
Directors & Officers (D&O) insurance details attached to a person.
Captures whether D&O coverage is contractually required, the coverage
ceiling, and an estimate of the annual premium so that compensation
reporting can reason about total employer cost.
type: object
EmploymentType
Employment type enumerating the contractual relationship kinds observed
across UNSTARTER, ACME, and German-law companies modelled in CorpoSpec.
Includes the German-law specific values (`angestellte`, `geschaeftsfuehrer`,
`minijob-520`, `werkstudent`) alongside internationally common categories.
IsoCountry
ISO 3166-1 alpha-2 country code.
pattern: ^[A-Z]{2}$
IsoDate
ISO 8601 date (YYYY-MM-DD).
type: string
PathRef
Path-based cross-reference relative to .corpospec/ root.
Pattern: `^[a-z0-9_-]+(/[a-z0-9_.-]+)+$`
pattern: ^[a-z0-9_-]+(/[a-z0-9_.-]+)+$
PersonCustom
Typed extension fields for Person.
Holds per-person payroll, insurance, and compliance metadata that does not
belong on the W3C-aligned core `Person` record. Every field is optional —
companies may omit any field not relevant to their jurisdiction.
type: object
PersonName
Person name.
`given` and `family` follow RFC 6350 vCard semantics. `full` is stored
explicitly rather than derived so that cultures with non-concatenative
name formats (e.g. family-name-first, particles, patronymics) can
present the preferred display form without rule-based reconstruction.
type: object
PersonStatus
Person employment status.
PostalAddress
Physical address aligned with schema.org PostalAddress.
type: object
Reference in your YAML
# yaml-language-server: $schema=https://corpospec.com/schemas/v0.8.1/person.schema.json