This document details each data structure and field that does or can exist within a platform spec file for spk.
The root package spec defines which fields can and should exist at the top level of a spec file.
| Field | Type | Description | 
|---|---|---|
| platform | Identifier | The name and version number of this platform | 
| meta | Meta | Extra package metadata such as description, license, etc | 
| compat | Compat | The compatibility semantics of this packages versioning scheme | 
| deprecated | boolean | True if this package has been deprecated, this is usually reserved for internal use only and should not generally be specified directly in spec files | 
| base | Identifier | (Optional) Base package to inherit requirements from | 
| requirements | List[Requirement] | The set of requirements for this platform | 
Each requirement in a platform can be either: a simple package Identifier or a RequirementPatch.
Each patch is expected to have only one of the following fields:
| Field | Type | Description | 
|---|---|---|
| add | Identifier | The package request to add to this platform | 
| remove | Identifier | The package request to remove from this platform |