Machine-readable validation schemas for every file type in the OpenChronology standard.
Reference these via the $schema field to enable editor and build-tool validation.
Six schemas covering all five file types. The core schema is the normative conformance floor; the full schema is its superset for complete validation.
The minimum required structure for .chron files. This is the normative Tier 1 conformance floor — every conformant .chron file must be valid against this schema.
Complete validation for .chron files including all optional blocks — significance, recurrence, dynamic formulas, spatial data, and media. Required for Tier 3 (Full) implementations.
Validates standalone .chroncal calendar definition files — epoch, linear or cyclic structure, month definitions, leap rules, and value format.
Validates standalone .chronverse universe definition files — temporal anchoring, default calendar, canon scope declarations, and related universe references.
Validates the manifest.json entry point descriptor inside .chronpkg ZIP bundle archives. Covers the event index, bundled calendars and universes, and asset configuration.
Validates the header record (line 1) of .chronstream NDJSON files. The header declares the schema version, title, default universe and calendar, and optional definition maps.
A structured JSON index of all schemas, built-in vocabularies, MIME types, and versioning policy is available at schemas.openchronology.org/v0.3/index.json. The root registry index listing all spec versions is at schemas.openchronology.org/index.json.
Add the $schema field to your file's meta block to enable validation in editors and build tools that support JSON Schema.
.chron event file:{
"meta": {
"schema_version": "0.3",
"$schema": "https://schemas.openchronology.org/v0.3/core.schema.json",
"canonical_url": "https://example.com/events/my-event.chron"
},
"event": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"type": "event",
"content": {
"title": "My Event Title"
}
}
}
.chroncal calendar definition file:{
"meta": {
"id": "my-calendar",
"version": "1.0.0",
"display_name": "My Calendar",
"$schema": "https://schemas.openchronology.org/v0.3/calendar.schema.json"
},
"calendar": { ... }
}
These values are constrained by enum in the schemas. All are case-sensitive.
| ID | Standard |
|---|---|
| gregorian | ISO 8601 / Proleptic Gregorian |
| julian | Julian Calendar |
| islamic | Islamic Hijri (civil) |
| hebrew | Hebrew Calendar |
| chinese | Chinese Lunisolar |
| unix | POSIX Epoch (seconds) |
| jdn | Julian Day Number |
| ID | Description |
|---|---|
| real | The real world — always available, never requires a fetch |
| relative | Generic relative universe — requires an inline anchor |
| Value | Scale |
|---|---|
| millisecond | Sub-second |
| second · minute · hour | Time of day |
| day · month · year | Calendar scale |
| decade · century · millennium | Historical scale |
| epoch | Geological / cosmological (Ma, Ga) |
| circa | Approximate — pair with uncertainty block |
| custom | Defined by calendar's unit system |
| Category | Types |
|---|---|
| Hierarchical | parent · child |
| Ordering | precedes · follows · concurrent_with |
| Causal | causes · caused_by · influences · influenced_by |
| Spatial | contains · contained_by |
| Continuity | contradicts · retcons · retconned_by · variant_of |
| References | references · referenced_by |
| Value | Meaning |
|---|---|
| canon | Accepted as true within the declared scope |
| legends | Formerly canon, now superseded |
| disputed | The relationship is contested |
| non_canon | Explicitly outside accepted continuity |
| unknown | Canon status not established |
| Value | Role |
|---|---|
| event | Standard point or span — default when absent |
| era | Named period containing other events |
| marker | Reference point or annotation |
| tombstone | Soft-deletion record — MUST NOT render |
| deprecated | Superseded event — render with caution |
Schema versions follow the OpenChronology spec version. The same compatibility rules apply.
Same MAJOR version = compatible. Parsers MUST silently ignore unrecognized fields. This is the mechanism that makes MINOR version upgrades automatic — a v0.2 parser loading a v0.3 file ignores new optional fields it does not recognize.
MAJOR version changes are breaking and require a published migration guide and conversion tool. Authors should never need to manually migrate .chron files.
content.sources for external citations. Expands significance metrics vocabulary. Documents built-in bodies. Fixes relations to require target_id. Pre-release — breaking changes possible before 1.0.